Handmade Hero»Episode Guide
Inserting and Rewriting HHT Alignment Points
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:02Recap and set the stage for the day
🗩
0:02Recap and set the stage for the day
🗩
0:02Recap and set the stage for the day
🗩
1:15Demo our asset alignment point editor
🏃
1:15Demo our asset alignment point editor
🏃
1:15Demo our asset alignment point editor
🏃
5:32Synchronising our asset alignment points between .hha and .hht files
🗩
5:32Synchronising our asset alignment points between .hha and .hht files
🗩
5:32Synchronising our asset alignment points between .hha and .hht files
🗩
10:12Enable ParseTopLevelBlock() to insert new alignment points in an .hht and clear them from an .hha file
10:12Enable ParseTopLevelBlock() to insert new alignment points in an .hht and clear them from an .hha file
10:12Enable ParseTopLevelBlock() to insert new alignment points in an .hht and clear them from an .hha file
38:23Enable ParseTopLevelBlock() to retain matching alignment points and replace changed ones in an .hht file
38:23Enable ParseTopLevelBlock() to retain matching alignment points and replace changed ones in an .hht file
38:23Enable ParseTopLevelBlock() to retain matching alignment points and replace changed ones in an .hht file
52:01Enable ParseTopLevelBlock() to apply our asset alignment point changes to the .hha file
52:01Enable ParseTopLevelBlock() to apply our asset alignment point changes to the .hha file
52:01Enable ParseTopLevelBlock() to apply our asset alignment point changes to the .hha file
1:00:42Consider a more generic diffing system
🗩
1:00:42Consider a more generic diffing system
🗩
1:00:42Consider a more generic diffing system
🗩
1:03:03Atomic file replace1
🗩
1:03:03Atomic file replace1
🗩
1:03:03Atomic file replace1
🗩
1:07:33Implement Win32AtomicReplaceFileContents()2,3,4,5
1:07:33Implement Win32AtomicReplaceFileContents()2,3,4,5
1:07:33Implement Win32AtomicReplaceFileContents()2,3,4,5
1:28:42Hit an assert in ParseTopLevelBlock()
🏃
1:28:42Hit an assert in ParseTopLevelBlock()
🏃
1:28:42Hit an assert in ParseTopLevelBlock()
🏃
1:30:00Fix the assert in ParseTopLevelBlock() to test on the Asset->HHA.Type
1:30:00Fix the assert in ParseTopLevelBlock() to test on the Asset->HHA.Type
1:30:00Fix the assert in ParseTopLevelBlock() to test on the Asset->HHA.Type
1:31:28Run the import, but do not see our assets
🏃
1:31:28Run the import, but do not see our assets
🏃
1:31:28Run the import, but do not see our assets
🏃
1:33:39Make ParseTopLevelBlock() apply default alignment points to assets
1:33:39Make ParseTopLevelBlock() apply default alignment points to assets
1:33:39Make ParseTopLevelBlock() apply default alignment points to assets
1:36:40Find that our assets now appear, and step through the "Import & Save" routine
🏃
1:36:40Find that our assets now appear, and step through the "Import & Save" routine
🏃
1:36:40Find that our assets now appear, and step through the "Import & Save" routine
🏃
1:38:28Make FindAlign() rather than ParseTopLevelBlock() apply default alignment points, to permit assets that lack alignment points
1:38:28Make FindAlign() rather than ParseTopLevelBlock() apply default alignment points, to permit assets that lack alignment points
1:38:28Make FindAlign() rather than ParseTopLevelBlock() apply default alignment points, to permit assets that lack alignment points
1:42:47Find that that didn't work
🏃
1:42:47Find that that didn't work
🏃
1:42:47Find that that didn't work
🏃
1:43:00Fix FindAlign() to apply default alignment points for an asset's ToParent connection
1:43:00Fix FindAlign() to apply default alignment points for an asset's ToParent connection
1:43:00Fix FindAlign() to apply default alignment points for an asset's ToParent connection
1:46:47Find that we see our assets just right, and step through our "Import & Save" routine again with full success
🏃
1:46:47Find that we see our assets just right, and step through our "Import & Save" routine again with full success
🏃
1:46:47Find that we see our assets just right, and step through our "Import & Save" routine again with full success
🏃
1:49:43Enable Win32AtomicReplaceFileContents() to delete the temporary file if the move failed6
1:49:43Enable Win32AtomicReplaceFileContents() to delete the temporary file if the move failed6
1:49:43Enable Win32AtomicReplaceFileContents() to delete the temporary file if the move failed6
1:50:49Compare our original and updated base_game.hht with Meld
🗹
1:50:49Compare our original and updated base_game.hht with Meld
🗹
1:50:49Compare our original and updated base_game.hht with Meld
🗹
1:52:03Find the alignment points reload correctly
🏃
1:52:03Find the alignment points reload correctly
🏃
1:52:03Find the alignment points reload correctly
🏃
1:52:41Make ParseTopLevelBlock() output tabbing and newline
1:52:41Make ParseTopLevelBlock() output tabbing and newline
1:52:41Make ParseTopLevelBlock() output tabbing and newline
1:53:36Q&A
🗩
1:53:36Q&A
🗩
1:53:36Q&A
🗩
1:55:01pajpiart Q: Will you make file formats for how the worlds are generated as well in the future?
🗪
1:55:01pajpiart Q: Will you make file formats for how the worlds are generated as well in the future?
🗪
1:55:01pajpiart Q: Will you make file formats for how the worlds are generated as well in the future?
🗪
1:55:48ejgremlin Q: Do you think it is better to design for the top 10% of programmers, or the majority, in language / API design?
🗪
1:55:48ejgremlin Q: Do you think it is better to design for the top 10% of programmers, or the majority, in language / API design?
🗪
1:55:48ejgremlin Q: Do you think it is better to design for the top 10% of programmers, or the majority, in language / API design?
🗪
1:58:24kanjiowl Q: Off-topic, but in an old stream you mentioned that you liked having all allocators (like PushSize) go through macros instead of direct function calls. What was your reasoning behind this?
🗪
1:58:24kanjiowl Q: Off-topic, but in an old stream you mentioned that you liked having all allocators (like PushSize) go through macros instead of direct function calls. What was your reasoning behind this?
🗪
1:58:24kanjiowl Q: Off-topic, but in an old stream you mentioned that you liked having all allocators (like PushSize) go through macros instead of direct function calls. What was your reasoning behind this?
🗪
1:59:23pajpiart Q: Since there aren't a lot of questions: Do you think I could interest you in a pair of zircon-encrusted tweezers?
🗪
1:59:23pajpiart Q: Since there aren't a lot of questions: Do you think I could interest you in a pair of zircon-encrusted tweezers?
🗪
1:59:23pajpiart Q: Since there aren't a lot of questions: Do you think I could interest you in a pair of zircon-encrusted tweezers?
🗪
2:00:30s0imn Q: Would you move to clang and implement custom build tooling
🗪
2:00:30s0imn Q: Would you move to clang and implement custom build tooling
🗪
2:00:30s0imn Q: Would you move to clang and implement custom build tooling
🗪
2:01:04garryjohanson handmade_hero May I ask a larger sort of off-topic question, or should I save that for tomorrow's pre stream?
🗪
2:01:04garryjohanson handmade_hero May I ask a larger sort of off-topic question, or should I save that for tomorrow's pre stream?
🗪
2:01:04garryjohanson handmade_hero May I ask a larger sort of off-topic question, or should I save that for tomorrow's pre stream?
🗪
2:01:33xxthebigfoxx Q: Is there anything like operating system garbage collection nowadays? My professor talked about not needing to free calls to malloc() due to something like that. I would imagine he has no idea what he is talking about, but I'm not sure either
🗪
2:01:33xxthebigfoxx Q: Is there anything like operating system garbage collection nowadays? My professor talked about not needing to free calls to malloc() due to something like that. I would imagine he has no idea what he is talking about, but I'm not sure either
🗪
2:01:33xxthebigfoxx Q: Is there anything like operating system garbage collection nowadays? My professor talked about not needing to free calls to malloc() due to something like that. I would imagine he has no idea what he is talking about, but I'm not sure either
🗪
2:04:55garryjohanson handmade_hero So I talked to one of the handmade debug teams and they made it sound like it would be doable to expose all debug symbols on an API level. This seems like a very powerful thing since people could build custom luggins [sic] on top of the debugger itself. This seems very powerful and very leveragable. Is there anything wrong with that? Is there some reason you know of Visual Studio does not expose debug information to an API? Some security vulnerability or something?7
🗪
2:04:55garryjohanson handmade_hero So I talked to one of the handmade debug teams and they made it sound like it would be doable to expose all debug symbols on an API level. This seems like a very powerful thing since people could build custom luggins [sic] on top of the debugger itself. This seems very powerful and very leveragable. Is there anything wrong with that? Is there some reason you know of Visual Studio does not expose debug information to an API? Some security vulnerability or something?7
🗪
2:04:55garryjohanson handmade_hero So I talked to one of the handmade debug teams and they made it sound like it would be doable to expose all debug symbols on an API level. This seems like a very powerful thing since people could build custom luggins [sic] on top of the debugger itself. This seems very powerful and very leveragable. Is there anything wrong with that? Is there some reason you know of Visual Studio does not expose debug information to an API? Some security vulnerability or something?7
🗪
2:07:36x13pixels DBGHELP.DLL8
🗪
2:07:36x13pixels DBGHELP.DLL8
🗪
2:07:36x13pixels DBGHELP.DLL8
🗪
2:08:20Close it down with a glimpse into the future and a plug of Meow the Infinite9
🗩
2:08:20Close it down with a glimpse into the future and a plug of Meow the Infinite9
🗩
2:08:20Close it down with a glimpse into the future and a plug of Meow the Infinite9
🗩