[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]