mirror of
https://github.com/pmret/papermario.git
synced 2024-09-18 23:42:35 +02:00
Disassemble battle/partner/goombario.c (#308)
* name battle/partner/ segments * name battle_goombario sprites * battle/partner/goombario data * update
This commit is contained in:
parent
8decbeb3ff
commit
da6fd773bb
@ -496,6 +496,7 @@ enum Easings {
|
||||
|
||||
typedef UNK_TYPE SoundID;
|
||||
enum SoundIDs {
|
||||
SOUND_UNKNOWN_0,
|
||||
SOUND_UNKNOWN_D = 13,
|
||||
SOUND_UNKNOWN_E = 14,
|
||||
SOUND_UNKNOWN_43 = 67,
|
||||
@ -535,6 +536,7 @@ enum SoundIDs {
|
||||
SOUND_UNKNOWN_25C = 604,
|
||||
SOUND_UNKNOWN_25D,
|
||||
SOUND_UNKNOWN_262 = 610,
|
||||
SOUND_UNKNOWN_282 = 642,
|
||||
SOUND_BOW_SPOOK = 657,
|
||||
SOUND_UNUSED_2C1 = 705,
|
||||
SOUND_SMOKE_BURST = 717,
|
||||
@ -575,7 +577,9 @@ enum SoundIDs {
|
||||
SOUND_MOLE_THROW = 1000,
|
||||
SOUND_UNKNOWN_3F3 = 1011,
|
||||
SOUND_THROW = 1018,
|
||||
SOUND_BOW_VANISH = 8206,
|
||||
SOUND_UNKNOWN_2003 = 8195,
|
||||
SOUND_UNKNOWN_200D = 8205,
|
||||
SOUND_BOW_VANISH,
|
||||
SOUND_BOW_APPEAR,
|
||||
SOUND_UNKNOWN_2010,
|
||||
SOUND_CANNON1 = 8214,
|
||||
@ -590,8 +594,10 @@ enum SoundIDs {
|
||||
SOUND_UNKNOWN_2039,
|
||||
SOUND_BOMB_BLAST = 8310,
|
||||
SOUND_JUMP_2081 = 8321,
|
||||
SOUND_UNKNOWN_208D = 8333,
|
||||
SOUND_UNKNOWN_208C = 8332,
|
||||
SOUND_UNKNOWN_208D,
|
||||
SOUND_UNKNOWN_208E,
|
||||
SOUND_UNKNOWN_208F,
|
||||
SOUND_UNKNOWN_2095 = 8341,
|
||||
SOUND_SPELL_CAST1 = 8404,
|
||||
SOUND_SPELL_CAST2,
|
||||
@ -973,8 +979,10 @@ enum ItemIDs {
|
||||
ITEM_ITEMS_ICON,
|
||||
};
|
||||
|
||||
// TODO: use NPC_ANIM-like macro for player animations
|
||||
typedef UNK_TYPE PlayerAnim;
|
||||
enum PlayerAnims {
|
||||
ANIM_1 = 1, // XXX
|
||||
ANIM_STAND_STILL = 0x10000,
|
||||
ANIM_CROUCH_STILL,
|
||||
ANIM_10002,
|
||||
@ -1028,6 +1036,9 @@ enum PlayerAnims {
|
||||
ANIM_8001B = 0x8001B,
|
||||
ANIM_8001D = 0x8001D,
|
||||
ANIM_8001E,
|
||||
ANIM_90004 = 0x90004,
|
||||
ANIM_90005,
|
||||
ANIM_90006,
|
||||
};
|
||||
|
||||
typedef UNK_TYPE AmbientSound;
|
||||
|
@ -278,8 +278,17 @@ ApiStatus InitAnimatedModels(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_8024CE9C(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_802CABE8(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_802CAE50(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_802A9000_430020(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_802A9120_421B10(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_802807D0(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_802694A4(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_80269524(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_80269550(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_8026919C(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_80280818(ScriptInstance* script, s32 isInitialCall); ///< YieldTurn copy
|
||||
ApiStatus func_8024ECF8(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_8027D32C(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus GetActionCommandResult(ScriptInstance* script, s32 isInitialCall);
|
||||
|
||||
extern Script PlayerScriptDispatcher;
|
||||
extern Script PeachScriptDispatcher;
|
||||
|
@ -1,154 +0,0 @@
|
||||
#define NAMESPACE battle_partner_goombario
|
||||
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
extern Actor D_8023CDA0;
|
||||
extern s32 D_8023CDA4;
|
||||
extern MessageID bActorTattles[ACTOR_TYPE_COUNT];
|
||||
|
||||
ApiStatus func_80238000_6F10E0(ScriptInstance* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
Actor* partnerActor = battleStatus->partnerActor;
|
||||
f32 posX = partnerActor->currentPos.x;
|
||||
f32 posY = partnerActor->currentPos.y;
|
||||
f32 posZ = partnerActor->currentPos.z;
|
||||
f32 goalX = partnerActor->walk.goalPos.x;
|
||||
f32 goalY = partnerActor->walk.goalPos.y;
|
||||
f32 goalZ = partnerActor->walk.goalPos.z;
|
||||
|
||||
script->varTable[0] = (dist3D(posX, posY, posZ, goalX, goalY, goalZ) * 15.0f) / 100.0f;
|
||||
|
||||
if (script->varTable[0] >= 21) {
|
||||
script->varTable[0] = 20;
|
||||
}
|
||||
|
||||
if (battleStatus->unk_83 != 0) {
|
||||
if (script->varTable[0] < 10) {
|
||||
script->varTable[0] = 10;
|
||||
}
|
||||
} else if (script->varTable[0] < 15) {
|
||||
script->varTable[0] = 15;
|
||||
}
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_802380E4_6F11C4);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_8023817C_6F125C);
|
||||
|
||||
ApiStatus func_80238A20_6F1B00(ScriptInstance* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
Actor* partnerActor = gBattleStatus.partnerActor;
|
||||
Vec3f* pos = &partnerActor->walk.currentPos;
|
||||
|
||||
if (isInitialCall) {
|
||||
script->functionTemp[0].s = 0;
|
||||
}
|
||||
|
||||
if (script->functionTemp[0].s == 0) {
|
||||
partnerActor->walk.currentPos.x = partnerActor->currentPos.x;
|
||||
partnerActor->walk.currentPos.y = partnerActor->currentPos.y;
|
||||
partnerActor->walk.currentPos.z = partnerActor->currentPos.z;
|
||||
script->functionTemp[0].s = 1;
|
||||
}
|
||||
|
||||
if (partnerActor->walk.velocity > 0.0f) {
|
||||
set_animation(0x100, 0, partnerActor->walk.animJumpRise);
|
||||
}
|
||||
|
||||
if (partnerActor->walk.velocity < 0.0f) {
|
||||
set_animation(0x100, 0, partnerActor->walk.animJumpFall);
|
||||
}
|
||||
|
||||
partnerActor->walk.currentPos.y = (partnerActor->walk.currentPos.y + partnerActor->walk.velocity);
|
||||
partnerActor->walk.velocity = (partnerActor->walk.velocity - partnerActor->walk.acceleration);
|
||||
add_xz_vec3f(pos, partnerActor->walk.speed, partnerActor->walk.angle);
|
||||
partnerActor->currentPos.x = partnerActor->walk.currentPos.x;
|
||||
partnerActor->currentPos.y = partnerActor->walk.currentPos.y;
|
||||
partnerActor->currentPos.z = partnerActor->walk.currentPos.z;
|
||||
|
||||
if (partnerActor->currentPos.y < 10.0f) {
|
||||
partnerActor->currentPos.y = 10.0f;
|
||||
|
||||
play_movement_dust_effects(2, partnerActor->currentPos.x, partnerActor->currentPos.y, partnerActor->currentPos.z,
|
||||
partnerActor->yaw);
|
||||
sfx_play_sound(SOUND_SOFT_LAND);
|
||||
|
||||
return ApiStatus_DONE1;
|
||||
}
|
||||
|
||||
return ApiStatus_BLOCK;
|
||||
}
|
||||
|
||||
ApiStatus func_80238B60_6F1C40(ScriptInstance* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
Actor* partnerActor = battleStatus->partnerActor;
|
||||
Actor* targetActor = get_actor(partnerActor->targetActorID);
|
||||
MessageID* tattle = &bActorTattles[targetActor->actorType];
|
||||
|
||||
script->varTable[0] = *tattle;
|
||||
|
||||
if (script->varTable[0] == NULL) {
|
||||
script->varTable[0] = bActorTattles[0];
|
||||
}
|
||||
|
||||
save_tattle_flags(targetActor->actorType);
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238BCC_6F1CAC);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238E04_6F1EE4);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238E48_6F1F28);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238E74_6F1F54);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238EDC_6F1FBC);
|
||||
|
||||
ApiStatus func_8023903C_6F211C(ScriptInstance* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
|
||||
battleStatus->partnerActor->isGlowing = FALSE;
|
||||
battleStatus->flags1 &= ~0x40000000;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
ApiStatus func_80239068_6F2148(ScriptInstance* script, s32 isInitialCall) {
|
||||
Actor* partnerActor = gBattleStatus.partnerActor;
|
||||
|
||||
if (!(gBattleStatus.flags1 & 0x40000000)) {
|
||||
partnerActor->isGlowing = FALSE;
|
||||
}
|
||||
|
||||
script->varTable[0] = partnerActor->isGlowing;
|
||||
partnerActor->isGlowing = FALSE;
|
||||
gBattleStatus.flags1 &= ~0x40000000;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
ApiStatus func_802390B0_6F2190(ScriptInstance* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
|
||||
script->varTable[0] = battleStatus->partnerActor->isGlowing;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_802390C8_6F21A8);
|
||||
|
||||
ApiStatus func_80239190_6F2270(ScriptInstance* script, s32 isInitialCall) {
|
||||
if (D_8023CDA4 == 0) {
|
||||
script->varTable[0] = 36;
|
||||
} else {
|
||||
script->varTable[0] = 37;
|
||||
}
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238000_707CA0);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238114_707DB4);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/707CA0", func_802381EC_707E8C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/707CA0", func_802382A4_707F44);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238328_707FC8);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238388_708028);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238480_708120);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238540_7081E0);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238E30_708AD0);
|
@ -1,27 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238000_70BD10);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_8023803C_70BD4C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238A6C_70C77C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238B50_70C860);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238C14_70C924);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238C58_70C968);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238D48_70CA58);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238D8C_70CA9C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_8023906C_70CD7C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80239140_70CE50);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80239F84_70DC94);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_8023A19C_70DEAC);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/70BD10", func_8023A1B0_70DEC0);
|
@ -24,7 +24,7 @@ ApiStatus func_80238014_710F04(ScriptInstance* script, s32 isInitialCall) {
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(ApiStatus, "battle/partner/710EF0", func_8023808C_710F7C, ScriptInstance* script, s32 isInitialCall);
|
||||
INCLUDE_ASM(ApiStatus, "battle/partner/bow", func_8023808C_710F7C, ScriptInstance* script, s32 isInitialCall);
|
||||
|
||||
ApiStatus func_802380E4_710FD4(ScriptInstance* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
1235
src/battle/partner/goombario.c
Normal file
1235
src/battle/partner/goombario.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -37,7 +37,7 @@ ApiStatus func_80238000_6F5E80(ScriptInstance* script, s32 isInitialCall) {
|
||||
return ApiStatus_BLOCK;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6F5E80", func_80238114_6F5F94);
|
||||
INCLUDE_ASM(s32, "battle/partner/kooper", func_80238114_6F5F94);
|
||||
|
||||
ApiStatus N(AverageTargetDizzyChance)(ScriptInstance* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
27
src/battle/partner/lakilester.c
Normal file
27
src/battle/partner/lakilester.c
Normal file
@ -0,0 +1,27 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238000_70BD10);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_8023803C_70BD4C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238A6C_70C77C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238B50_70C860);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238C14_70C924);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238C58_70C968);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238D48_70CA58);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238D8C_70CA9C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_8023906C_70CD7C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80239140_70CE50);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80239F84_70DC94);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_8023A19C_70DEAC);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/lakilester", func_8023A1B0_70DEC0);
|
@ -1,7 +1,7 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6FFD80", func_80238000_6FFD80);
|
||||
INCLUDE_ASM(s32, "battle/partner/parakarry", func_80238000_6FFD80);
|
||||
|
||||
ApiStatus func_80238C88_700A08(ScriptInstance* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
@ -60,9 +60,9 @@ ApiStatus func_80238CE0_700A60(ScriptInstance* script, s32 isInitialCall) {
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6FFD80", func_80238E24_700BA4);
|
||||
INCLUDE_ASM(s32, "battle/partner/parakarry", func_80238E24_700BA4);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/6FFD80", func_802390B4_700E34);
|
||||
INCLUDE_ASM(s32, "battle/partner/parakarry", func_802390B4_700E34);
|
||||
|
||||
ApiStatus func_802397C8_701548(ScriptInstance* script, s32 isInitialCall) {
|
||||
script->varTable[15] = ((script->varTable[0] * 100) / 2499) + 2;
|
19
src/battle/partner/sushie.c
Normal file
19
src/battle/partner/sushie.c
Normal file
@ -0,0 +1,19 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238000_707CA0);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238114_707DB4);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/sushie", func_802381EC_707E8C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/sushie", func_802382A4_707F44);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238328_707FC8);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238388_708028);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238480_708120);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238540_7081E0);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238E30_708AD0);
|
@ -31,5 +31,5 @@ ApiStatus func_80238028_714D18(ScriptInstance* script, s32 isInitialCall) {
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(s32, "battle/partner/714CF0", func_80238028_714D18);
|
||||
INCLUDE_ASM(s32, "battle/partner/twink", func_80238028_714D18);
|
||||
#endif
|
@ -2,41 +2,41 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238000_703AF0);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238000_703AF0);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238370_703E60);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238370_703E60);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802383C0_703EB0);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_802383C0_703EB0);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802383D4_703EC4);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_802383D4_703EC4);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802383E4_703ED4);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_802383E4_703ED4);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802383F8_703EE8);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_802383F8_703EE8);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238408_703EF8);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238408_703EF8);
|
||||
|
||||
#include "common/UnkBackgroundFunc3.inc.c"
|
||||
|
||||
#include "common/SetBackgroundAlpha.inc.c"
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802384B0_703FA0);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_802384B0_703FA0);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238570_704060);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238570_704060);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_8023859C_70408C);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_8023859C_70408C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238668_704158);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238668_704158);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238784_704274);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238784_704274);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238810_704300);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238810_704300);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238B3C_70462C);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238B3C_70462C);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238C08_7046F8);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238C08_7046F8);
|
||||
|
||||
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238C84_704774);
|
||||
INCLUDE_ASM(s32, "battle/partner/watt", func_80238C84_704774);
|
||||
|
||||
ApiStatus N(AverageTargetParalyzeChance)(ScriptInstance* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
@ -172,6 +172,35 @@ world_bombette:
|
||||
- celebrate
|
||||
- lit_charge
|
||||
- anim_11
|
||||
battle_goombario:
|
||||
palettes:
|
||||
- default
|
||||
- green
|
||||
- inactive
|
||||
- yellow
|
||||
- burn
|
||||
animations:
|
||||
- still
|
||||
- idle
|
||||
- walk
|
||||
- run
|
||||
- jump
|
||||
- fall
|
||||
- headbonk
|
||||
- charge
|
||||
- headbonk_unk
|
||||
- charge_unk
|
||||
- pain
|
||||
- burn_pain
|
||||
- burn_dead
|
||||
- burn_unk
|
||||
- block
|
||||
- talk
|
||||
- celebrate
|
||||
- celebrate_still
|
||||
- unk_12
|
||||
- sleep
|
||||
- daze
|
||||
goomba:
|
||||
frames:
|
||||
- still
|
||||
|
@ -138,6 +138,10 @@ def disassemble(bytes, midx, symbol_map={}, comments=True, romstart=0):
|
||||
if comments:
|
||||
out += f"// {romstart+struct['start']:X}-{romstart+struct['end']:X} (VRAM: {struct['vaddr']:X})\n"
|
||||
|
||||
if struct["type"] == "ASCII" or struct["type"] == "SJIS" or struct["type"] == "ConstDouble":
|
||||
# rodata string hopefully inlined elsewhere
|
||||
out += f"// rodata: {struct['name']}\n"
|
||||
|
||||
# format struct
|
||||
if struct["type"].startswith("Script"):
|
||||
if struct["type"] == "Script_Main":
|
||||
@ -660,10 +664,6 @@ def disassemble(bytes, midx, symbol_map={}, comments=True, romstart=0):
|
||||
|
||||
out += f"}};\n"
|
||||
afterHeader = True
|
||||
elif struct["type"] == "ASCII" or struct["type"] == "SJIS":
|
||||
# rodata string hopefully inlined elsewhere
|
||||
bytes.read(struct["length"])
|
||||
out += f"// rodata: {struct['name']}\n"
|
||||
elif struct["type"].startswith("Function"):
|
||||
bytes.read(struct["length"])
|
||||
out += f"s32 {name}();\n"
|
||||
@ -1038,7 +1038,12 @@ if __name__ == "__main__":
|
||||
is_battle = False
|
||||
else:
|
||||
battle_area = "_".join(base.lower().split(" ")[1:])
|
||||
segment_name = f"battle/{battle_area}"
|
||||
|
||||
if "partner" in base:
|
||||
segment_name = f"battle/partners/{battle_area}"
|
||||
else:
|
||||
segment_name = f"battle_partner_{battle_area}"
|
||||
|
||||
is_battle = True
|
||||
|
||||
symbol_map = {}
|
||||
@ -1050,13 +1055,13 @@ if __name__ == "__main__":
|
||||
|
||||
rom_offset = -1
|
||||
for segment in splat_config["segments"]:
|
||||
if isinstance(segment, dict) and segment.get("dir") == segment_name:
|
||||
if isinstance(segment, dict) and (segment.get("dir") == segment_name or segment.get("name") == segment_name):
|
||||
rom_offset = segment["start"]
|
||||
vram = segment["vram"]
|
||||
break
|
||||
|
||||
if rom_offset == -1:
|
||||
print(f"can't find segment with dir '{segment_name}' in splat.yaml")
|
||||
print(f"can't find segment with dir or name '{segment_name}' in splat.yaml")
|
||||
exit(1)
|
||||
|
||||
if ext == ".midx":
|
||||
@ -1117,6 +1122,10 @@ if __name__ == "__main__":
|
||||
|
||||
string_literal = '"' + string_data + '"'
|
||||
symbol_map[struct["vaddr"]] = [[struct["vaddr"], string_literal]]
|
||||
elif struct["type"] == "ConstDouble":
|
||||
double = unpack_from(">d", romfile.read(struct["length"]), 0)[0]
|
||||
double_literal = f"{double}"
|
||||
symbol_map[struct["vaddr"]] = [[struct["vaddr"], double_literal]]
|
||||
elif struct["type"] == "NpcGroup":
|
||||
for z in range(struct["length"]//0x1F0):
|
||||
npc = romfile.read(0x1F0)
|
||||
|
@ -27,7 +27,7 @@ glabel D_80283DF8
|
||||
.word 0xE7000000, 0x00000000, 0xD7000002, 0xFFFFFFFF, 0xFCFFFFFF, 0xFFFCF279, 0xE3000C00, 0x00080000, 0xE3000D01, 0x00000000, 0xE3000F00, 0x00000000, 0xE3001001, 0x00000000, 0xE3001201, 0x00003000, 0xE3001402, 0x00000C00, 0xE3001001, 0x00008000, 0xFD100000, D_8028F840, 0xE8000000, 0x00000000, 0xF5000100, 0x07000000, 0xE6000000, 0x00000000, 0xF0000000, 0x0703C000, 0xE7000000, 0x00000000, 0xFD48000F, D_8028F640, 0xF5480400, 0x07000000, 0xE6000000, 0x00000000, 0xF4000000, 0x0703E07C, 0xE7000000, 0x00000000, 0xF5400400, 0x00000000, 0xF2000000, 0x0007C07C, 0xD9FDFFFF, 0x00000000, 0xD9DFFFFF, 0x00000000, 0x01004008, D_80283DB8, 0x05000204, 0x00000000, 0x05000406, 0x00000000, 0xE7000000, 0x00000000, 0xDF000000, 0x00000000, 0x00000004, 0x0000000D, 0x00000001, 0x0000003C, D_80283DF8, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_80283F10
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006F10E0, 0x006F5E80, func_80238000_6F10E0, 0x802392C8, 0x00000000, 0x006F5E80, 0x006FAD10, func_80238000_6F10E0, 0x80238548, 0x00000000, 0x006FAD10, 0x006FFD80, func_80238000_6F10E0, 0x80238758, 0x00000000, 0x006FFD80, 0x00703AF0, func_80238000_6F10E0, 0x80239928, 0x0000001E, 0x006F0B30, 0x006F10E0, func_80238000_6F10E0, 0x802380E8, 0x00000000, 0x00703AF0, 0x00707CA0, func_80238000_6F10E0, func_802390B0_6F2190, 0x00000014, 0x00707CA0, 0x0070BD10, func_80238000_6F10E0, 0x80238FE8, 0x00000000, 0x0070BD10, 0x00710EF0, func_80238000_6F10E0, 0x8023A2F8, 0x0000000A, 0x00710EF0, 0x00714CF0, func_80238000_6F10E0, 0x80238418, 0x00000014, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00714CF0, 0x00715850, func_80238000_6F10E0, 0x802381C0, 0x0000001E
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006F10E0, 0x006F5E80, func_80238000_6F5E80, 0x802392C8, 0x00000000, 0x006F5E80, 0x006FAD10, func_80238000_6F5E80, 0x80238548, 0x00000000, 0x006FAD10, 0x006FFD80, func_80238000_6F5E80, 0x80238758, 0x00000000, 0x006FFD80, 0x00703AF0, func_80238000_6F5E80, 0x80239928, 0x0000001E, 0x006F0B30, 0x006F10E0, func_80238000_6F5E80, 0x802380E8, 0x00000000, 0x00703AF0, 0x00707CA0, func_80238000_6F5E80, battle_partner_goombario_IsGlowing, 0x00000014, 0x00707CA0, 0x0070BD10, func_80238000_6F5E80, 0x80238FE8, 0x00000000, 0x0070BD10, 0x00710EF0, func_80238000_6F5E80, 0x8023A2F8, 0x0000000A, 0x00710EF0, 0x00714CF0, func_80238000_6F5E80, 0x80238418, 0x00000014, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00714CF0, 0x00715850, func_80238000_6F5E80, 0x802381C0, 0x0000001E
|
||||
|
||||
glabel gBattleDmaDest
|
||||
.word 0x00000000
|
||||
|
File diff suppressed because one or more lines are too long
@ -12,8 +12,8 @@ glabel func_802380E4_6F11C4
|
||||
/* 6F11E0 80238100 0C09A75B */ jal get_actor
|
||||
/* 6F11E4 80238104 84440428 */ lh $a0, 0x428($v0)
|
||||
/* 6F11E8 80238108 24030063 */ addiu $v1, $zero, 0x63
|
||||
/* 6F11EC 8023810C 3C108024 */ lui $s0, %hi(D_8023BB98_6F4C78)
|
||||
/* 6F11F0 80238110 2610BB98 */ addiu $s0, $s0, %lo(D_8023BB98_6F4C78)
|
||||
/* 6F11EC 8023810C 3C108024 */ lui $s0, %hi(D_8023BB98_6ECC78)
|
||||
/* 6F11F0 80238110 2610BB98 */ addiu $s0, $s0, %lo(D_8023BB98_6ECC78)
|
||||
/* 6F11F4 80238114 AE230084 */ sw $v1, 0x84($s1)
|
||||
/* 6F11F8 80238118 8C420008 */ lw $v0, 8($v0)
|
||||
/* 6F11FC 8023811C 8E030000 */ lw $v1, ($s0)
|
@ -3370,8 +3370,9 @@ segments:
|
||||
vram: 0x80238000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x6F10E0, c]
|
||||
- [0x6F2290, data]
|
||||
- [0x6F10E0, c, goombario]
|
||||
- [0x6F2290, .data, goombario]
|
||||
- [0x6F5E30, data, 6F2290] # rodata
|
||||
- name: battle_partner_kooper
|
||||
dir: battle/partner
|
||||
type: code
|
||||
@ -3379,7 +3380,7 @@ segments:
|
||||
vram: 0x80238000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x6F5E80, c]
|
||||
- [0x6F5E80, c, kooper]
|
||||
- [0x6F62B0, data]
|
||||
- name: battle_partner_bombette
|
||||
dir: battle/partner
|
||||
@ -3388,7 +3389,7 @@ segments:
|
||||
vram: 0x80238000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x6FAD10, c]
|
||||
- [0x6FAD10, c, bombette]
|
||||
- [0x6FB350, data]
|
||||
- name: battle_partner_parakarry
|
||||
dir: battle/partner
|
||||
@ -3397,7 +3398,7 @@ segments:
|
||||
vram: 0x80238000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x6FFD80, c]
|
||||
- [0x6FFD80, c, parakarry]
|
||||
- [0x701590, data]
|
||||
- name: battle_partner_watt
|
||||
dir: battle/partner
|
||||
@ -3406,7 +3407,7 @@ segments:
|
||||
vram: 0x80238000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x703AF0, c]
|
||||
- [0x703AF0, c, watt]
|
||||
- [0x704A80, data]
|
||||
- name: battle_partner_sushie
|
||||
dir: battle/partner
|
||||
@ -3415,7 +3416,7 @@ segments:
|
||||
vram: 0x80238000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x707CA0, c]
|
||||
- [0x707CA0, c, sushie]
|
||||
- [0x708B70, data]
|
||||
- name: battle_partner_lakilester
|
||||
dir: battle/partner
|
||||
@ -3424,7 +3425,7 @@ segments:
|
||||
vram: 0x80238000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x70BD10, c]
|
||||
- [0x70BD10, c, lakilester]
|
||||
- [0x70DED0, data]
|
||||
- name: battle_partner_bow
|
||||
dir: battle/partner
|
||||
@ -3433,7 +3434,7 @@ segments:
|
||||
vram: 0x80238000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x710EF0, c]
|
||||
- [0x710EF0, c, bow]
|
||||
- [0x7111F0, data]
|
||||
- name: battle_partner_twink
|
||||
dir: battle/partner
|
||||
@ -3442,7 +3443,7 @@ segments:
|
||||
vram: 0x80238000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x714CF0, c]
|
||||
- [0x714CF0, c, twink]
|
||||
- [0x714DC0, data]
|
||||
- name: mushroom
|
||||
dir: battle/item
|
||||
|
@ -6650,21 +6650,21 @@ func_802186E0_6DE4A0 = 0x802186E0; // type:func rom:0x6DE4A0
|
||||
func_80218770_6DE530 = 0x80218770; // type:func rom:0x6DE530
|
||||
func_802187F0_6DE5B0 = 0x802187F0; // type:func rom:0x6DE5B0
|
||||
dup_b_area_dig_Set80218630_Var0 = 0x80218890; // type:func rom:0x6DE650
|
||||
func_80238000_6F10E0 = 0x80238000; // type:func rom:0x6F10E0
|
||||
battle_partner_goombario_func_80238000_6F10E0 = 0x80238000; // type:func rom:0x6F10E0
|
||||
func_802380E4_6F11C4 = 0x802380E4; // type:func rom:0x6F11C4
|
||||
func_8023817C_6F125C = 0x8023817C; // type:func rom:0x6F125C
|
||||
func_80238A20_6F1B00 = 0x80238A20; // type:func rom:0x6F1B00
|
||||
battle_partner_goombario_func_80238A20_6F1B00 = 0x80238A20; // type:func rom:0x6F1B00
|
||||
func_80238B60_6F1C40 = 0x80238B60; // type:func rom:0x6F1C40
|
||||
func_80238BCC_6F1CAC = 0x80238BCC; // type:func rom:0x6F1CAC
|
||||
func_80238E04_6F1EE4 = 0x80238E04; // type:func rom:0x6F1EE4
|
||||
func_80238E48_6F1F28 = 0x80238E48; // type:func rom:0x6F1F28
|
||||
func_80238E74_6F1F54 = 0x80238E74; // type:func rom:0x6F1F54
|
||||
func_80238EDC_6F1FBC = 0x80238EDC; // type:func rom:0x6F1FBC
|
||||
func_8023903C_6F211C = 0x8023903C; // type:func rom:0x6F211C
|
||||
func_80239068_6F2148 = 0x80239068; // type:func rom:0x6F2148
|
||||
func_802390B0_6F2190 = 0x802390B0; // type:func rom:0x6F2190
|
||||
battle_partner_goombario_StopGlowing = 0x8023903C; // type:func rom:0x6F211C
|
||||
battle_partner_goombario_StopGlowingAndGet = 0x80239068; // type:func rom:0x6F2148
|
||||
battle_partner_goombario_IsGlowing = 0x802390B0; // type:func rom:0x6F2190
|
||||
func_802390C8_6F21A8 = 0x802390C8; // type:func rom:0x6F21A8
|
||||
func_80239190_6F2270 = 0x80239190; // type:func rom:0x6F2270
|
||||
battle_partner_goombario_func_80239190_6F2270 = 0x80239190; // type:func rom:0x6F2270
|
||||
func_80238000_6F5E80 = 0x80238000; // type:func rom:0x6F5E80
|
||||
func_80238114_6F5F94 = 0x80238114; // type:func rom:0x6F5F94
|
||||
battle_partner_kooper_AverageTargetDizzyChance = 0x80238298; // type:func rom:0x6F6118
|
||||
|
Loading…
Reference in New Issue
Block a user