diff --git a/cmuratori/hero/code/code620.hmml b/cmuratori/hero/code/code620.hmml new file mode 100644 index 0000000..c739eb7 --- /dev/null +++ b/cmuratori/hero/code/code620.hmml @@ -0,0 +1,55 @@ +[video output=day620 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asset Tag Usage Code" vod_platform=youtube id=cucU4MuIVQI annotator=Miblo] +[0:00][Recap and set the stage for the day working on asset tag matching][:"asset system" :speech] +[0:23][Plug the Meow the Infinite sale[ref + site="Meow the Infinite" + url=https://meowtheinfinite.com/]][:research] +[1:33][@i___d___k][Q: Is international shipping included?] +[2:56][Set up to continue work on our new TagHash and MatchVector asset matching scheme][:"asset system" :research] +[7:12][Compress out the old asset matching code for the TagHash and MatchVector matching][:"asset system" :"data structure"] +[11:12][Determine to clarify GetAssetFrom()][:"asset system" :research] +[12:48][Describe Hash32(), in particular _mm_aesdec_si128()[ref + site=Intel + page="Intel Intrinsics Guide" + url=https://software.intel.com/sites/landingpage/IntrinsicsGuide/]][:"asset system" :hashing :research] +[15:36][Introduce hashable_value for Hash32() to operate on and asset_hash_entry to contain, creating handmade_hash.cpp and .h][:"asset system" :"data structure" :hashing] +[26:59][Consider simplifying game_assets and storing the asset :"data structure" directly in the hash][:"asset system" :hashing :research] +[31:09][Revert the hashable_value introduction and handmade_hash.cpp and .h creation, and instead augment asset_hash_entry with an MatchVector][:"asset system" :"data structure" :hashing] +[34:59][Invoke fleury_toggle_power_mode and fleury_toggle_battery_saver][:admin] +[35:09][Implement our new TagHash and MatchVector matching scheme in GetAssetFrom(), augmenting asset with NextInTagHash, TagHash, MatchVector and MatchAnyFlags][:"asset system" :"data structure"] +[48:25][Fix compile errors, replacing asset_hash_entry with u32 in game_assets][:"asset system" :"data structure"] +[51:12][Make InitParticleCache() and ExecuteBrainHero() call GetTagHash(), and default to zero the MatchVector in all the GetBestMatch*() function][:"asset system"] +[55:40][Begin to make UpdateAndRenderEntities() prepare the MatchVector to pass to GetBestMatchBitmapFrom(), introducing an asset_match_vector_element enum][:"asset system"] +[1:05:28][@tarriest_python][Is the indentation broken because virtual whitespace is disabled? The fact that you can edit the leading whitespace on a line tells me you have virtual whitespace turned off. Is this intentional?] +[1:06:58][Make UpdateAndRenderEntities() map the MatchVector's FacingDirection octant to the nearest quadrant][:"asset system"] +[1:14:51][Consider our support for variant picking in FillUnpackedEntity()][:"asset system" :research] +[1:19:50][Fix UpdateAndRenderEntities() only keep the bottom two bits of the FacingDirIndex][:"asset system"] +[1:20:14][Update FillUnpackedEntity() to use GetTagHash()][:"asset system"] +[1:23:31][Prepare FillUnpackedEntity() to call GetVariantCount() for random picking][:"asset system"] +[1:25:09][Introduce a sizing tag, Tag_Large][:"asset system"] +[1:30:30][Introduce a stubbed out GetVariantCount()][:"asset system"] +[1:32:19][Update AddPiece() to take an asset_tag_hash][:"asset system"] +[1:33:18][Introduce ShotIndex* and LayerIndex* for use in intro_cutscene.hht][:admin :"asset system" :programming] +[1:38:37][A few thoughts on Ron Gilbert as a brilliant :programming architect][:speech] +[1:49:48][Update RenderLayeredScene() to use GetTagHash()][:"asset system"] +[1:53:17][Consider (but decide against) supporting order-independent tag matching][:"asset system" :speech] +[1:55:10][Continue to update RenderLayeredScene() to use the new matching scheme][:"asset system"] +[1:57:45][Update InitializeUI() to use GetTagHash(), removing asset_font_type and FontType(10) for a newly-introduced Tag_DebugFont tag][:"asset system"] +[2:02:45][Update all definitions of AddPiece() to take asset_tag_hash and their call sites to use GetTagHash(), introducing a version of GetTagHash() that takes an asset_tag_hash for merging in][:"asset system"] +[2:09:34][Seek to bind "\~" to Shift-Tick in ~4coder][:admin] +[2:11:33][@ryanfleury][write_text_input, @handmade_hero] +[2:11:40][Bind write_text_input to Shift-Tick in ~4coder][:admin] +[2:11:59][Try unsuccessfully to type a "\~"][:admin] +[2:12:36][@ryanfleury][I am not sure why it's not just working] +[2:12:43][Leave a note in GetTagHash() to INSERT TILDE HERE] +[2:12:53][@xxthebigfoxx][Ctrl-c Ctrl-v one] +[2:13:17][Obtain a "\~" from handmade_intrinsics.h] +[2:13:53][Determine to update everyone else to use GetTagHash() next time][:"asset system" :research] +[2:14:49][Double-check the ~4coder bindings regarding the "\~"][:admin] +[2:15:51][Thank you, with a plug of the redesigned site,[ref + site="Handmade Hero" + url=https://handmadehero.org/] Meow the Infinite[ref + site="Meow the Infinite" + url=https://meowtheinfinite.com/] and Star Code Galaxy[ref + site="Star Code Galaxy" + url=https://starcodegalaxy.com/]][:speech] +[/video]