[video output=day285 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Transactional Occupation of Traversables" vod_platform=youtube id=HXLr8tSGIX0 annotator=Miblo] [1:35][4coder: New version 4.0.5, with indentation and scrollbars] [3:25][Recap and set the stage for the day] [4:36][handmade_world_mode.cpp: Disable the slope] [6:14][4coder: Bug with editing in the left-hand pane] [7:29][handmade_entity.h: Add an entity *StandingOn to entity_traversable_point] [9:31][handmade_sim_region.cpp: Make LoadTraversableReference write to the entity's collision volume if they have a pointer set] [10:57][handmade_world_mode.cpp: Colour the traversable if it has an Occupier] [11:43][4coder: Swoon over the cool new indentation] [12:43][Run the game and find that the traversables already have the new colour] [16:15][handmade_entity.h: Make the Traversable a property of the entity] [19:53][Run the game and pacman up the traversable points] [20:57][4coder: Realise that we're now editing in the left-hand pane] [21:21][handmade_world_mode.cpp: Check if a traversable is available before hopping to it] [23:14][handmade_sim_region.cpp: Introduce TransactionalOccupy and GetTraversable] [31:29][Run the game and note a couple of problems] [34:26][Blackboard: Transitioning from Standing On to Moving To] [37:18][handmade_entity.h and handmade_world_mode.cpp: Assume that a 1-square-sized entity occupies only one square at once] [38:49][4coder: Outdated jump-to-error] [43:05][Run the game and find that the colouring of the traverables is working as expected] [43:45][handmade_world_mode.cpp: Reimplement the ability to add new heroes] [45:13][Run the game, try adding new heroes and enjoy the weirdness] [47:04][handmade_world_mode.cpp: Consider making AddPlayer more robust] [53:31][handmade_world_mode.cpp: Set HeroesExist in both cases, run the game and consider keeping AddPlayer as it is] [54:41][Q&A][:speech] [55:22][@stropheum][This debug world just gets progressively weirder every day] [56:34][@remele][Why don't the cloned players jump to points when their head moves over them?] [57:21][handmade_world_mode.cpp: Make the hopping happen whether or not a controller is controlling the hero] [59:46][Run the game and spawn a ton of heroes] [1:00:12][handmade_world_mode.cpp: Keep those heroes hopping] [1:00:54][Run the game and watch them hop] [1:01:36][handmade_sim_region.cpp: Introduce traversable_search_flag and add Unoccupied flag to GetClosestTraversable] [1:02:21][4coder: Praise Allen for the alignment] [1:03:13][4coder: Bogus indentation] [1:04:21][Run the game and spawn a line of heroes] [1:05:14][handmade_world_mode.cpp: Made AddPlayer take SimRegion in order to do GetClosestTraversable] [1:07:26][Run the game and find that we're still not quite right] [1:08:20][handmade.h: Add DebugSpawn to controlled_hero in order to test this adding] [1:12:22][handmade_sim_region.cpp: Make GetSimSpaceTraversable copy the Occupier] [1:13:06][Run the game and spawn some correctly positioned heroes] [1:13:30][handmade_world_mode.cpp: Make DebugSpawn not override us] [1:13:54][Run the game and just add new people] [1:16:05][Wind up][:speech] [1:16:08][4coder: Recap the one weirdness with the if \[see 1:03:13\]] [/video]