Skip to content

Commit

Permalink
Add NO1 Outer Wall overlay (#1963)
Browse files Browse the repository at this point in the history
This should handle creating the new overlay. The files are already split
out for easy deduping.

With Marble Gallery nearly done, seems to make sense to bring this one
in next so it's ready to go ASAP.

Some other small tweaks for things I ran into while setting this up, but
nothing huge.
  • Loading branch information
bismurphy authored Dec 4, 2024
1 parent 54fcdd5 commit f729ea9
Show file tree
Hide file tree
Showing 32 changed files with 800 additions and 16 deletions.
17 changes: 13 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ extract: extract_$(VERSION)

build: ##@ build game files
build: build_$(VERSION)
build_us: main dra weapon ric cen dre mad no0 no3 np3 nz0 sel st0 wrp rwrp mar rbo3 tt_000 tt_001 tt_002 tt_003 tt_004
build_us: main dra weapon ric cen dre mad no0 no1 no3 np3 nz0 sel st0 wrp rwrp mar rbo3 tt_000 tt_001 tt_002 tt_003 tt_004
build_hd: dra cen wrp tt_000
clean: ##@ clean extracted files, assets, and build artifacts
git clean -fdx assets/
Expand Down Expand Up @@ -213,6 +213,7 @@ format-symbols:
./tools/symbols.py remove-orphans config/splat.hd.stcen.yaml
./tools/symbols.py remove-orphans config/splat.us.stdre.yaml
./tools/symbols.py remove-orphans config/splat.us.stno0.yaml
./tools/symbols.py remove-orphans config/splat.us.stno1.yaml
./tools/symbols.py remove-orphans config/splat.us.stno3.yaml
./tools/symbols.py remove-orphans config/splat.us.stnp3.yaml
./tools/symbols.py remove-orphans config/splat.us.stnz0.yaml
Expand Down Expand Up @@ -307,6 +308,12 @@ $(BUILD_DIR)/NO0.BIN: $(BUILD_DIR)/stno0.elf
$(BUILD_DIR)/F_NO0.BIN:
$(GFXSTAGE) e assets/st/no0 $@

no1: $(BUILD_DIR)/NO1.BIN $(BUILD_DIR)/F_NO1.BIN
$(BUILD_DIR)/NO1.BIN: $(BUILD_DIR)/stno1.elf
$(OBJCOPY) -O binary $< $@
$(BUILD_DIR)/F_NO1.BIN:
$(GFXSTAGE) e assets/st/no1 $@

no3: $(BUILD_DIR)/NO3.BIN $(BUILD_DIR)/F_NO3.BIN
$(BUILD_DIR)/NO3.BIN: $(BUILD_DIR)/stno3.elf
$(OBJCOPY) -O binary $< $@
Expand Down Expand Up @@ -506,8 +513,10 @@ disk_prepare: build $(SOTNDISK)
cp $(BUILD_DIR)/F_DRE.BIN $(DISK_DIR)/ST/DRE/F_DRE.BIN
cp $(BUILD_DIR)/MAD.BIN $(DISK_DIR)/ST/MAD/MAD.BIN
cp $(BUILD_DIR)/F_MAD.BIN $(DISK_DIR)/ST/MAD/F_MAD.BIN
cp $(BUILD_DIR)/NO3.BIN $(DISK_DIR)/ST/NO3/NO0.BIN
cp $(BUILD_DIR)/F_NO3.BIN $(DISK_DIR)/ST/NO3/F_NO0.BIN
cp $(BUILD_DIR)/NO0.BIN $(DISK_DIR)/ST/NO3/NO0.BIN
cp $(BUILD_DIR)/F_NO0.BIN $(DISK_DIR)/ST/NO3/F_NO0.BIN
cp $(BUILD_DIR)/NO1.BIN $(DISK_DIR)/ST/NO3/NO1.BIN
cp $(BUILD_DIR)/F_NO1.BIN $(DISK_DIR)/ST/NO3/F_NO1.BIN
cp $(BUILD_DIR)/NO3.BIN $(DISK_DIR)/ST/NO3/NO3.BIN
cp $(BUILD_DIR)/F_NO3.BIN $(DISK_DIR)/ST/NO3/F_NO3.BIN
cp $(BUILD_DIR)/NP3.BIN $(DISK_DIR)/ST/NP3/NP3.BIN
Expand Down Expand Up @@ -647,7 +656,7 @@ include tools/tools.mk

.PHONY: all, clean, patch, check, build, expected
.PHONY: format, ff, format-src, format-tools, format-symbols
.PHONY: main, dra, ric, cen, dre, mad, no3, np3, nz0, st0, wrp, rwrp, bomar, borbo3, tt_000, tt_001, tt_002, tt_003, tt_004
.PHONY: main, dra, ric, cen, dre, mad, no0, no1, no3, np3, nz0, st0, wrp, rwrp, bomar, borbo3, tt_000, tt_001, tt_002, tt_003, tt_004
.PHONY: %_dirs
.PHONY: extract, extract_%
.PHONY: update-dependencies python-dendencies
Expand Down
2 changes: 1 addition & 1 deletion Makefile.psx.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ PSXCC_FLAGS := -quiet -mcpu=3000 -fgnu-linker -mgas -gcoff

# configuration
PSX_OVLS := dra ric weapon
PSX_KSTAGES := cen dre mad no0 no3 np3 nz0 sel st0 wrp
PSX_KSTAGES := cen dre mad no0 no1 no3 np3 nz0 sel st0 wrp
PSX_RSTAGES := rwrp
PSX_BOSTAGES := mar
PSX_RBOSTAGES := rbo3
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ This repo does not include any assets or assembly code necessary for compiling t
| ST/DRE/DRE.BIN | ![code coverage DRE.BIN](https://img.shields.io/endpoint?label=DRE%20code&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Fcode%2F%3Fmode%3Dshield%26measure%3Dstdre) | ![decompiled functions](https://img.shields.io/endpoint?label=DRE%20funcs&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Ffunctions%2F%3Fmode%3Dshield%26measure%3Dstdre) | Nightmare
| ST/MAD/MAD.BIN | ![code coverage MAD.BIN](https://img.shields.io/endpoint?label=MAD%20code&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Fcode%2F%3Fmode%3Dshield%26measure%3Dstmad) | ![decompiled functions](https://img.shields.io/endpoint?label=MAD%20funcs&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Ffunctions%2F%3Fmode%3Dshield%26measure%3Dstmad) | Debug Room
| ST/NO0/NO0.BIN | ![code coverage NO0.BIN](https://img.shields.io/endpoint?label=NO0%20code&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Fcode%2F%3Fmode%3Dshield%26measure%3Dstno0) | ![decompiled functions](https://img.shields.io/endpoint?label=NO0%20funcs&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Ffunctions%2F%3Fmode%3Dshield%26measure%3Dstno0) | Marble Gallery
| ST/NO1/NO1.BIN | ![code coverage NO1.BIN](https://img.shields.io/endpoint?label=NO1%20code&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Fcode%2F%3Fmode%3Dshield%26measure%3Dstno1) | ![decompiled functions](https://img.shields.io/endpoint?label=NO1%20funcs&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Ffunctions%2F%3Fmode%3Dshield%26measure%3Dstno1) | Outer Wall
| ST/NO3/NO3.BIN | ![code coverage NO3.BIN](https://img.shields.io/endpoint?label=NO3%20code&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Fcode%2F%3Fmode%3Dshield%26measure%3Dstno3) | ![decompiled functions](https://img.shields.io/endpoint?label=NO3%20funcs&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Ffunctions%2F%3Fmode%3Dshield%26measure%3Dstno3) | Entrance (first visit)
| ST/NP3/NP3.BIN | ![code coverage NP3.BIN](https://img.shields.io/endpoint?label=NP3%20code&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Fcode%2F%3Fmode%3Dshield%26measure%3Dstnp3) | ![decompiled functions](https://img.shields.io/endpoint?label=NP3%20funcs&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Ffunctions%2F%3Fmode%3Dshield%26measure%3Dstnp3) | Entrance
| ST/NZ0/NZ0.BIN | ![code coverage NZ0.BIN](https://img.shields.io/endpoint?label=NZ0%20code&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Fcode%2F%3Fmode%3Dshield%26measure%3Dstnz0) | ![decompiled functions](https://img.shields.io/endpoint?label=NZ0%20funcs&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Fsotn%2Fus%2Ffunctions%2F%3Fmode%3Dshield%26measure%3Dstnz0) | Alchemy Laboratory
Expand Down
2 changes: 2 additions & 0 deletions config/check.us.sha
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ adb3303e1ea707c63dfa978511a88cab4f61970a build/us/MAD.BIN
7674de58cb7b267200fd9d07638fc4086f16466a build/us/F_MAD.BIN
d07f054f9dc8ef639257aca01deb1f24a2811924 build/us/NO0.BIN
898bc0fc322f960e20c909073606baa85ae8175e build/us/F_NO0.BIN
41ccd886308d5527684ae2c41164ecf6c554721f build/us/NO1.BIN
5ba383affbaef50c151c79307ad0a082d0357324 build/us/F_NO1.BIN
5d06216b895ab5ff892c88b0d9eff67ff16e2bd1 build/us/NO3.BIN
7ca2a473e87fbb7e5c18e72ea0c136c0e7b364f5 build/us/F_NO3.BIN
7c78a2bec6a26acfb62456e7f517915fe0c0e3f5 build/us/NP3.BIN
Expand Down
70 changes: 70 additions & 0 deletions config/splat.us.stno1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
options:
platform: psx
basename: stno1
base_path: ..
build_path: build/us
target_path: disks/us/ST/NO1/NO1.BIN
asm_path: asm/us/st/no1
asset_path: assets/st/no1
src_path: src/st/no1
ld_script_path: build/us/stno1.ld
compiler: GCC
symbol_addrs_path:
- config/symbols.us.txt
- config/symbols.us.stno1.txt
undefined_funcs_auto_path: config/undefined_funcs_auto.us.stno1.txt
undefined_syms_auto_path: config/undefined_syms_auto.us.stno1.txt
find_file_boundaries: true
use_legacy_include_asm: false
migrate_rodata_to_functions: true
asm_jtbl_label_macro: jlabel
symbol_name_format: us_$VRAM
section_order:
- .data
- .rodata
- .text
- .bss
- .sbss
ld_bss_is_noload: false
disasm_unknown: true
include_macro_inc: false
disassemble_all: true
sha1: 41ccd886308d5527684ae2c41164ecf6c554721f
segments:
- name: stno1
type: code
start: 0
vram: 0x80180000
align: 4
subalign: 4
subsegments:
- [0x0, data]
- [0x34670, .rodata, first_c_file]
- [0x34670, .rodata, e_red_door]
- [0x348A8, .rodata, st_common]
- [0x34930, .rodata, blit_char]
- [0x34940, .rodata, e_misc]
- [0x3497C, .rodata, e_axe_knight]
- [0x34A00, .rodata, e_stage_name]
- [0x34A34, .rodata, e_skeleton]
- [0x34A50, .rodata, unk_4DDD8]
- [0x34CBC, .rodata, prim_helpers]
- [0x34CC4, c, first_c_file]
- [0x34E6C, c, e_red_door]
- [0x419F0, c, st_update]
- [0x41E24, c, collision]
- [0x435E0, c, create_entity]
- [0x44158, c, st_common]
- [0x46B74, c, blit_char]
- [0x46E24, c, e_misc]
- [0x4A314, c, e_axe_knight]
- [0x4BA30, c, unk_4BA30]
- [0x4BB24, c, e_stage_name]
- [0x4C978, c, e_particles]
- [0x4D1BC, c, e_room_fg]
- [0x4D2A8, c, popup]
- [0x4D5D8, c, e_skeleton]
- [0x4DDD8, c, unk_4DDD8]
- [0x55AF8, c, prim_helpers]
- [0x56328, sbss]
- [0x57064]
2 changes: 1 addition & 1 deletion config/splat.us.stst0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ segments:
- [0x124, .data, header] # layers
- [0x1A4, .data, header] # graphics banks
- [0x314, .data, e_laydef] # layout entries header
- [0x4BC, data]
- [0x4BC, .data, e_init]
- [0x580, data]
- [0x770, data]
- [0x828, .data, cutscene] # "Richter, Dracula"
Expand Down
4 changes: 2 additions & 2 deletions config/symbols.us.stno0.txt
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ EntityGhostEnemySpawner = 0x801D606C;
EntitySlinger = 0x801D7670;
EntitySlingerPieces = 0x801D7B40;
EntitySlingerRib = 0x801D7C20;
func_801C3F9C = 0x801DAEBC;
AxeKnightUnkFunc1 = 0x801DAEBC;
func_801C4198 = 0x801DB0B8;
func_801C4550 = 0x801DB470;
EntityAxeKnight = 0x801DB4DC;
Expand All @@ -212,7 +212,7 @@ SkeletonAttackCheck = 0x801DCAB0;
EntitySkeleton = 0x801DCB48;
EntitySkeletonPieces = 0x801DD018;
EntitySkeletonThrownBone = 0x801DD0F8;
func_801C6678 = 0x801DD1FC;
UnusedSkeletonEntity = 0x801DD1FC;
EntityMagicallySealedDoor = 0x801DD328;
UnkPrimHelper = 0x801DE09C;
UpdateAnimation = 0x801DE484;
Expand Down
115 changes: 115 additions & 0 deletions config/symbols.us.stno1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
D_80180C88 = 0x80180A58;
D_80180C94 = 0x80180A64;
D_80180CA0 = 0x80180A70;
D_80182424 = 0x80182774;
D_80182488 = 0x801827D8;
D_801824B8 = 0x80182808;
D_801824C0 = 0x80182810;
EntityIsNearPlayer = 0x801B4E6C;
NO1_EntityRedDoor = 0x801B4EE4;
EntityUnkId12 = 0x801B5C64;
Random = 0x801C19F0;
Update = 0x801C1A20;
UpdateStageEntities = 0x801C1D1C;
HitDetection = 0x801C1E24;
EntityDamageDisplay = 0x801C2F3C;
CreateEntityFromLayout = 0x801C35E0;
CreateEntityWhenInHorizontalRange = 0x801C36A4;
FindFirstEntityAbove = 0x801C38D4;
FindFirstEntityBelow = 0x801C3920;
CreateEntitiesAbove = 0x801C3978;
CreateEntitiesBelow = 0x801C3A74;
InitRoomEntities = 0x801C3E3C;
UpdateRoomPosition = 0x801C3FB4;
CreateEntityFromCurrentEntity = 0x801C4068;
CreateEntityFromEntity = 0x801C40DC;
DestroyEntity = 0x801C4158;
DestroyEntitiesFromIndex = 0x801C41C4;
PreventEntityFromRespawning = 0x801C4240;
AnimateEntity = 0x801C4288;
UnkAnimFunc = 0x801C4340;
GetDistanceToPlayerX = 0x801C4458;
GetDistanceToPlayerY = 0x801C4494;
GetSideToPlayer = 0x801C44C8;
MoveEntity = 0x801C450C;
FallEntity = 0x801C453C;
UnkCollisionFunc3 = 0x801C4568;
UnkCollisionFunc2 = 0x801C47E0;
AllocEntity = 0x801C49C8;
GetSineScaled = 0x801C4A28;
GetSine = 0x801C4A54;
SetEntityVelocityFromAngle = 0x801C4A70;
Ratan2Shifted = 0x801C4ADC;
GetAngleBetweenEntitiesShifted = 0x801C4B14;
GetAnglePointToEntity = 0x801C4B5C;
AdjustValueWithinThreshold = 0x801C4BA4;
UnkEntityFunc0 = 0x801C4BFC;
Ratan2 = 0x801C4C88;
GetAngleBetweenEntities = 0x801C4CB8;
GetNormalizedAngle = 0x801C4D38;
SetStep = 0x801C4D98;
SetSubStep = 0x801C4DB8;
EntityExplosionSpawn = 0x801C4DD4;
InitializeEntity = 0x801C4E68;
EntityDummy = 0x801C4F64;
UnkCollisionFunc = 0x801C4F8C;
CheckFieldCollision = 0x801C50B4;
GetPlayerCollisionWith = 0x801C520C;
ReplaceBreakableWithItemDrop = 0x801C5550;
PrizeDropFall = 0x801C5608;
PrizeDropFall2 = 0x801C568C;
CollectHeart = 0x801C57E8;
CollectGold = 0x801C5868;
CollectSubweapon = 0x801C5944;
CollectHeartVessel = 0x801C5A5C;
CollectLifeVessel = 0x801C5B00;
DestroyCurrentEntity = 0x801C5B50;
EntityPrizeDrop = 0x801C5B78;
EntityExplosion = 0x801C63EC;
BlinkItem = 0x801C64E8;
EntityEquipItemDrop = 0x801C658C;
BlitChar = 0x801C6B74;
EntityRelicOrb = 0x801C6E24;
EntityHeartDrop = 0x801C78F4;
EntityMessageBox = 0x801C7A1C;
CheckColliderOffsets = 0x801C7F78;
EntityUnkId13 = 0x801C8068;
EntityExplosionVariantsSpawner = 0x801C8178;
EntityGreyPuffSpawner = 0x801C82A8;
EntityExplosionVariants = 0x801C8390;
EntityGreyPuff = 0x801C8480;
EntityOlroxDrool = 0x801C8574;
UnkCollisionFunc5 = 0x801C87A4;
UnkCollisionFunc4 = 0x801C88A0;
EntityIntenseExplosion = 0x801C8E20;
InitializeUnkEntity = 0x801C8F20;
MakeEntityFromId = 0x801C8FEC;
MakeExplosions = 0x801C90B4;
EntityBigRedFireball = 0x801C916C;
UnkRecursivePrimFunc1 = 0x801C9344;
UnkRecursivePrimFunc2 = 0x801C9924;
ClutLerp = 0x801CA024;
PlaySfxPositional = 0x801CA21C;
AxeKnightUnkFunc1 = 0x801CA314;
EntityAxeKnightRotateAxe = 0x801CB848;
EntityAxeKnightThrowingAxe = 0x801CB8A0;
StageNamePopupHelper = 0x801CBB24;
EntityStageNamePopup = 0x801CBCF4;
EntitySoulStealOrb = 0x801CC978;
EntityEnemyBlood = 0x801CCD0C;
EntityRoomForeground = 0x801CD1BC;
BottomCornerText = 0x801CD2A8;
SkeletonAttackCheck = 0x801CD5D8;
EntitySkeleton = 0x801CD670;
EntitySkeletonPieces = 0x801CDB40;
EntitySkeletonThrownBone = 0x801CDC20;
UnusedSkeletonEntity = 0x801CDD24;
UnkPrimHelper = 0x801D5AF8;
UpdateAnimation = 0x801D5EE0;
FindFirstUnkPrim = 0x801D6030;
FindFirstUnkPrim2 = 0x801D6060;
PrimToggleVisibility = 0x801D60DC;
PrimResetNext = 0x801D6164;
UnkPolyFunc2 = 0x801D6244;
UnkPolyFunc0 = 0x801D6298;
PrimDecreaseBrightness = 0x801D62C4;
2 changes: 1 addition & 1 deletion src/st/e_skeleton.h
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ void EntitySkeletonThrownBone(Entity* self) { // Bone Projectile from Skeleton

// Unclear if this has a way to run. Not called, and not in
// the main entity list.
void func_801C6678(Entity* self) {
void UnusedSkeletonEntity(Entity* self) {
if (self->step == 0) {
InitializeEntity(g_EInitSkeleton);
self->rotX = 0x120;
Expand Down
4 changes: 2 additions & 2 deletions src/st/entity_axe_knight.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ extern u16 g_EInitAxeKnight[];

// Weirdly, this function ONLY acts on prim->next, it does not act on prim.
// However, it does call functions on prim.
void func_801C3F9C(AxePrim* prim) {
static void AxeKnightUnkFunc1(AxePrim* prim) {
Collider collider;
Entity* newEnt;
s16 yVar;
Expand Down Expand Up @@ -178,7 +178,7 @@ s32 func_801C4198(Entity* axeKnight) {
flag = 0;
for (prim = axeKnight->ext.axeknight.prim; prim != NULL;) {
if (prim->p3 & 8) {
func_801C3F9C(prim);
AxeKnightUnkFunc1(prim);
flag = 1;
}
prim = prim->next;
Expand Down
6 changes: 6 additions & 0 deletions src/st/no1/blit_char.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "common.h"

INCLUDE_ASM("st/no1/nonmatchings/blit_char", BlitChar);

INCLUDE_RODATA("st/no1/nonmatchings/blit_char", D_us_801B4930);
6 changes: 6 additions & 0 deletions src/st/no1/collision.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "common.h"

INCLUDE_ASM("st/no1/nonmatchings/collision", HitDetection);

INCLUDE_ASM("st/no1/nonmatchings/collision", EntityDamageDisplay);
33 changes: 33 additions & 0 deletions src/st/no1/create_entity.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "common.h"

INCLUDE_ASM("st/no1/nonmatchings/create_entity", CreateEntityFromLayout);

INCLUDE_ASM(
"st/no1/nonmatchings/create_entity", CreateEntityWhenInHorizontalRange);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", func_us_801C37BC);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", FindFirstEntityAbove);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", FindFirstEntityBelow);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", CreateEntitiesAbove);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", CreateEntitiesBelow);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", func_us_801C3B88);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", func_us_801C3BD4);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", func_us_801C3C2C);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", func_us_801C3D28);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", InitRoomEntities);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", UpdateRoomPosition);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", CreateEntityFromCurrentEntity);

INCLUDE_ASM("st/no1/nonmatchings/create_entity", CreateEntityFromEntity);
16 changes: 16 additions & 0 deletions src/st/no1/e_axe_knight.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "common.h"

INCLUDE_ASM("st/no1/nonmatchings/e_axe_knight", AxeKnightUnkFunc1);

INCLUDE_ASM("st/no1/nonmatchings/e_axe_knight", func_us_801CA51C);

INCLUDE_ASM("st/no1/nonmatchings/e_axe_knight", func_us_801CAD20);

INCLUDE_RODATA("st/no1/nonmatchings/e_axe_knight", D_us_801B49D0);

INCLUDE_ASM("st/no1/nonmatchings/e_axe_knight", func_us_801CAE04);

INCLUDE_ASM("st/no1/nonmatchings/e_axe_knight", EntityAxeKnightRotateAxe);

INCLUDE_ASM("st/no1/nonmatchings/e_axe_knight", EntityAxeKnightThrowingAxe);
Loading

0 comments on commit f729ea9

Please sign in to comment.