[video output=day290 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Separated Rendering" vod_platform=youtube id=DCd-abDxftc annotator=Miblo]
[1:01][handmade_sim_region.cpp: Remove the EntityOverlapsRectangle call in BeginSim]
[3:58][Run the game and set the stage for moving all the entities to the new path]
[4:45][handmade_brain.cpp: Make ExecuteBrain use the ddP2 rather than the ddP]
[7:11][handmade_world_mode.cpp: Make AddPiece take an Offset]
[9:01][handmade_world_mode.cpp: Make AddMonstar call AddPiece]
[12:41][Run the game and see the Monstar]
[13:24][handmade_world_mode.cpp: Make AddPlayer call AddPiece]
[15:02][handmade_world_mode.cpp: Consider how to proceed with the HeroBody and Familiar]
[17:03][handmade_world_mode.cpp: Make AddPlayer do AddPiece calls for the Shadow, Torso and Cape, leaving out the animated portion of it]
[20:40][Run the game and see everyone but the Familiar]
[21:05][handmade_world_mode.cpp: Make AddFamiliar call AddPiece]
[22:22][Run the game and see everyone]
[23:02][handmade_entity.h: Introduce entity_visible_piece_movement with AxesDeform and BobOffset]
[24:18][handmade_world_mode.cpp: Make the Familiar set the BobOffset flag, and the Hero set the AxesDeform one for the Cape]
[25:58][handmade_world_mode.cpp: Make the HeroBody do AxesDeform]
[35:32][handmade_world_mode.cpp: Make BeginLowEntity correctly set the axes]
[36:25][Run the game and see that we're properly deforming]
[36:44][handmade_entity.h: Remove entity_type from entity and see who needed it]
[39:13][Run the game with the notion of entity_types gone]
[46:04][handmade_brain.h: Introduce brain_hero, brain_monstar and brain_familiar]
[47:30][handmade_world_mode.cpp: Make a Brain_Familiar case]
[53:18][handmade_brain.h: Make BrainSlotFor_ take Type]
[54:45][handmade_entity.h: Remove BrainType from entity and deal with the resultant compile errors]
[56:42][Run the game and find that nothing has changed]
[56:49][Q&A][:speech]
[57:33][@quarter][Were you trapped in an elevator today?]
[57:47][@themarsalla][If you are nuking the concept of an entity type but still keeping everything tightly bound in the brain, what real gain does all of this work give us? Didn't we just shift responsibility into the brain?]
[59:49][@abner][After all this time, are finally you used to programming live? Is this a comfortable habit now?]
[1:00:27][@longboolean][Could you explain again what you just did with the brain slot? That went a little fast for me]
[1:04:02][@thesizik][How would you handle something like mind-controlling other entities, or having your mind swapped into a differently-structured body?]
[1:06:40][handmade_brain.cpp: Implement mind control in ExecuteBrain]
[1:09:26][handmade_brain.h: Introduce NoBrain]
[1:11:30][Run the game and take control of the familiar]
[1:12:29][handmade_brain.cpp: Make ExecuteBrain swap the BrainID and BrainSlot]
[1:15:12][handmade_world_mode.cpp: Make PlayWorld set everything to NullCollision]
[1:15:50][Run the game and toggle between the familiar and the original hero]
[1:16:38][handmade_world_mode.cpp: Make AddMonstar set a brain]
[1:17:03][Run the game and mind-control the monstar and the familiar]
[1:18:03][@arkandosde][When will we implement the zombie brain?]
[1:18:46][Wrap it up][:speech]
[/video]
