Handmade Hero»Episode Guide
Merging HHT Parsing into the Asset System
?
?

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:01Recap and set the stage for the day
🗩
0:01Recap and set the stage for the day
🗩
0:01Recap and set the stage for the day
🗩
2:18Show our tag file format and the separation of .hht files from the source assets
🗩
2:18Show our tag file format and the separation of .hht files from the source assets
🗩
2:18Show our tag file format and the separation of .hht files from the source assets
🗩
4:37Organise our uncompressed cutscene layer images for all eleven shots into a single directory1
🗹
4:37Organise our uncompressed cutscene layer images for all eleven shots into a single directory1
🗹
4:37Organise our uncompressed cutscene layer images for all eleven shots into a single directory1
🗹
11:26“Oh DOS, so precious... "Oh, little lemon sweets. So precious. Have you enjoyed renaming your little files? What would you like to do now? Rename something"”α
🗩
11:26“Oh DOS, so precious... "Oh, little lemon sweets. So precious. Have you enjoyed renaming your little files? What would you like to do now? Rename something"”α
🗩
11:26“Oh DOS, so precious... "Oh, little lemon sweets. So precious. Have you enjoyed renaming your little files? What would you like to do now? Rename something"”α
🗩
11:49Continue to organise our cutscene images
🗹
11:49Continue to organise our cutscene images
🗹
11:49Continue to organise our cutscene images
🗹
17:32Tag our cutscene image assets in intro_cutscene.hht
🗹
17:32Tag our cutscene image assets in intro_cutscene.hht
🗹
17:32Tag our cutscene image assets in intro_cutscene.hht
🗹
26:32Enable ParseTagList() and GetToken() to parse numbers
26:32Enable ParseTagList() and GetToken() to parse numbers
26:32Enable ParseTagList() and GetToken() to parse numbers
39:10Move the parsing code into handmade_asset.cpp, and remove handmade_hht.h and .cpp
39:10Move the parsing code into handmade_asset.cpp, and remove handmade_hht.h and .cpp
39:10Move the parsing code into handmade_asset.cpp, and remove handmade_hht.h and .cpp
43:05Finding vs specifying parent-directories of files
🗩
43:05Finding vs specifying parent-directories of files
🗩
43:05Finding vs specifying parent-directories of files
🗩
46:37Enable Win32GetAllFilesOfTypeBegin() to handle .hht files
46:37Enable Win32GetAllFilesOfTypeBegin() to handle .hht files
46:37Enable Win32GetAllFilesOfTypeBegin() to handle .hht files
49:42Introduce PLATFORM_GET_FILE_BY_PATH() and Win32GetFileInfoFromWildCard()
49:42Introduce PLATFORM_GET_FILE_BY_PATH() and Win32GetFileInfoFromWildCard()
49:42Introduce PLATFORM_GET_FILE_BY_PATH() and Win32GetFileInfoFromWildCard()
1:06:33Replace PNG and WAV platform_file_type with a general HHT
1:06:33Replace PNG and WAV platform_file_type with a general HHT
1:06:33Replace PNG and WAV platform_file_type with a general HHT
1:09:47Introduce UTF8FromUTF16() and UTF16FromUTF8()2
1:09:47Introduce UTF8FromUTF16() and UTF16FromUTF8()2
1:09:47Introduce UTF8FromUTF16() and UTF16FromUTF8()2
1:19:00Remove Win32GetFileInfoFromWildCard(), implement Win32GetFileByPath() and introduce Win32AllocateFileInfo()3,4,5
1:19:00Remove Win32GetFileInfoFromWildCard(), implement Win32GetFileByPath() and introduce Win32AllocateFileInfo()3,4,5
1:19:00Remove Win32GetFileInfoFromWildCard(), implement Win32GetFileByPath() and introduce Win32AllocateFileInfo()3,4,5
1:32:43Disable ImportChangedAssets()
1:32:43Disable ImportChangedAssets()
1:32:43Disable ImportChangedAssets()
1:33:11Find that the .hha files still get found
🏃
1:33:11Find that the .hha files still get found
🏃
1:33:11Find that the .hha files still get found
🏃
1:33:40Add a "HHA" field to the parser and handle merging of the "default" block
1:33:40Add a "HHA" field to the parser and handle merging of the "default" block
1:33:40Add a "HHA" field to the parser and handle merging of the "default" block
1:40:40Tying in our .hht parser with the asset parser
🗩
1:40:40Tying in our .hht parser with the asset parser
🗩
1:40:40Tying in our .hht parser with the asset parser
🗩
1:44:42Make ParseTopLevelBlock() (in the .hht parser) call the asset parser's BeginTags(), ParsePieces() and EndTags(), introducing SetCategory()
1:44:42Make ParseTopLevelBlock() (in the .hht parser) call the asset parser's BeginTags(), ParsePieces() and EndTags(), introducing SetCategory()
1:44:42Make ParseTopLevelBlock() (in the .hht parser) call the asset parser's BeginTags(), ParsePieces() and EndTags(), introducing SetCategory()
1:56:43Duplicated tag parsing
🗩
1:56:43Duplicated tag parsing
🗩
1:56:43Duplicated tag parsing
🗩
1:58:25Revert our changes in the asset parser, and make EndTags() copy previously parsed tags
1:58:25Revert our changes in the asset parser, and make EndTags() copy previously parsed tags
1:58:25Revert our changes in the asset parser, and make EndTags() copy previously parsed tags
2:02:50Add a version of Error() in the tokeniser that doesn't take a token, and one of Outf_() that takes a va_list
2:02:50Add a version of Error() in the tokeniser that doesn't take a token, and one of Outf_() that takes a va_list
2:02:50Add a version of Error() in the tokeniser that doesn't take a token, and one of Outf_() that takes a va_list
2:08:10Add a FileName, LineNumber and ErrorStream to the tokenizer, and clean up compile errors
2:08:10Add a FileName, LineNumber and ErrorStream to the tokenizer, and clean up compile errors
2:08:10Add a FileName, LineNumber and ErrorStream to the tokenizer, and clean up compile errors
2:21:59Reflect on our .hht parser and glimpse into the future loading in asset source files
🗩
2:21:59Reflect on our .hht parser and glimpse into the future loading in asset source files
🗩
2:21:59Reflect on our .hht parser and glimpse into the future loading in asset source files
🗩
2:23:02Q&A
🗩
2:23:02Q&A
🗩
2:23:02Q&A
🗩
2:24:10s0imn Q: What are the flaws of converting a decimal floating point number to a binary equivalent by first parsing the number, and converting it to a regular integer, ignoring the decimal point. Then using the parsed number as the mantissa, and an accumulated value for the exponent, for the floating point number?
🗪
2:24:10s0imn Q: What are the flaws of converting a decimal floating point number to a binary equivalent by first parsing the number, and converting it to a regular integer, ignoring the decimal point. Then using the parsed number as the mantissa, and an accumulated value for the exponent, for the floating point number?
🗪
2:24:10s0imn Q: What are the flaws of converting a decimal floating point number to a binary equivalent by first parsing the number, and converting it to a regular integer, ignoring the decimal point. Then using the parsed number as the mantissa, and an accumulated value for the exponent, for the floating point number?
🗪
2:28:03violetasthethird Q: What do you think about WebAssembly as a platform for cross-platform applications and games?
🗪
2:28:03violetasthethird Q: What do you think about WebAssembly as a platform for cross-platform applications and games?
🗪
2:28:03violetasthethird Q: What do you think about WebAssembly as a platform for cross-platform applications and games?
🗪
2:31:03tbodt_ WebAssembly has always had a binary format, which is the default, and a text format to be able to read it
🗪
2:31:03tbodt_ WebAssembly has always had a binary format, which is the default, and a text format to be able to read it
🗪
2:31:03tbodt_ WebAssembly has always had a binary format, which is the default, and a text format to be able to read it
🗪
2:31:38uplinkcoder handmade_hero: That's asm.js
🗪
2:31:38uplinkcoder handmade_hero: That's asm.js
🗪
2:31:38uplinkcoder handmade_hero: That's asm.js
🗪
2:32:09somebody_took_my_name Q: How would you convince a seasoned OO-programmer of the merits of not using it? What is your best statement?
🗪
2:32:09somebody_took_my_name Q: How would you convince a seasoned OO-programmer of the merits of not using it? What is your best statement?
🗪
2:32:09somebody_took_my_name Q: How would you convince a seasoned OO-programmer of the merits of not using it? What is your best statement?
🗪
2:32:45wwwwwvwwwwwvwwwwwwwwwwwww Q: Have you ever read any of The Art of Computer Programming?
🗪
2:32:45wwwwwvwwwwwvwwwwwwwwwwwww Q: Have you ever read any of The Art of Computer Programming?
🗪
2:32:45wwwwwvwwwwwvwwwwwwwwwwwww Q: Have you ever read any of The Art of Computer Programming?
🗪
2:33:08drealrak Q: Why you don't use switch in our while(Parsing(Tokenizer)) loop?
🗪
2:33:08drealrak Q: Why you don't use switch in our while(Parsing(Tokenizer)) loop?
🗪
2:33:08drealrak Q: Why you don't use switch in our while(Parsing(Tokenizer)) loop?
🗪
2:34:06xxthebigfoxx Q: Can you explain a bit more of what Windows considers UTF-16? I see it mentioned plenty of times on MSDN but usually it just means wchar_t, not actual utf16 with surrogates
🗪
2:34:06xxthebigfoxx Q: Can you explain a bit more of what Windows considers UTF-16? I see it mentioned plenty of times on MSDN but usually it just means wchar_t, not actual utf16 with surrogates
🗪
2:34:06xxthebigfoxx Q: Can you explain a bit more of what Windows considers UTF-16? I see it mentioned plenty of times on MSDN but usually it just means wchar_t, not actual utf16 with surrogates
🗪
2:36:03aidsjorb Q: Has the intentionally deliberate pace for Handmade Hero helped you in your day job at all (as say a reminder / refresher), or is it always just tedious to program in this fashion after all these years?
🗪
2:36:03aidsjorb Q: Has the intentionally deliberate pace for Handmade Hero helped you in your day job at all (as say a reminder / refresher), or is it always just tedious to program in this fashion after all these years?
🗪
2:36:03aidsjorb Q: Has the intentionally deliberate pace for Handmade Hero helped you in your day job at all (as say a reminder / refresher), or is it always just tedious to program in this fashion after all these years?
🗪
2:38:06bradsheridanmn Q: Hey, just saw your talk on "Papers I Love"6 or whatever they call it. Super impressed, has brought me back to Handmade Hero
🗪
2:38:06bradsheridanmn Q: Hey, just saw your talk on "Papers I Love"6 or whatever they call it. Super impressed, has brought me back to Handmade Hero
🗪
2:38:06bradsheridanmn Q: Hey, just saw your talk on "Papers I Love"6 or whatever they call it. Super impressed, has brought me back to Handmade Hero
🗪
2:38:48ivereadthesequel Q: If Jon can't come tomorrow, can Molly at least be here to celebrate episode 512 with a party hat? And cake (not for Molly)?
🗪
2:38:48ivereadthesequel Q: If Jon can't come tomorrow, can Molly at least be here to celebrate episode 512 with a party hat? And cake (not for Molly)?
🗪
2:38:48ivereadthesequel Q: If Jon can't come tomorrow, can Molly at least be here to celebrate episode 512 with a party hat? And cake (not for Molly)?
🗪
2:39:16We're done with questions
🗩
2:39:16We're done with questions
🗩
2:39:16We're done with questions
🗩