diff --git a/custom_assets/jak1/levels/test-zone/testzone.gd b/custom_assets/jak1/levels/test-zone/testzone.gd index 8ce4b2a400..6b9636af1e 100644 --- a/custom_assets/jak1/levels/test-zone/testzone.gd +++ b/custom_assets/jak1/levels/test-zone/testzone.gd @@ -10,5 +10,6 @@ "plat-eco-ag.go" "test-actor-ag.go" "babak-ag.go" + "tpage-401.go" ;; for sky (make sure that your level's mood is updating the sky texture) "test-zone.go" )) \ No newline at end of file diff --git a/goalc/build_level/jak1/LevelFile.cpp b/goalc/build_level/jak1/LevelFile.cpp index 7393ca3f71..9c861e6d9c 100644 --- a/goalc/build_level/jak1/LevelFile.cpp +++ b/goalc/build_level/jak1/LevelFile.cpp @@ -71,6 +71,34 @@ size_t generate_u32_array(const std::vector& array, DataObjectGenerator& ge return result; } +size_t generate_adgif_shader_array(DataObjectGenerator& gen) { + gen.align_to_basic(); + gen.add_type_tag("adgif-shader-array"); + static std::vector words = { + 0x9, 0x9, 0x0, 0x0, 0x0, 0x306, 0x0, 0x120, 0x0, 0x19100414, 0x0, 0x0, + 0x0, 0x34, 0x0, 0x0, 0x0, 0x8, 0x0, 0x44, 0x0, 0x42, 0x0, 0x0, + 0x0, 0x306, 0x0, 0x120, 0x0, 0x19100514, 0x0, 0x0, 0x0, 0x34, 0x0, 0x0, + 0x0, 0x8, 0x0, 0x44, 0x0, 0x42, 0x0, 0x0, 0x0, 0x306, 0x0, 0x120, + 0x0, 0x19100614, 0x0, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x8, 0x0, 0x44, + 0x0, 0x42, 0x0, 0x0, 0x0, 0x306, 0x0, 0x120, 0x0, 0x19100714, 0x0, 0x0, + 0x0, 0x34, 0x0, 0x0, 0x0, 0x8, 0x0, 0x44, 0x0, 0x42, 0x0, 0x0, + 0x0, 0x306, 0x0, 0x120, 0x0, 0x19100814, 0x0, 0x0, 0x0, 0x34, 0x0, 0x0, + 0x0, 0x8, 0x0, 0x44, 0x0, 0x42, 0x0, 0x0, 0x0, 0x306, 0x0, 0x120, + 0x0, 0x19100914, 0x0, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x8, 0x0, 0x44, + 0x0, 0x42, 0x0, 0x0, 0x0, 0x306, 0x0, 0x120, 0x0, 0x19100a14, 0x0, 0x0, + 0x0, 0x34, 0x0, 0x0, 0x0, 0x8, 0x0, 0x44, 0x0, 0x42, 0x0, 0x0, + 0x0, 0x306, 0x0, 0x120, 0x0, 0x19100b14, 0x0, 0x0, 0x0, 0x34, 0x0, 0x0, + 0x0, 0x8, 0x0, 0x44, 0x0, 0x42, 0x0, 0x0, 0x0, 0x306, 0x0, 0x120, + 0x0, 0x19100314, 0x0, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x8, 0x0, 0x44, + 0x0, 0x42, 0x0, + }; + size_t result = gen.current_offset_bytes(); + for (auto& word : words) { + gen.add_word(word); + } + return result; +} + std::vector LevelFile::save_object_file() const { DataObjectGenerator gen; gen.add_type_tag("bsp-header"); @@ -117,6 +145,7 @@ std::vector LevelFile::save_object_file() const { //(unk-data-4 float :offset-assert 160) //(unk-data-5 float :offset-assert 164) //(adgifs adgif-shader-array :offset-assert 168) + gen.link_word_to_byte(168 / 4, generate_adgif_shader_array(gen)); //(actor-birth-order (pointer uint32) :offset-assert 172) gen.link_word_to_byte(172 / 4, generate_u32_array(actor_birth_order, gen)); //(split-box-indices (pointer uint16) :offset-assert 176) diff --git a/out/build/Release/bin/decompiler.exe b/out/build/Release/bin/decompiler.exe index 9b00dd0596..b36baaa6b5 100644 Binary files a/out/build/Release/bin/decompiler.exe and b/out/build/Release/bin/decompiler.exe differ diff --git a/out/build/Release/bin/extractor.exe b/out/build/Release/bin/extractor.exe index 1002ff84e6..3808519d37 100644 Binary files a/out/build/Release/bin/extractor.exe and b/out/build/Release/bin/extractor.exe differ diff --git a/out/build/Release/bin/gk.exe b/out/build/Release/bin/gk.exe index db8b870618..1495d0c476 100644 Binary files a/out/build/Release/bin/gk.exe and b/out/build/Release/bin/gk.exe differ diff --git a/out/build/Release/bin/goalc.exe b/out/build/Release/bin/goalc.exe index e479469950..62983e88e2 100644 Binary files a/out/build/Release/bin/goalc.exe and b/out/build/Release/bin/goalc.exe differ