[video output=day198 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Run-time Editing of Debug Hierarchies" vod_platform=youtube id=wyN_xzqz5dk annotator=Miblo]
[2:18][Recap and set the stage for the day]
[4:31][handmade_debug.h: Introduce debug_variable_reference]
[8:04][handmade_debug_variables.h: Introduce DEBUGAddUnreferencedVariable]
[9:43][handmade_debug.h: Add debug_variable *Var to debug_variable_reference]
[9:51][handmade_debug_variables.h: Introduce DEBUGAddVariableReference]
[12:15][handmade_debug_variables.h: Clean up compile errors]
[14:11][handmade_debug.cpp: Propagate Ref out]
[16:16][Compile and see that it still works]
[16:35][handmade_debug_variables.h: Try adding a UseDebugCamRef into two different groups]
[18:06][Run the game and see UseDebugCam in two groups]
[18:51][handmade_debug.cpp: Implement the ability to have more than one debug_variable_hierarchy]
[24:26][handmade_debug.cpp: Introduce AddHierarchy]
[27:32][handmade_debug.cpp: Write the Hierarchy doubly-linked list]
[29:42][Debugger: Step in to AddHierarchy]
[31:15][handmade_debug.cpp: Call AddHierarchy in the correct place]
[32:27][Run the game and find things in better shape]
[32:58][handmade_debug.cpp: Implement the ability to tear items off the menu]
[38:59][handmade_debug.cpp: Implement DebugInteraction_TearValue]
[41:14][handmade_debug.variables.h: Introduce DEBUGAddRootGroup]
[45:08][handmade_debug.cpp: Call DEBUGAddRootGroup]
[47:12][handmade_debug_variables.h: Make DEBUGAddVariableReference take debug_variable *Group]
[50:11][handmade_debug.cpp: Call DEBUGAddVariableReference]
[51:04][handmade_debug_variables.h: Make DEBUGAddRootGroup add a debug_variable_reference]
[52:00][handmade_debug_variables.h: Introduce a new DEBUGAddRootGroup and rename the original to DEBUGAddRootGroupInternal]
[54:47][Run the game and test out our new tearing ability]
[55:45][handmade_debug.cpp and handmade_debug.h: Introduce DebugInteraction_MoveHierarchy]
[57:25][handmade_debug.cpp: Draw a MoveBox for each Hierarchy]
[58:41][handmade_debug.cpp: Implement the ability to move that Hierarchy]
[59:31][handmade_debug.h: Add debug_hierarchy *NextHotHierarchy to debug_state]
[1:02:14][Debugger: Step in to DraggingHierarchy]
[1:02:58][handmade_debug.cpp: Clear NextHotHierarchy]
[1:03:14][handmade_debug.cpp: Introduce DEBUGTextLine to display when we are interacting]
[1:04:22][handmade_debug.cpp: Make the check be on HotInteraction]
[1:05:25][Run the game and try that again]
[1:05:55][handmade_debug.cpp: Move Assert(Var)]
[1:06:22][Run the game and check out our tearing and moving abilities]
[1:07:00][Q&A][:speech]
[1:07:47][@Connor_Rentz][No questions]
[1:08:04][@elxenoaizd][You mentioned that encapsulation is good but not in the OOP way. Could you elaborate then in which way you mean?]
[1:09:09][@insofaras][Are the menu items spaced evenly vertically? Looks a bit odd to me]
[1:09:25][handmade_debug.cpp: Use LineAdvance to space the lines]
[1:16:49][@adamantoise17][Why is there so much lag / latency when dragging the hierarchies around? Or is that just Twitch streaming artifacts?]
[1:18:08][@blah238][Are the different tear-offs intended to have identical hierarchies or is the intention that you drill down into different things without all the tear-offs being affected?]
[1:19:12][@APlethora][I noticed you use the internal keyword. I haven't seen it before. What is its purpose?]
[1:19:23][@theGeekPirate][I apologize since I came in late, but out of curiosity, what was the tolerance (in pixels) you used for dragging out a subsection?]
[1:19:38][@mojo123X][You mentioned that for linked lists at work you use metaprogramming. What did you mean?]
[1:19:51][@Outcastedbird][I missed 90% of the stream, so I missed a ton. I just want to ask what are some tips for people who want to get into designing games? Dos and Don'ts and simple things that are worthwhile]
[1:20:02][@APlethora][Does anyone know if there is plans in the future to add other platform support to this project?]
[1:20:23][@elxenoaizd][Have you ever written anything for the PS1? (I think Jeff mentioned he used to do some stuff in a J&C episode?)]
[1:20:27][@blah238][Have you ever played any of the Space Quest games? The music for the video on the Handmade Hero site reminds me of it a lot]
[1:20:47][@MartinCohen][Do you plan doing something with the character spacing in the text renderer?]
[1:21:02][@Angrycrow][Is 'sentinel' a design pattern that will help with making the torn instances of the UI independent, or is that terminology that you've gained in years of tool development? Now that I understand what you meant by 'tearing' the interface, it seems really useful for isolating instances of hierarchies]
[1:21:31][@Longboolean][Not a huge deal, but the labels no longer show if clicking them will expand or minimize them. Also at a glance it is not clear what is a category and what is a var]
[1:21:48][@plain_flavored][Which game console had the worst SDK?]
[1:22:16][Wrap it up][:speech]
[/video]
