mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-10-06 18:13:30 +00:00
Add CEN Overlay to HD (#1705)
Adds the CEN overaly to the HD version of the game. Resolves #1638. This uses most, but not all, matching functions. Some were excluded because due to symbols mapping that has not bee completed yet. Not all data has been imported, and mapping symbols, and data should make many of the remaining functions easy to import.
This commit is contained in:
parent
b9d7e3fd57
commit
11631e1475
3
Makefile
3
Makefile
@ -143,7 +143,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
|
||||
build_hd: dra $(BUILD_DIR)/WRP.BIN tt_000
|
||||
build_hd: dra cen wrp tt_000
|
||||
clean: ##@ clean extracted files, assets, and build artifacts
|
||||
git clean -fdx assets/
|
||||
git clean -fdx asm/$(VERSION)/
|
||||
@ -208,6 +208,7 @@ format-symbols:
|
||||
./tools/symbols.py remove-orphans config/splat.us.ric.yaml
|
||||
./tools/symbols.py remove-orphans config/splat.hd.ric.yaml
|
||||
./tools/symbols.py remove-orphans config/splat.us.stcen.yaml
|
||||
./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.stno3.yaml
|
||||
|
@ -11,7 +11,7 @@ PSX_RBOSTAGES := rbo3
|
||||
PSX_ALLSTAGES := $(addprefix st,$(PSX_KSTAGES)) $(addprefix st,$(PSX_RSTAGES)) $(addprefix bo,$(PSX_BOSTAGES)) $(addprefix bo,$(PSX_RBOSTAGES))
|
||||
PSX_SERVANTS := tt_000 tt_001
|
||||
PSX_US_TARGETS := main $(PSX_OVLS) $(PSX_ALLSTAGES) $(PSX_SERVANTS)
|
||||
PSX_HD_TARGETS := dra ric tt_000 stwrp
|
||||
PSX_HD_TARGETS := dra ric tt_000 stcen stwrp
|
||||
|
||||
# immovable
|
||||
PSX_BASE_SYMS := $(CONFIG_DIR)/symbols.$(VERSION).txt
|
||||
@ -98,6 +98,7 @@ extract_assets: $(SOTNASSETS)
|
||||
$(SOTNASSETS) config extract config/assets.us.weapon.yaml
|
||||
extract_assets_hd: $(SOTNASSETS)
|
||||
cd tools/sotn-assets; $(GO) install
|
||||
$(SOTNASSETS) stage extract -stage_ovl disks/pspeu/PSP_GAME/USRDIR/res/ps/hdbin/cen.bin -o assets/st/cen
|
||||
$(SOTNASSETS) stage extract -stage_ovl disks/pspeu/PSP_GAME/USRDIR/res/ps/hdbin/wrp.bin -o assets/st/wrp
|
||||
build_assets: $(SOTNASSETS)
|
||||
$(SOTNASSETS) stage build_all -i assets/st/cen -o src/st/cen/
|
||||
@ -111,6 +112,7 @@ build_assets: $(SOTNASSETS)
|
||||
$(SOTNASSETS) stage build_all -i assets/boss/mar -o src/boss/mar/
|
||||
$(SOTNASSETS) config build config/assets.$(VERSION).weapon.yaml
|
||||
build_assets_hd: $(SOTNASSETS)
|
||||
$(SOTNASSETS) stage build_all -i assets/st/cen -o src/st/cen/
|
||||
$(SOTNASSETS) stage build_all -i assets/st/wrp -o src/st/wrp/
|
||||
|
||||
$(BUILD_DIR)/assets/dra/memcard_%.png.o: assets/dra/memcard_%.png
|
||||
|
@ -1,4 +1,7 @@
|
||||
32698a322586d2fd4249467c99f5102faff44f30 build/hd/CEN.BIN
|
||||
f9f4833355d776b377db5adb62d16eae24975160 build/hd/F_CEN.BIN
|
||||
ea268a06a7eb7cd99928ba40e774577c4a1c504d build/hd/DRA.BIN
|
||||
1dcd6b881e2c0906854c3d53839dfb4ae0d359d6 build/hd/RIC.BIN
|
||||
3ae1425d694b0e4d65c6bb71d5a91f1769aec30c build/hd/WRP.BIN
|
||||
c1284f0c662f3c8fdb8a7c17cebf8e5cf1d96c1b build/hd/F_WRP.BIN
|
||||
2253aee1338fff85351887b4473fb0b02798222b build/hd/tt_000_raw.bin
|
||||
|
90
config/splat.hd.stcen.yaml
Normal file
90
config/splat.hd.stcen.yaml
Normal file
@ -0,0 +1,90 @@
|
||||
options:
|
||||
platform: psx
|
||||
basename: stcen
|
||||
base_path: ..
|
||||
build_path: build/hd
|
||||
target_path: disks/pspeu/PSP_GAME/USRDIR/res/ps/hdbin/cen.bin
|
||||
asm_path: asm/hd/st/cen
|
||||
asset_path: assets/st/cen
|
||||
src_path: src/st/cen
|
||||
ld_script_path: build/hd/stcen.ld
|
||||
compiler: GCC
|
||||
symbol_addrs_path:
|
||||
- config/symbols.hd.txt
|
||||
- config/symbols.hd.stcen.txt
|
||||
undefined_funcs_auto_path: config/undefined_funcs_auto.hd.stcen.txt
|
||||
undefined_syms_auto_path: config/undefined_syms_auto.hd.stcen.txt
|
||||
find_file_boundaries: true
|
||||
use_legacy_include_asm: false
|
||||
migrate_rodata_to_functions: true
|
||||
asm_jtbl_label_macro: jlabel
|
||||
symbol_name_format: hd_$VRAM
|
||||
section_order:
|
||||
- .data
|
||||
- .rodata
|
||||
- .text
|
||||
- .bss
|
||||
- .sbss
|
||||
ld_bss_is_noload: false
|
||||
disasm_unknown: true
|
||||
include_macro_inc: false
|
||||
sha1: 32698a322586d2fd4249467c99f5102faff44f30
|
||||
segments:
|
||||
- name: stcen
|
||||
type: code
|
||||
start: 0
|
||||
vram: 0x80180000
|
||||
align: 4
|
||||
subalign: 4
|
||||
subsegments:
|
||||
- [0x0, .data, header]
|
||||
- [0x1EC, .data, e_laydef]
|
||||
- [0x394, .data, e_init]
|
||||
- [0x4D4, .data, st_debug]
|
||||
- [0x554, .data, e_breakable]
|
||||
- [0x5D8, .data, cutscene]
|
||||
- [0x684, data, cutscene]
|
||||
- [0x6BC, .data, F890]
|
||||
- [0x7E8, .data, st_update]
|
||||
- [0x814, .data, collision]
|
||||
- [0xBD4, .data, e_red_door]
|
||||
- [0xBEC, .data, st_common]
|
||||
- [0xDEC, data, e_collect]
|
||||
- [0x1140, data, e_misc]
|
||||
- [0x11FC, data, e_particles]
|
||||
- [0x127C, .data, e_room_fg]
|
||||
- [0x1308, .data, rooms]
|
||||
- [0x1334, .data, e_layout]
|
||||
- [0x1424, data]
|
||||
- [0x6A0C, .data, tile_data]
|
||||
- [0xC62C, .data, sprites]
|
||||
- [0xD434, .rodata, cutscene]
|
||||
- [0xD4B8, .rodata, F890]
|
||||
- [0xD4E0, .rodata, e_red_door]
|
||||
- [0xD4F8, .rodata, e_collect]
|
||||
- [0xD580, .rodata, e_misc]
|
||||
- [0xD5CC, .rodata, e_stage_name]
|
||||
- [0xD5E0, .rodata, prim_helpers]
|
||||
- [0xD5E8, c, st_debug]
|
||||
- [0xD884, c, e_breakable]
|
||||
- [0xDB00, c, DB18]
|
||||
- [0xDEF4, c, cutscene]
|
||||
- [0xF818, c, F890]
|
||||
- [0x10DA0, c, st_update]
|
||||
- [0x111D4, c, collision]
|
||||
- [0x12990, c, create_entity]
|
||||
- [0x13508, c, e_red_door]
|
||||
- [0x141B8, c, st_common]
|
||||
- [0x15668, c, e_collect]
|
||||
# no blit_char
|
||||
- [0x16BD8, c, e_misc]
|
||||
- [0x1A140, c, e_stage_name]
|
||||
- [0x1A868, c, e_particles]
|
||||
- [0x1B0AC, c, e_room_fg]
|
||||
- [0x1B240, c, popup]
|
||||
- [0x1B570, c, prim_helpers]
|
||||
- [0x1BDA0, sbss, header]
|
||||
- [0x1BE00, sbss, create_entity]
|
||||
- [0x1CA10, sbss, cutscene]
|
||||
- [0x1CAC4, sbss, e_collect]
|
||||
- [0x1CB04]
|
@ -91,8 +91,8 @@ segments:
|
||||
- [0x135B4, c, e_red_door]
|
||||
- [0x14264, c, st_common]
|
||||
- [0x15714, c, e_collect]
|
||||
- [0x16C90, c, blit_char]
|
||||
- [0x16F30, c, e_misc]
|
||||
- [0x16C90, c, blit_char]
|
||||
- [0x16F30, c, e_misc]
|
||||
- [0x1A5F0, c, e_stage_name]
|
||||
- [0x1B274, c, e_particles]
|
||||
- [0x1BAB8, c, e_room_fg]
|
||||
|
106
config/symbols.hd.stcen.txt
Normal file
106
config/symbols.hd.stcen.txt
Normal file
@ -0,0 +1,106 @@
|
||||
g_pStObjLayoutHorizontal = 0x801801EC;
|
||||
g_pStObjLayoutVertical = 0x801802C0;
|
||||
g_InitializeData0 = 0x80180410;
|
||||
g_InitializeEntityData0 = 0x8018041C;
|
||||
g_eMariaInit = 0x80180428;
|
||||
g_EInitGeneric = 0x80180434;
|
||||
g_eElevatorInit = 0x8018047C;
|
||||
g_HeartDropArray = 0x801805D8;
|
||||
D_801805DC = 0x801805DC;
|
||||
D_801805E0 = 0x801805E0;
|
||||
D_801805E8 = 0x801805E8;
|
||||
D_801805EC = 0x801805EC;
|
||||
D_801805F4 = 0x801805F4;
|
||||
actor_names = 0x801806B4;
|
||||
D_8018068C = 0x801806BC;
|
||||
D_80180768 = 0x80180798;
|
||||
D_80180780 = 0x801807B0;
|
||||
g_eDamageDisplayClut = 0x80180BC4;
|
||||
D_80180C94 = 0x80180DEC;
|
||||
g_bigRedFireballAnim = 0x80181044;
|
||||
g_ESoulStealOrbAngles = 0x801811FC;
|
||||
g_ESoulStealOrbSprt = 0x8018120C;
|
||||
g_ESoulStealOrbAnim = 0x8018126C;
|
||||
D_80181658 = 0x80181678;
|
||||
D_8018199C = 0x801819BC;
|
||||
D_80183A40 = 0x80183A60;
|
||||
D_80184B70 = 0x80184B90;
|
||||
D_80185830 = 0x80185850;
|
||||
D_8018658C = 0x801865AC;
|
||||
D_8018678C = 0x801867AC;
|
||||
D_8018698C = 0x801869AC;
|
||||
D_801869AC = 0x801869CC;
|
||||
g_RelicOrbTexts = 0x8018D580;
|
||||
CutsceneUnk1 = 0x8018DEF4;
|
||||
SetCutsceneScript = 0x8018DF44;
|
||||
CutsceneUnk3 = 0x8018E0F8;
|
||||
CutsceneUnk4 = 0x8018E148;
|
||||
DrawCutsceneActorName = 0x8018E1F4;
|
||||
SetCutsceneEnd = 0x8018E3B8;
|
||||
CutsceneRun = 0x8018E3E4;
|
||||
CEN_EntityCutscene = 0x8018E6C0;
|
||||
func_8018F8EC = 0x8018F874;
|
||||
EntityMaria = 0x801902FC;
|
||||
func_801904B8 = 0x8019041C;
|
||||
EntityElevatorStationary = 0x801904A4;
|
||||
EntityUnkId1B = 0x801909CC;
|
||||
Random = 0x80190DA0;
|
||||
HitDetection = 0x801911D4;
|
||||
EntityDamageDisplay = 0x801922EC;
|
||||
CreateEntityWhenInVerticalRange = 0x80192A54;
|
||||
CreateEntityWhenInHorizontalRange = 0x80192B6C;
|
||||
FindFirstEntityToTheRight = 0x80192C84;
|
||||
FindFirstEntityToTheLeft = 0x80192CD0;
|
||||
CreateEntitiesToTheLeft = 0x80192D28;
|
||||
CreateEntitiesToTheRight = 0x80192E24;
|
||||
FindFirstEntityAbove = 0x80192F38;
|
||||
FindFirstEntityBelow = 0x80192F84;
|
||||
CreateEntitiesAbove = 0x80192FDC;
|
||||
CreateEntitiesBelow = 0x801930D8;
|
||||
InitRoomEntities = 0x801931EC;
|
||||
UpdateRoomPosition = 0x80193364;
|
||||
CreateEntityFromCurrentEntity = 0x80193418;
|
||||
CreateEntityFromEntity = 0x8019348C;
|
||||
DestroyEntity = 0x801941B8;
|
||||
PreventEntityFromRespawning = 0x801942A0;
|
||||
AnimateEntity = 0x801942E8;
|
||||
MoveEntity = 0x8019456C;
|
||||
FallEntity = 0x8019459C;
|
||||
AllocEntity = 0x80194A28;
|
||||
SetStep = 0x80194DF8;
|
||||
InitializeEntity = 0x80194EC8;
|
||||
CheckFieldCollision = 0x80195114;
|
||||
GetPlayerCollisionWith = 0x8019526C;
|
||||
func_8018CAB0 = 0x80195668;
|
||||
func_8018CB34 = 0x801956EC;
|
||||
CollectHeart = 0x80195848;
|
||||
CollectGold = 0x801958C8;
|
||||
CollectSubweapon = 0x801959A4;
|
||||
CollectHeartVessel = 0x80195ABC;
|
||||
CollectLifeVessel = 0x80195B60;
|
||||
DestroyCurrentEntity = 0x80195BB0;
|
||||
EntityPrizeDrop = 0x80195BD8;
|
||||
EntityExplosion = 0x8019644C;
|
||||
BlinkItem = 0x80196548;
|
||||
EntityEquipItemDrop = 0x801965EC;
|
||||
EntityRelicOrb = 0x80196BD8;
|
||||
CheckColliderOffsets = 0x80197DA4;
|
||||
EntityUnkId14Spawner = 0x80197FA4;
|
||||
EntityUnkId14 = 0x801981BC;
|
||||
EntityUnkId15 = 0x801982AC;
|
||||
EntityOlroxDrool = 0x801983A0;
|
||||
InitializeUnkEntity = 0x80198D4C;
|
||||
UnkRecursivePrimFunc1 = 0x80199170;
|
||||
UnkRecursivePrimFunc2 = 0x80199750;
|
||||
PlaySfxPositional = 0x8019A048;
|
||||
EntityStageNamePopup = 0x8019A140;
|
||||
BottomCornerText = 0x8019B198;
|
||||
UnkPrimHelper = 0x8019B570;
|
||||
UnkPolyFunc2 = 0x8019BCBC;
|
||||
PrimDecreaseBrightness = 0x8019BD3C;
|
||||
msgBoxTpage = 0x8019BE10;
|
||||
g_Dialogue = 0x8019CA10;
|
||||
D_8019D374 = 0x8019CA4C;
|
||||
g_CutsceneFlags = 0x8019CABC;
|
||||
D_8019D428 = 0x8019CAC0;
|
||||
g_ItemIconSlots = 0x8019CAC4;
|
@ -344,6 +344,7 @@ void EntityRoomDarkness(Entity* self) {
|
||||
}
|
||||
}
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
void EntityMaria(Entity* self) {
|
||||
if (self->step == 0) {
|
||||
/* Has player seen Maria Holy Glasses Cutscene? */
|
||||
@ -351,7 +352,7 @@ void EntityMaria(Entity* self) {
|
||||
DestroyEntity(self);
|
||||
return;
|
||||
}
|
||||
InitializeEntity(D_80180428);
|
||||
InitializeEntity(g_eMariaInit);
|
||||
self->flags = FLAG_POS_CAMERA_LOCKED;
|
||||
self->animSet = ANIMSET_OVL(1);
|
||||
self->animCurFrame = 10;
|
||||
@ -360,6 +361,9 @@ void EntityMaria(Entity* self) {
|
||||
self->zPriority = 0x80;
|
||||
}
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM("st/cen/nonmatchings/F890", EntityMaria);
|
||||
#endif
|
||||
|
||||
s16 func_8019040C(Primitive* prim, s16 arg1) {
|
||||
s16 ret = arg1;
|
||||
@ -401,6 +405,7 @@ s16 func_801904B8(Primitive* prim, s16 arg1) {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
// Elevator when not moving (ID 1A)
|
||||
void EntityElevatorStationary(Entity* self) {
|
||||
Entity* player = &PLAYER;
|
||||
@ -411,7 +416,7 @@ void EntityElevatorStationary(Entity* self) {
|
||||
|
||||
switch (self->step) {
|
||||
case 0:
|
||||
InitializeEntity(D_8018047C);
|
||||
InitializeEntity(g_eElevatorInit);
|
||||
self->animCurFrame = 3;
|
||||
self->zPriority = player->zPriority + 2;
|
||||
CreateEntityFromCurrentEntity(E_ELEVATOR_STATIONARY, &self[-1]);
|
||||
@ -560,6 +565,9 @@ void EntityElevatorStationary(Entity* self) {
|
||||
DestroyEntity(self);
|
||||
}
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM("st/cen/nonmatchings/F890", EntityElevatorStationary);
|
||||
#endif
|
||||
|
||||
void EntityUnkId1B(Entity* self) {
|
||||
Entity* entity = &self[self->params];
|
||||
@ -567,7 +575,7 @@ void EntityUnkId1B(Entity* self) {
|
||||
|
||||
switch (self->step) {
|
||||
case 0:
|
||||
InitializeEntity(D_8018047C);
|
||||
InitializeEntity(g_eElevatorInit);
|
||||
if (self->params & 16) {
|
||||
self->animCurFrame = self->params & 15;
|
||||
self->zPriority = 0x6A;
|
||||
@ -603,7 +611,7 @@ void EntityMovingElevator(Entity* self) {
|
||||
|
||||
switch (self->step) {
|
||||
case 0:
|
||||
InitializeEntity(D_8018047C);
|
||||
InitializeEntity(g_eElevatorInit);
|
||||
self->animCurFrame = 3;
|
||||
self->zPriority = player->zPriority + 2;
|
||||
primIndex = g_api.AllocPrimitives(PRIM_GT4, 12);
|
||||
|
@ -53,11 +53,11 @@ extern PfnEntityUpdate PfnEntityUpdates[];
|
||||
/*** Initializers ***/
|
||||
extern u16 D_80180404[];
|
||||
extern u16 g_InitializeData0[];
|
||||
extern u16 D_80180428[];
|
||||
extern u16 g_eMariaInit[];
|
||||
extern u16 g_EInitGeneric[];
|
||||
extern u16 g_eInitGeneric2[];
|
||||
extern u16 g_InitializeEntityData0[];
|
||||
extern u16 D_8018047C[]; // EntityElevator
|
||||
extern u16 g_eElevatorInit[]; // EntityElevator
|
||||
|
||||
extern ObjInit g_eBackgroundBlockInit[];
|
||||
extern u16* D_80180574[];
|
||||
|
@ -1,2 +1,35 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include "cen.h"
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
|
||||
#include "../create_entity.h"
|
||||
|
||||
#else
|
||||
|
||||
#include "../create_entity_from_layout.h"
|
||||
#include "../create_entity_in_range.h"
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", FindFirstEntityToTheRight);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", FindFirstEntityToTheLeft);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", CreateEntitiesToTheLeft);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", CreateEntitiesToTheRight);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", FindFirstEntityAbove);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", FindFirstEntityBelow);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", CreateEntitiesAbove);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", CreateEntitiesBelow);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", InitRoomEntities);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/create_entity", UpdateRoomPosition);
|
||||
|
||||
#include "../create_entity_from_entity.h"
|
||||
|
||||
#endif
|
||||
|
@ -34,19 +34,49 @@ static s16 D_801805F4[] = {
|
||||
0x1B, 0x34, 0x41, 0x35, 0x08, 0x0E, 0x4D, 0x11, 0x34, 0x41, 0x29, 0x48,
|
||||
};
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
|
||||
static const char* actor_names[] = {_S("Alucard"), _S("Maria")};
|
||||
|
||||
static const char _pad[4] = "";
|
||||
|
||||
#endif
|
||||
|
||||
extern s32 D_8019D374;
|
||||
extern Dialogue g_Dialogue;
|
||||
|
||||
extern u32 g_CutsceneFlags;
|
||||
extern u32 D_8019D428;
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
#include "../cutscene_unk1.h"
|
||||
#else
|
||||
INCLUDE_ASM("st/cen/nonmatchings/cutscene", CutsceneUnk1);
|
||||
#endif
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
#include "../set_cutscene_script.h"
|
||||
#else
|
||||
INCLUDE_ASM("st/cen/nonmatchings/cutscene", SetCutsceneScript);
|
||||
#endif
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
#include "../cutscene_unk3.h"
|
||||
#else
|
||||
INCLUDE_ASM("st/cen/nonmatchings/cutscene", CutsceneUnk3);
|
||||
#endif
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
#include "../cutscene_unk4.h"
|
||||
#else
|
||||
INCLUDE_ASM("st/cen/nonmatchings/cutscene", CutsceneUnk4);
|
||||
#endif
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
#include "../cutscene_actor_name.h"
|
||||
#else
|
||||
INCLUDE_ASM("st/cen/nonmatchings/cutscene", DrawCutsceneActorName);
|
||||
#endif
|
||||
|
||||
#include "../set_cutscene_end.h"
|
||||
|
||||
@ -102,8 +132,11 @@ static void CutsceneRun(void) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef VERSION_HD
|
||||
#include "../cutscene_scale_avatar.h"
|
||||
#endif
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
extern u8 OVL_EXPORT(cutscene_data)[];
|
||||
void OVL_EXPORT(EntityCutscene)(Entity* self) {
|
||||
RECT rect;
|
||||
@ -580,3 +613,6 @@ void OVL_EXPORT(EntityCutscene)(Entity* self) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM("st/cen/nonmatchings/cutscene", CEN_EntityCutscene);
|
||||
#endif
|
||||
|
@ -1,7 +1,12 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include "cen.h"
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
|
||||
#include <cutscene.h>
|
||||
|
||||
u8 OVL_EXPORT(cutscene_data)[] = {
|
||||
#include "cutscene_data.h"
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -1,2 +1,59 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include "cen.h"
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
|
||||
#include "../e_collect.h"
|
||||
|
||||
#else
|
||||
|
||||
// e_collect
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", func_8018CAB0);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", func_8018CB34);
|
||||
|
||||
// TODO: needs c_HeartPrizes
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", CollectHeart);
|
||||
|
||||
// TODO: needs c_GoldPrizes, g_goldCollectTexts
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", CollectGold);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", CollectSubweapon);
|
||||
|
||||
#include "../collect_heart_vessel.h"
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", CollectLifeVessel);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", DestroyCurrentEntity);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D4F8);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D500);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D508);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D510);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D518);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D520);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D528);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D530);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D538);
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_collect", D_hd_8018D540);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", EntityPrizeDrop);
|
||||
|
||||
// TODO: needs g_ExplosionYVelocities, g_ExplosionAnimations
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", EntityExplosion);
|
||||
|
||||
#include "../blink_item.h"
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_collect", EntityEquipItemDrop);
|
||||
|
||||
#endif
|
||||
|
@ -72,7 +72,7 @@ EntityInit g_InitializeEntityData0 = {
|
||||
.enemyId = 2,
|
||||
};
|
||||
|
||||
EntityInit D_80180428 = {
|
||||
EntityInit g_eMariaInit = {
|
||||
.animSet = ANIMSET_DRA(0),
|
||||
.animCurFrame = 0,
|
||||
.unk5A = 0,
|
||||
@ -128,7 +128,7 @@ EntityInit D_80180470 = {
|
||||
.enemyId = 3,
|
||||
};
|
||||
|
||||
EntityInit D_8018047C = {
|
||||
EntityInit g_eElevatorInit = {
|
||||
.animSet = ANIMSET_OVL(11),
|
||||
.animCurFrame = 1,
|
||||
.unk5A = 72,
|
||||
|
@ -2,4 +2,56 @@
|
||||
#include "cen.h"
|
||||
|
||||
#define HEART_DROP_CASTLE_FLAG 0xC0
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
|
||||
#include "../e_misc.h"
|
||||
|
||||
#else
|
||||
|
||||
INCLUDE_RODATA("st/cen/nonmatchings/e_misc", g_RelicOrbTexts);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_misc", EntityRelicOrb);
|
||||
|
||||
#include "../entity_heart_drop.h"
|
||||
|
||||
extern u16 msgBoxTpage[0x600];
|
||||
#include "../entity_message_box.h"
|
||||
|
||||
#include "../check_coll_offsets.h"
|
||||
|
||||
#include "../entity_unkId13.h"
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_misc", EntityUnkId14Spawner);
|
||||
|
||||
#include "../entity_unkId15_spawner.h"
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_misc", EntityUnkId14);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_misc", EntityUnkId15);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_misc", EntityOlroxDrool);
|
||||
|
||||
#include "../unk_collision_func5.h"
|
||||
|
||||
#include "../unk_collision_func4.h"
|
||||
|
||||
#include "../entity_intense_explosion.h"
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_misc", InitializeUnkEntity);
|
||||
|
||||
#include "../make_entity_from_id.h"
|
||||
|
||||
#include "../make_explosions.h"
|
||||
|
||||
#include "../entity_big_red_fireball.h"
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_misc", UnkRecursivePrimFunc1);
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_misc", UnkRecursivePrimFunc2);
|
||||
|
||||
#include "../clut_lerp.h"
|
||||
|
||||
#include "../play_sfx_positional.h"
|
||||
|
||||
#endif
|
||||
|
@ -1,2 +1,17 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
#include "cen.h"
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
|
||||
#include "../e_particles.h"
|
||||
|
||||
#else
|
||||
|
||||
// data differs
|
||||
|
||||
#include "../entity_soul_steal_orb.h"
|
||||
|
||||
#include "../entity_enemy_blood.h"
|
||||
|
||||
#endif
|
||||
|
@ -1,4 +1,12 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include "cen.h"
|
||||
|
||||
#if !defined(VERSION_HD)
|
||||
|
||||
#include "../e_stage_name.h"
|
||||
|
||||
#else
|
||||
|
||||
INCLUDE_ASM("st/cen/nonmatchings/e_stage_name", EntityStageNamePopup);
|
||||
|
||||
#endif
|
||||
|
@ -1,4 +1,2 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include "cen.h"
|
||||
|
||||
#include "../popup.h"
|
||||
|
@ -1,3 +1,2 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include <game.h>
|
||||
#include "../prim_helpers.h"
|
||||
|
@ -1,8 +1,16 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include <stage.h>
|
||||
|
||||
#ifdef VERSION_HD
|
||||
#include "tilemap_06A0C.h"
|
||||
#include "tilemap_06E0C.h"
|
||||
#include "tilemap_0800C.h"
|
||||
#include "tiledef_0860C.h"
|
||||
#include "tiledef_0C61C.h"
|
||||
#else
|
||||
#include "tilemap_069EC.h"
|
||||
#include "tilemap_06DEC.h"
|
||||
#include "tilemap_07FEC.h"
|
||||
#include "tiledef_085EC.h"
|
||||
#include "tiledef_0C5FC.h"
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user