mirror of
				https://github.com/Ed94/HandmadeHero.git
				synced 2025-11-03 15:26:12 -08:00 
			
		
		
		
	Removed old input code post-new design
This commit is contained in:
		@@ -69,11 +69,7 @@ Vec2 get_screen_center( OffscreenBuffer* back_buffer )
 | 
			
		||||
internal
 | 
			
		||||
void input_poll_engine_actions( InputState* input, EngineActions* actions )
 | 
			
		||||
{
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
	KeyboardState* keyboard = input->keyboard;
 | 
			
		||||
#else
 | 
			
		||||
	KeyboardState* keyboard = input->controllers[0].keyboard;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	// actions->move_right |= keyboard->D.EndedDown;
 | 
			
		||||
	// actions->move_left  |= keyboard->A.EndedDown;
 | 
			
		||||
@@ -100,11 +96,7 @@ void input_poll_engine_actions( InputState* input, EngineActions* actions )
 | 
			
		||||
	actions->loop_mode_game   |= pressed( keyboard->L ) && ! keyboard->right_shift.ended_down && ! keyboard->right_alt.ended_down;
 | 
			
		||||
	actions->loop_mode_engine |= pressed( keyboard->L ) &&   keyboard->right_shift.ended_down;
 | 
			
		||||
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
	MousesState* mouse = input->mouse;
 | 
			
		||||
#else
 | 
			
		||||
	MousesState* mouse = input->controllers[0].mouse;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	actions->move_right = (mouse->horizontal_wheel.end > 0.f) * 20;
 | 
			
		||||
	actions->move_left  = (mouse->horizontal_wheel.end < 0.f) * 20;
 | 
			
		||||
@@ -119,13 +111,7 @@ void input_poll_engine_actions( InputState* input, EngineActions* actions )
 | 
			
		||||
 | 
			
		||||
// TODO(Ed) : Move to handmade module
 | 
			
		||||
internal
 | 
			
		||||
void input_poll_player_actions( 
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
	hh::ControllerState* controller
 | 
			
		||||
#else
 | 
			
		||||
	ControllerState* controller
 | 
			
		||||
#endif
 | 
			
		||||
	, hh::PlayerActions* actions, b32 is_player_2 )
 | 
			
		||||
void input_poll_player_actions( hh::ControllerState* controller, hh::PlayerActions* actions, b32 is_player_2 )
 | 
			
		||||
{
 | 
			
		||||
	if ( controller->ds_pad )
 | 
			
		||||
	{
 | 
			
		||||
@@ -636,6 +622,9 @@ void render_player( hh::PlayerState* player, World* world, hh::GameState* game_s
 | 
			
		||||
	
 | 
			
		||||
	f32 player_half_width = player->width  / 2.f;
 | 
			
		||||
	
 | 
			
		||||
	if ( player->position.tile_z != game_state->camera_pos.tile_z )
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	TileMapPos player_to_camera = subtract( player->position, game_state->camera_pos );
 | 
			
		||||
 | 
			
		||||
	Vec2 player_to_screenspace {
 | 
			
		||||
@@ -1191,7 +1180,6 @@ void update_and_render( f32 delta_time, InputState* input, OffscreenBuffer* back
 | 
			
		||||
	hh::PlayerActions player_actions   {};
 | 
			
		||||
	hh::PlayerActions player_actions_2 {};
 | 
			
		||||
	
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
	do_once()
 | 
			
		||||
	{	
 | 
			
		||||
		game_state->player_1.controller.keyboard = input->keyboard;
 | 
			
		||||
@@ -1222,7 +1210,7 @@ void update_and_render( f32 delta_time, InputState* input, OffscreenBuffer* back
 | 
			
		||||
		if ( game_state->player_1.controller.ds_pad == ds_pad || game_state->player_2.controller.ds_pad == ds_pad )
 | 
			
		||||
			continue;
 | 
			
		||||
		
 | 
			
		||||
		if ( ds_pad && pressed( ds_pad->share ) )
 | 
			
		||||
		if ( ds_pad && pressed( ds_pad->options ) )
 | 
			
		||||
		{
 | 
			
		||||
			if ( can_assign( player_1 ) )
 | 
			
		||||
			{
 | 
			
		||||
@@ -1240,9 +1228,6 @@ void update_and_render( f32 delta_time, InputState* input, OffscreenBuffer* back
 | 
			
		||||
	
 | 
			
		||||
	if ( game_state->player_2.controller.xpad || game_state->player_2.controller.ds_pad )
 | 
			
		||||
		input_poll_player_actions( & game_state->player_2.controller, & player_actions_2, 1 );
 | 
			
		||||
#else
 | 
			
		||||
	input_poll_player_actions( & input->controllers[0], & player_actions,   0 );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	World*   world    = state->context.world;
 | 
			
		||||
	TileMap* tile_map = world->tile_map;
 | 
			
		||||
@@ -1375,10 +1360,8 @@ void update_and_render( f32 delta_time, InputState* input, OffscreenBuffer* back
 | 
			
		||||
	// Player Rendering
 | 
			
		||||
	render_player( player, world, game_state, back_buffer );
 | 
			
		||||
	
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
	if ( game_state->player_2.controller.xpad || game_state->player_2.controller.ds_pad )
 | 
			
		||||
		render_player( & game_state->player_state_2, world, game_state, back_buffer );
 | 
			
		||||
#endif
 | 
			
		||||
	
 | 
			
		||||
	// Snapshot Visual Aid
 | 
			
		||||
	#if Build_Development
 | 
			
		||||
@@ -1410,17 +1393,10 @@ void update_and_render( f32 delta_time, InputState* input, OffscreenBuffer* back
 | 
			
		||||
		// Mouse Position
 | 
			
		||||
		if ( 0 )
 | 
			
		||||
		{
 | 
			
		||||
			#if NEW_INPUT_DESIGN
 | 
			
		||||
				draw_rectangle( back_buffer
 | 
			
		||||
					, { (f32)input->mouse->X.end,        (f32)input->mouse->Y.end }
 | 
			
		||||
					, { (f32)input->mouse->X.end + 10.f, (f32)input->mouse->Y.end + 10.f }
 | 
			
		||||
					, 1.f, 1.f, 0.f );
 | 
			
		||||
			#else
 | 
			
		||||
				draw_rectangle( back_buffer
 | 
			
		||||
					, { (f32)input->controllers[0].mouse->X.end,        (f32)input->controllers[0].mouse->Y.end }
 | 
			
		||||
					, { (f32)input->controllers[0].mouse->X.end + 10.f, (f32)input->controllers[0].mouse->Y.end + 10.f }
 | 
			
		||||
					, 1.f, 1.f, 0.f );
 | 
			
		||||
			#endif
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
		// Mouse buttons test
 | 
			
		||||
 
 | 
			
		||||
@@ -143,9 +143,6 @@ struct DualsensePadState
 | 
			
		||||
};
 | 
			
		||||
using DualsensePadStates = DualsensePadState*[ Max_Controllers ];
 | 
			
		||||
 | 
			
		||||
#define NEW_INPUT_DESIGN 1
 | 
			
		||||
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
struct InputStateSnapshot
 | 
			
		||||
{
 | 
			
		||||
	KeyboardState     keyboard;
 | 
			
		||||
@@ -153,39 +150,13 @@ struct InputStateSnapshot
 | 
			
		||||
	XInputPadState    xpads  [ Max_Controllers ];
 | 
			
		||||
	DualsensePadState ds_pads[ Max_Controllers ];
 | 
			
		||||
};
 | 
			
		||||
#else
 | 
			
		||||
struct ControllerStateSnapshot
 | 
			
		||||
{
 | 
			
		||||
	KeyboardState     keyboard;
 | 
			
		||||
	MousesState       mouse;
 | 
			
		||||
	XInputPadState    xpad;
 | 
			
		||||
	DualsensePadState ds_pad;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct ControllerState
 | 
			
		||||
{
 | 
			
		||||
	KeyboardState*     keyboard;
 | 
			
		||||
	MousesState*       mouse;
 | 
			
		||||
	XInputPadState*    xpad;
 | 
			
		||||
	DualsensePadState* ds_pad;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct InputStateSnapshot
 | 
			
		||||
{
 | 
			
		||||
	ControllerStateSnapshot controllers[4];
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
struct InputState
 | 
			
		||||
{
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
	KeyboardState*     keyboard;
 | 
			
		||||
	MousesState*       mouse;
 | 
			
		||||
	XInputPadStates    xpads;
 | 
			
		||||
	DualsensePadStates ds_pads;
 | 
			
		||||
#else
 | 
			
		||||
	ControllerState controllers[4];
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
using InputBindCallback             = void( void* );
 | 
			
		||||
 
 | 
			
		||||
@@ -106,7 +106,6 @@ void end_playback_input( Memory* memory, InputState* input, platform::ModuleAPI*
 | 
			
		||||
 | 
			
		||||
InputStateSnapshot input_state_snapshot( InputState* input )
 | 
			
		||||
{
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
	InputStateSnapshot snapshot = {};
 | 
			
		||||
	if ( input->keyboard )
 | 
			
		||||
		snapshot.keyboard = * input->keyboard;
 | 
			
		||||
@@ -125,28 +124,6 @@ InputStateSnapshot input_state_snapshot( InputState* input )
 | 
			
		||||
			snapshot.ds_pads[ idx ] = * ds_pad;
 | 
			
		||||
	}
 | 
			
		||||
	return snapshot;
 | 
			
		||||
#else
 | 
			
		||||
	InputStateSnapshot snapshot = {};
 | 
			
		||||
	for ( s32 idx = 0; idx < array_count( snapshot.controllers ); ++ idx )
 | 
			
		||||
	{
 | 
			
		||||
		ControllerState* controller = & input->controllers[idx];
 | 
			
		||||
		if ( controller == nullptr )
 | 
			
		||||
		continue;
 | 
			
		||||
 | 
			
		||||
		if ( controller->ds_pad )
 | 
			
		||||
			snapshot.controllers[idx].ds_pad = *controller->ds_pad;
 | 
			
		||||
 | 
			
		||||
		if ( controller->xpad )
 | 
			
		||||
			snapshot.controllers[idx].xpad = *controller->xpad;
 | 
			
		||||
 | 
			
		||||
		if ( controller->keyboard )
 | 
			
		||||
			snapshot.controllers[idx].keyboard = *controller->keyboard;
 | 
			
		||||
 | 
			
		||||
		if ( controller->mouse )
 | 
			
		||||
			snapshot.controllers[idx].mouse = *controller->mouse;
 | 
			
		||||
	}
 | 
			
		||||
	return snapshot;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
internal
 | 
			
		||||
@@ -170,7 +147,6 @@ void play_input( SnapshotFn* load_snapshot, Memory* memory, InputState* input, p
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
	if ( input->keyboard )
 | 
			
		||||
		* input->keyboard = new_input.keyboard;
 | 
			
		||||
	
 | 
			
		||||
@@ -187,28 +163,6 @@ void play_input( SnapshotFn* load_snapshot, Memory* memory, InputState* input, p
 | 
			
		||||
		if ( ds_pad )
 | 
			
		||||
			* ds_pad = new_input.ds_pads[ idx ];
 | 
			
		||||
	}
 | 
			
		||||
#else 
 | 
			
		||||
	for ( s32 idx = 0; idx < array_count( new_input.controllers ); ++ idx )
 | 
			
		||||
	{
 | 
			
		||||
		ControllerState* controller = & input->controllers[idx];
 | 
			
		||||
		if ( controller == nullptr )
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		if ( controller->ds_pad )
 | 
			
		||||
			*controller->ds_pad = new_input.controllers[idx].ds_pad;
 | 
			
		||||
 | 
			
		||||
		if ( controller->xpad )
 | 
			
		||||
			*controller->xpad = new_input.controllers[idx].xpad;
 | 
			
		||||
 | 
			
		||||
		if ( controller->keyboard )
 | 
			
		||||
		{
 | 
			
		||||
			*controller->keyboard = new_input.controllers[idx].keyboard;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if ( controller->mouse )
 | 
			
		||||
			*controller->mouse = new_input.controllers[idx].mouse;
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void process_loop_mode( SnapshotFn* take_snapshot, SnapshotFn* load_snapshot
 | 
			
		||||
 
 | 
			
		||||
@@ -61,7 +61,6 @@ struct ActionableMode
 | 
			
		||||
	Player : Controller, Actionables, ActionSets
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
struct ControllerState
 | 
			
		||||
{
 | 
			
		||||
	engine::KeyboardState*     keyboard;
 | 
			
		||||
@@ -69,7 +68,6 @@ struct ControllerState
 | 
			
		||||
	engine::XInputPadState*    xpad;
 | 
			
		||||
	engine::DualsensePadState* ds_pad;
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
enum EHeroBitmapsDirection : u32
 | 
			
		||||
{
 | 
			
		||||
@@ -120,14 +118,9 @@ struct PlayerActions
 | 
			
		||||
 | 
			
		||||
struct Player
 | 
			
		||||
{
 | 
			
		||||
#if NEW_INPUT_DESIGN
 | 
			
		||||
	// So far just has an assigned controller.
 | 
			
		||||
	ControllerState controller;
 | 
			
		||||
#else
 | 
			
		||||
	engine::ControllerState* controller;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	PlayerState state;
 | 
			
		||||
	PlayerState     state;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct GameState
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user