mirror of
https://github.com/YohannDR/mzm.git
synced 2024-10-07 10:33:24 +00:00
More pointers.h
This commit is contained in:
parent
f7bd194c3d
commit
3d805837a4
93
data/data.h
93
data/data.h
@ -6,94 +6,7 @@
|
||||
#include "../src/samus.h"
|
||||
#include "../src/particle.h"
|
||||
#include "../src/projectile.h"
|
||||
#include "../src/sprites_AI/unused_sprites.h"
|
||||
#include "../src/sprites_AI/charge_beam.h"
|
||||
#include "../src/sprites_AI/deorem.h"
|
||||
#include "../src/sprites_AI/dragon.h"
|
||||
#include "../src/sprites_AI/elevator_pad.h"
|
||||
#include "../src/sprites_AI/enemy_drop.h"
|
||||
#include "../src/sprites_AI/explosion_zebes_escape.h"
|
||||
#include "../src/sprites_AI/geruta.h"
|
||||
#include "../src/sprites_AI/hive.h"
|
||||
#include "../src/sprites_AI/imago_cocoon.h"
|
||||
#include "../src/sprites_AI/map_station.h"
|
||||
#include "../src/sprites_AI/metroid.h"
|
||||
#include "../src/sprites_AI/item_banner.h"
|
||||
#include "../src/sprites_AI/zoomer.h"
|
||||
#include "../src/sprites_AI/zeela.h"
|
||||
#include "../src/sprites_AI/ripper.h"
|
||||
#include "../src/sprites_AI/zeb.h"
|
||||
#include "../src/sprites_AI/skree.h"
|
||||
#include "../src/sprites_AI/morph_ball.h"
|
||||
#include "../src/sprites_AI/chozo_statue.h"
|
||||
#include "../src/sprites_AI/sova.h"
|
||||
#include "../src/sprites_AI/multiviola.h"
|
||||
#include "../src/sprites_AI/squeept.h"
|
||||
#include "../src/sprites_AI/reo.h"
|
||||
#include "../src/sprites_AI/gunship.h"
|
||||
#include "../src/sprites_AI/skultera.h"
|
||||
#include "../src/sprites_AI/dessgeega.h"
|
||||
#include "../src/sprites_AI/waver.h"
|
||||
#include "../src/sprites_AI/power_grip.h"
|
||||
#include "../src/sprites_AI/imago_larva.h"
|
||||
#include "../src/sprites_AI/morph_ball_launcher.h"
|
||||
#include "../src/sprites_AI/space_pirate.h"
|
||||
#include "../src/sprites_AI/gamet.h"
|
||||
#include "../src/sprites_AI/zebbo.h"
|
||||
#include "../src/sprites_AI/worker_robot.h"
|
||||
#include "../src/sprites_AI/parasite.h"
|
||||
#include "../src/sprites_AI/piston.h"
|
||||
#include "../src/sprites_AI/ridley.h"
|
||||
#include "../src/sprites_AI/security_gate.h"
|
||||
#include "../src/sprites_AI/zipline_generator.h"
|
||||
#include "../src/sprites_AI/polyp.h"
|
||||
#include "../src/sprites_AI/rinka.h"
|
||||
#include "../src/sprites_AI/viola.h"
|
||||
#include "../src/sprites_AI/geron_norfair.h"
|
||||
#include "../src/sprites_AI/holtz.h"
|
||||
#include "../src/sprites_AI/gekitai_machine.h"
|
||||
#include "../src/sprites_AI/ruins_test.h"
|
||||
#include "../src/sprites_AI/save_platform.h"
|
||||
#include "../src/sprites_AI/kraid.h"
|
||||
#include "../src/sprites_AI/ripper2.h"
|
||||
#include "../src/sprites_AI/mella.h"
|
||||
#include "../src/sprites_AI/atomic.h"
|
||||
#include "../src/sprites_AI/area_banner.h"
|
||||
#include "../src/sprites_AI/mother_brain.h"
|
||||
#include "../src/sprites_AI/acid_worm.h"
|
||||
#include "../src/sprites_AI/escape_ship.h"
|
||||
#include "../src/sprites_AI/sidehopper.h"
|
||||
#include "../src/sprites_AI/geega.h"
|
||||
#include "../src/sprites_AI/zebetite_and_cannon.h"
|
||||
#include "../src/sprites_AI/zipline.h"
|
||||
#include "../src/sprites_AI/imago_larva_right_side.h"
|
||||
#include "../src/sprites_AI/tangle_vine.h"
|
||||
#include "../src/sprites_AI/imago.h"
|
||||
#include "../src/sprites_AI/crocomire.h"
|
||||
#include "../src/sprites_AI/geron.h"
|
||||
#include "../src/sprites_AI/glass_tube.h"
|
||||
#include "../src/sprites_AI/save_platform_chozodia.h"
|
||||
#include "../src/sprites_AI/baristute.h"
|
||||
#include "../src/sprites_AI/elevator_statue.h"
|
||||
#include "../src/sprites_AI/rising_chozo_pillar.h"
|
||||
#include "../src/sprites_AI/security_laser.h"
|
||||
#include "../src/sprites_AI/boss_statues.h"
|
||||
#include "../src/sprites_AI/searchlight_eye.h"
|
||||
#include "../src/sprites_AI/steam.h"
|
||||
#include "../src/sprites_AI/unknown_item_block.h"
|
||||
#include "../src/sprites_AI/unknown_item_chozo_statue.h"
|
||||
#include "../src/sprites_AI/chozo_ball.h"
|
||||
#include "../src/sprites_AI/gadora.h"
|
||||
#include "../src/sprites_AI/searchlight.h"
|
||||
#include "../src/sprites_AI/primary_sprite_B3.h"
|
||||
#include "../src/sprites_AI/space_pirate_carrying_power_bomb.h"
|
||||
#include "../src/sprites_AI/water_drop.h"
|
||||
#include "../src/sprites_AI/falling_chozo_pillar.h"
|
||||
#include "../src/sprites_AI/mecha_ridley.h"
|
||||
#include "../src/sprites_AI/escape_gate.h"
|
||||
#include "../src/sprites_AI/black_space_pirate.h"
|
||||
#include "../src/sprites_AI/escape_ship_pirate.h"
|
||||
#include "../src/sprites_AI/chozo_statue_movement.h"
|
||||
#include "sprites_AI/sprites.h"
|
||||
|
||||
/* generic_data.c */
|
||||
|
||||
@ -383,10 +296,6 @@ extern u8 blob_0x875ebf8_0x875f1e7[1520];
|
||||
|
||||
extern u8 blob_0x875f31c_0x875f973[16234];
|
||||
|
||||
/* projectile_pointers.c */
|
||||
|
||||
ProjFunc_T process_projectile_functions_pointers[16];
|
||||
|
||||
/* particle_pointers.c */
|
||||
|
||||
ParticleFunc_T process_particle_functions_pointer[61];
|
||||
|
@ -1,5 +1,10 @@
|
||||
#include "../types.h"
|
||||
#include "../samus.h"
|
||||
#include "../projectile.h"
|
||||
#include "../particle.h"
|
||||
#include "../sprites_AI/sprites.h"
|
||||
|
||||
// 75e6a8
|
||||
|
||||
static const SamusFunc_T sSamusPoseFunctionPointers[MAX_AMOUNT_OF_SAMUS_POSES] = {
|
||||
[SPOSE_RUNNING] = SamusRunning,
|
||||
@ -350,12 +355,12 @@ static const Func_T sPrimarySpritesAIPointers[206] = {
|
||||
[PSPRITE_RINKA_MOTHER_BRAIN6] = RinkaMotherBrain
|
||||
};
|
||||
|
||||
static const u32* const sSpritesGraphicsPointers[190] = {
|
||||
|
||||
static const u32* sSpritesGraphicsPointers[190] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
static const u16* const sSpritesPalettePointers[190] = {
|
||||
|
||||
static const u16* sSpritesPalettePointers[190] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
static const Func_T sSecondarySpritesAIPointers[190] = {
|
||||
@ -438,11 +443,11 @@ static const Func_T sSecondarySpritesAIPointers[190] = {
|
||||
[SSPRITE_MOTHER_BRAIN_GLASS_BREAKING] = MotherBrainGlassBreaking
|
||||
};
|
||||
|
||||
static const u8* const sSpritesetPointers[114] = {
|
||||
|
||||
static const u8* sSpritesetPointers[114] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
static const struct FrameData* const sChozoStatueFrameDataPointers[16] = {
|
||||
static const struct FrameData* sChozoStatueFrameDataPointers[16] = {
|
||||
sChozoStatuePartOAM_LegStanding,
|
||||
sChozoStatuePartOAM_LegSitting,
|
||||
sChozoStatuePartOAM_LegSeated,
|
||||
@ -461,6 +466,347 @@ static const struct FrameData* const sChozoStatueFrameDataPointers[16] = {
|
||||
sChozoStatuePartOAM_GlowIdle,
|
||||
};
|
||||
|
||||
static const struct FrameData* const sUnknownItemChozoStatueFrameDataPointers[16] = {
|
||||
static const struct FrameData* sUnknownItemChozoStatueFrameDataPointers[16] = {
|
||||
sUnknownItemChozoStatuePartOAM_LegStanding,
|
||||
sUnknownItemChozoStatuePartOAM_LegSitting,
|
||||
sUnknownItemChozoStatuePartOAM_LegSeated,
|
||||
sUnknownItemChozoStatueOAM_Idle,
|
||||
sUnknownItemChozoStatuePartOAM_EyeOpened,
|
||||
sUnknownItemChozoStatuePartOAM_EyeClosing,
|
||||
sUnknownItemChozoStatuePartOAM_EyeOpening,
|
||||
sUnknownItemChozoStatuePartOAM_EyeClosed,
|
||||
sUnknownItemChozoStatuePartOAM_ArmIdle,
|
||||
sUnknownItemChozoStatuePartOAM_ArmGlow,
|
||||
sUnknownItemChozoStatuePartOAM_ArmSamusGrabbed,
|
||||
sChozoBallOAM_UnknownClosed,
|
||||
sChozoBallOAM_UnknownRevealed,
|
||||
sUnknownItemChozoStatueRefillOAM,
|
||||
sUnknownItemChozoStatuePartOAM_GlowIdle
|
||||
};
|
||||
|
||||
};
|
||||
static const struct FrameData* sKraidFrameDataPointers[38] = {
|
||||
sKraidOAM_MouthClosed,
|
||||
sKraidOAM_MouthClosedBlink,
|
||||
sKraidOAM_OpeningMouth,
|
||||
sKraidOAM_MouthOpened,
|
||||
sKraidOAM_Rising,
|
||||
sKraidOAM_ClosingMouth,
|
||||
sKraidPartOAM_2cac5c,
|
||||
sKraidPartOAM_LeftArmIdle,
|
||||
sKraidPartOAM_LeftArmDying,
|
||||
sKraidPartOAM_LeftArmThrowingNails,
|
||||
sKraidPartOAM_2cadc4,
|
||||
sKraidPartOAM_RightArmIdle,
|
||||
sKraidPartOAM_RightArmAttacking,
|
||||
sKraidPartOAM_RightArmDying,
|
||||
sKraidPartOAM_LeftFeetRising,
|
||||
sKraidPartOAM_LeftFeetIdle1,
|
||||
sKraidPartOAM_LeftFeetMovingRight,
|
||||
sKraidPartOAM_LeftFeetIdle2,
|
||||
sKraidPartOAM_LeftFeetMovedRight,
|
||||
sKraidPartOAM_LeftFeetMovingLeft,
|
||||
sKraidPartOAM_LeftFeetMovedLeft,
|
||||
sKraidPartOAM_RightFeetRising,
|
||||
sKraidPartOAM_RightFeetIdle1,
|
||||
sKraidPartOAM_RightFeetMovedRight,
|
||||
sKraidPartOAM_RightFeetIdle2,
|
||||
sKraidPartOAM_RightFeetMovingRight,
|
||||
sKraidPartOAM_RightFeetMovedLeft,
|
||||
sKraidPartOAM_RightFeetMovingLeft,
|
||||
sKraidPartOAM_TopHoleLeft,
|
||||
sKraidPartOAM_TopHoleRight,
|
||||
sKraidPartOAM_MiddleHoleLeft,
|
||||
sKraidPartOAM_MiddleHoleRight,
|
||||
sKraidPartOAM_BottomHoleLeft,
|
||||
sKraidPartOAM_BottomHoleRight,
|
||||
sKraidNailOAM,
|
||||
sKraidOAM_2cb29c,
|
||||
sKraidOAM_2cb2ac,
|
||||
sKraidSpikeOAM
|
||||
};
|
||||
|
||||
static const struct FrameData* sImagoLarvaFrameDataPointers[23] = {
|
||||
sImagoLarvaPartOAM_ShellAttacking,
|
||||
sImagoLarvaPartOAM_ShellIdle,
|
||||
sImagoLarvaPartOAM_ShellRetreating,
|
||||
sImagoLarvaPartOAM_ShellDying,
|
||||
sImagoLarvaPartOAM_ClawsAttacking,
|
||||
sImagoLarvaPartOAM_ClawsIdle,
|
||||
sImagoLarvaPartOAM_ClawsRetreating,
|
||||
sImagoLarvaPartOAM_ClawsTakingDamage,
|
||||
sImagoLarvaPartOAM_LeftDotAppearing,
|
||||
sImagoLarvaPartOAM_MiddleDotAppearing,
|
||||
sImagoLarvaPartOAM_RightDotAppearing,
|
||||
sImagoLarvaPartOAM_LeftDotVisible,
|
||||
sImagoLarvaPartOAM_MiddleDotVisible,
|
||||
sImagoLarvaPartOAM_RightDotVisible,
|
||||
sImagoLarvaPartOAM_LeftDotDisappearing,
|
||||
sImagoLarvaPartOAM_MiddleDotDisappearing,
|
||||
sImagoLarvaPartOAM_RightDotDisappearing,
|
||||
sImagoLarvaPartOAM_ShellWarning,
|
||||
sImagoLarvaOAM_Idle,
|
||||
sImagoLarvaPartOAM_ClawsWarningFirstPart,
|
||||
sImagoLarvaPartOAM_ClawsWarningSecondPart,
|
||||
sImagoLarvaOAM_Warning,
|
||||
sImagoLarvaPartOAM_ShellTakingDamage
|
||||
};
|
||||
|
||||
static const struct FrameData* sImagoCocoonFrameDataPointers[21] = {
|
||||
sImagoCocoonOAM_CeilingVineMotionless,
|
||||
sImagoCocoonOAM_CeilingVineMoving,
|
||||
sImagoCocoonOAM_CeilingVineBroken,
|
||||
sImagoCocoonOAM_DecorativeVinesLeft,
|
||||
sImagoCocoonOAM_DecorativeVinesRight,
|
||||
sImagoCocoonVineOAM_LeftMiddle,
|
||||
sImagoCocoonVineOAM_RightMiddle,
|
||||
sImagoCocoonVineOAM_LeftRight,
|
||||
sImagoCocoonVineOAM_RightRight,
|
||||
sImagoCocoonVineOAM_LeftLeft,
|
||||
sImagoCocoonVineOAM_RightLeft,
|
||||
sImagoCocoonOAM_Idle,
|
||||
sImagoCocoonOAM_2e0bb0,
|
||||
sImagoCocoonOAM_Static,
|
||||
sImagoCocoonSporeOAM_Spawning,
|
||||
sImagoCocoonSpore_Nest,
|
||||
sImagoCocoonSpore_Moving,
|
||||
sImagoCocoonSpore_Exploding,
|
||||
sWingedRipperOAM_Moving,
|
||||
sWingedRipperOAM_TurningAround,
|
||||
sDefeatedImagoCocoonOAM
|
||||
};
|
||||
|
||||
static const struct FrameData* sRidleyFrameDataPointers[33] = {
|
||||
sRidleyOAM_Idle,
|
||||
sRidleyOAM_SpittingFireballs,
|
||||
sRidleyOAM_TurningAroundFirstPart,
|
||||
sRidleyOAM_TurningAroundSecondPart,
|
||||
sRidleyPartOAM_HeadIdle,
|
||||
sRidleyPartOAM_OpeningMouth,
|
||||
sRidleyPartOAM_MouthOpened,
|
||||
sRidleyPartOAM_HeadDying,
|
||||
sRidleyPartOAM_HeadTurningAround,
|
||||
sRidleyPartOAM_ClawIdle,
|
||||
sRidleyPartOAM_ClawSpittingFireballs,
|
||||
sRidleyPartOAM_ClawTurningAroundFirstPart,
|
||||
sRidleyPartOAM_ClawTurningAroundSecondPart,
|
||||
sRidleyPartOAM_ClawCarryingSamus,
|
||||
sRidleyPartOAM_ClawLiftingSamus,
|
||||
sRidleyPartOAM_ClawSamusLifted,
|
||||
sRidleyPartOAM_ClawReleasingSamus,
|
||||
sRidleyPartOAM_LeftWingIdle,
|
||||
sRidleyPartOAM_RightWingIdle,
|
||||
sRidleyPartOAM_LeftWing_Unused,
|
||||
sRidleyPartOAM_RightWing_Unused,
|
||||
sRidleyPartOAM_LeftWingSpittingFireballs,
|
||||
sRidleyPartOAM_RightWingSpittingFireballs,
|
||||
sRidleyTailOAM_Part,
|
||||
sRidleyTailOAM_TipPointingDown,
|
||||
sRidleyTailOAM_TipPointingUp,
|
||||
sRidleyTailOAM_TipPointingDiagonallyDownRight,
|
||||
sRidleyTailOAM_TipPointingDiagonallyUpRight,
|
||||
sRidleyTailOAM_TipPointingDiagonallyDownLeft,
|
||||
sRidleyTailOAM_TipPointingDiagonallyUpLeft,
|
||||
sRidleyOAM_Square,
|
||||
sRidleyFireballOAM_Small,
|
||||
sRidleyFireballOAM_Big
|
||||
};
|
||||
|
||||
static const u8 sAtomicDynamicPaletteData[33][2] = {
|
||||
{ 0, 4 },
|
||||
{ 2, 4 },
|
||||
{ 0, 4 },
|
||||
{ 2, 4 },
|
||||
{ 0, 4 },
|
||||
{ 2, 4 },
|
||||
{ 0, 4 },
|
||||
{ 2, 4 },
|
||||
{ 3, 4 },
|
||||
{ 2, 4 },
|
||||
{ 3, 4 },
|
||||
{ 2, 4 },
|
||||
{ 3, 4 },
|
||||
{ 2, 4 },
|
||||
{ 3, 4 },
|
||||
{ 2, 4 },
|
||||
{ 3, 2 },
|
||||
{ 2, 2 },
|
||||
{ 3, 2 },
|
||||
{ 2, 2 },
|
||||
{ 3, 2 },
|
||||
{ 2, 2 },
|
||||
{ 3, 2 },
|
||||
{ 2, 2 },
|
||||
{ 3, 2 },
|
||||
{ 2, 2 },
|
||||
{ 3, 2 },
|
||||
{ 2, 2 },
|
||||
{ 3, 2 },
|
||||
{ 2, 2 },
|
||||
{ 3, 2 },
|
||||
{ 2, 2 },
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
static const struct FrameData* sMotheBrainFrameDataPointers[10] = {
|
||||
sMotherBrainOAM_Idle,
|
||||
sMotherBrainOAM_ChargingBeam,
|
||||
sMotherBrainPartOAM_EyeClosed,
|
||||
sMotherBrainPartOAM_2fa934,
|
||||
sMotherBrainPartOAM_EyeOpening,
|
||||
sMotherBrainPartOAM_2fa984,
|
||||
sMotherBrainPartOAM_EyeDying,
|
||||
sMotherBrainPartOAM_Bottom,
|
||||
sMotherBrainPartOAM_BeamSpawning,
|
||||
sMotherBrainBeamOAM_Moving
|
||||
};
|
||||
|
||||
static const struct FrameData* sTangleVineFrameDataPointers[13] = {
|
||||
sTangleVineTallOAM_OnGround,
|
||||
sTangleVineMediumOAM_OnGround,
|
||||
sTangleVineShortOAM_OnGround,
|
||||
sTangleVineCurvedOAM_OnGround,
|
||||
sTangleVineTallOAM_OnCeiling,
|
||||
sTangleVineMediumOAM_OnCeiling,
|
||||
sTangleVineShortOAM_OnCeiling,
|
||||
sTangleVineCurvedOAM_OnCeiling,
|
||||
sTangleVineGerutaPartOAM_Grip,
|
||||
sTangleVineGerutaOAM_Root,
|
||||
sTangleVineGerutaOAM_Full,
|
||||
sTangleVineRedGerutaOAM,
|
||||
sTangleVineGerutaPartOAM_Geruta
|
||||
};
|
||||
|
||||
static const struct FrameData* sImagoFrameDataPointers[17] = {
|
||||
sImagoPartOAM_BodyIdle,
|
||||
sImagoPartOAM_BodyGrowling,
|
||||
sImagoOAM_BrokenStinger,
|
||||
sImagoPartOAM_LeftWingIdle,
|
||||
sImagoPartOAM_LeftWingShootingNeedles,
|
||||
sImagoPartOAM_LeftWingDying,
|
||||
sImagoPartOAM_RightWingIdle,
|
||||
sImagoPartOAM_RightWingShootingNeedles,
|
||||
sImagoPartOAM_RIghtWingDying,
|
||||
sImagoPartOAM_Core,
|
||||
simagoOAM_Flying,
|
||||
sImagoOAM_ShootingNeedles,
|
||||
sImagoOAM_RechargingNeedles,
|
||||
sImagoDamagedStingerOAM,
|
||||
sImagoNeedleOAM,
|
||||
sImagoDamagedStingerOAM_Unused,
|
||||
sImagoEggOAM_Breaking
|
||||
};
|
||||
|
||||
static const struct FrameData* sCrocomireFrameDataPointers[25] = {
|
||||
sCrocomirePartOAM_BodyIdle,
|
||||
sCrocomirePartOAM_BodyAngry,
|
||||
sCrocomireOAM_Idle,
|
||||
sCrocomireOAM_Screaming,
|
||||
sCrocomireOAM_Dying,
|
||||
sCrocomirePartOAM_RightArmIdle,
|
||||
sCrocomirePartOAM_LeftArmIdle,
|
||||
sCrocomirePartOAM_LeftArmScreaming,
|
||||
sCrocomirePartOAM_RightArmWalkingForward,
|
||||
sCrocomirePartOAM_LeftArmWalkingForward,
|
||||
sCrocomirePartOAM_RightArmWalkingBackwards,
|
||||
sCrocomirePartOAM_LeftArmWalkingBackwards,
|
||||
sCrocomirePartOAM_RightArmDying,
|
||||
sCrocomirePartOAM_LeftArmDying,
|
||||
sCrocomirePartOAM_LegsIdle,
|
||||
sCrocomirePartOAM_LegsWalkingForward,
|
||||
sCrocomirePartOAM_LegsWalkingBackwards,
|
||||
sCrocomirePartOAM_LegsDying,
|
||||
sCrocomirePartOAM_Tongue,
|
||||
sCrocomirePartOAM_TongueDying,
|
||||
sCrocomireProjectileOAM,
|
||||
sCrocomirePartOAM_307028,
|
||||
sCrocomirePartOAM_307058,
|
||||
sCrocomirePartOAM_307088,
|
||||
sCrocomirePartOAM_3070b8,
|
||||
};
|
||||
|
||||
static const struct FrameData* sMechaRidleyFrameDataPointers[63] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
static const ProjFunc_T sProcessProjectileFunctionPointers[16] = {
|
||||
[PROJ_TYPE_BEAM] = ProjectileProcessNormalBeam,
|
||||
[PROJ_TYPE_LONG_BEAM] = ProjectileProcessLongBeam,
|
||||
[PROJ_TYPE_ICE_BEAM] = ProjectileProcessIceBeam,
|
||||
[PROJ_TYPE_WAVE_BEAM] = ProjectileProcessWaveBeam,
|
||||
[PROJ_TYPE_PLASMA_BEAM] = ProjectileProcessPlasmaBeam,
|
||||
[PROJ_TYPE_PISTOL] = ProjectileProcessPistol,
|
||||
[PROJ_TYPE_CHARGED_BEAM] = ProjectileProcessChargedNormalBeam,
|
||||
[PROJ_TYPE_CHARGED_LONG_BEAM] = ProjectileProcessChargedLongBeam,
|
||||
[PROJ_TYPE_CHARGED_ICE_BEAM] = ProjectileProcessChargedIceBeam,
|
||||
[PROJ_TYPE_CHARGED_WAVE_BEAM] = ProjectileProcessChargedWaveBeam,
|
||||
[PROJ_TYPE_CHARGED_PLASMA_BEAM] = ProjectileProcessChargedPlasmaBeam,
|
||||
[PROJ_TYPE_CHARGED_PISTOL] = ProjectileProcessChargedPistol,
|
||||
[PROJ_TYPE_MISSILE] = ProjectileProcessMissile,
|
||||
[PROJ_TYPE_SUPER_MISSILE] = ProjectileProcessSuperMissile,
|
||||
[PROJ_TYPE_BOMB] = ProjectileProcessBomb,
|
||||
[PROJ_TYPE_POWER_BOMB] = ProjectileProcessPowerBomb
|
||||
};
|
||||
|
||||
static const ParticleFunc_T sProcessParticleFunctionPointers[61] = {
|
||||
[PE_SPRITE_SPLASH_WATER_SMALL] = ParticleSpriteSplashWaterSmall,
|
||||
[PE_SPRITE_SPLASH_WATER_BIG] = ParticleSpriteSplashWaterBig,
|
||||
[PE_SPRITE_SPLASH_WATER_HUGE] = ParticleSpriteSplashWaterHuge,
|
||||
[PE_SPRITE_SPLASH_LAVA_SMALL] = ParticleSpriteSplashLavaSmall,
|
||||
[PE_SPRITE_SPLASH_LAVA_BIG] = ParticleSpriteSplashLavaBig,
|
||||
[PE_SPRITE_SPLASH_LAVA_HUGE] = ParticleSpriteSplashLavaHuge,
|
||||
[PE_SPRITE_SPLASH_ACID_SMALL] = ParticleSpriteSplashAcidSmall,
|
||||
[PE_SPRITE_SPLASH_ACID_BIG] = ParticleSpriteSplashAcidBig,
|
||||
[PE_SPRITE_SPLASH_ACID_HUGE] = ParticleSpriteSplashAcidHuge,
|
||||
[PE_SHOOTING_BEAM_LEFT] = ParticleShootingBeamLeft,
|
||||
[PE_SHOOTING_BEAM_DIAG_UP_LEFT] = ParticleShootingBeamDiagUpLeft,
|
||||
[PE_SHOOTING_BEAM_DIAG_DOWN_LEFT] = ParticleShootingBeamDiagDownLeft,
|
||||
[PE_SHOOTING_BEAM_UP_LEFT] = ParticleShootingBeamUpLeft,
|
||||
[PE_SHOOTING_BEAM_DOWN_LEFT] = ParticleShootingBeamDiagDownLeft,
|
||||
[PE_SHOOTING_BEAM_RIGHT] = ParticleShootingBeamRight,
|
||||
[PE_SHOOTING_BEAM_DIAG_UP_RIGHT] = ParticleShootingBeamDiagUpRight,
|
||||
[PE_SHOOTING_BEAM_DIAG_DOWN_RIGHT] = ParticleShootingBeamDiagDownRight,
|
||||
[PE_SHOOTING_BEAM_UP_RIGHT] = ParticleShootingBeamDiagUpRight,
|
||||
[PE_SHOOTING_BEAM_DOWN_RIGHT] = ParticleShootingBeamDownRight,
|
||||
[PE_BOMB] = ParticleBomb,
|
||||
[PE_MISSILE_TRAIL] = ParticleMissileTrail,
|
||||
[PE_SUPER_MISSILE_TRAIL] = ParticleSuperMissileTrail,
|
||||
[PE_BEAM_TRAILING_RIGHT] = ParticleBeamTrailingRight,
|
||||
[PE_BEAM_TRAILING_LEFT] = ParticleBeamTrailingLeft,
|
||||
[PE_CHARGED_LONG_BEAM_TRAIL] = ParticleChargedLongBeamTrail,
|
||||
[PE_CHARGED_ICE_BEAM_TRAIL] = ParticleChargedIceBeamTrail,
|
||||
[PE_CHARGED_WAVE_BEAM_TRAIL] = ParticleChargedWaveBeamTrail,
|
||||
[PE_CHARGED_PLASMA_BEAM_TRAIL] = ParticleChargedPlasmaBeamTrail,
|
||||
[PE_CHARGED_FULL_BEAM_TRAIL] = ParticleChargedFullBeamTrail,
|
||||
[PE_CHARGED_PISTOL_TRAIL] = ParticleChargedPistolTrail,
|
||||
[PE_SPRITE_EXPLOSION_HUGE] = ParticleSpriteExplosionHuge,
|
||||
[PE_SPRITE_EXPLOSION_SMALL] = ParticleSpriteExplosionSmall,
|
||||
[PE_SPRITE_EXPLOSION_MEDIUM] = ParticleSpriteExplosionMedium,
|
||||
[PE_SPRITE_EXPLOSION_BIG] = ParticleSpriteExplosionBig,
|
||||
[PE_SPRITE_EXPLOSION_SINGLE_THEN_BIG] = ParticleSpriteExplosionSingleThenBig,
|
||||
[PE_SCREW_ATTACK_DESTROYED] = ParticleScrewAttackDestroyed,
|
||||
[PE_SHINESPARK_DESTROYED] = ParticleShinesparkDestroyed,
|
||||
[PE_SUDO_SCREW_DESTROYED] = ParticleSudoScrewDestroyed,
|
||||
[PE_SPEEDBOOSTER_DESTROYED] = ParticleSpeedboosterDestroyed,
|
||||
[PE_MAIN_BOSS_DEATH] = ParticleMainBossDeath,
|
||||
[PE_FREEZING_SPRITE_WITH_ICE] = ParticleFreezingSpriteWithIce,
|
||||
[PE_FREEZING_SPRITE_WITH_CHARGED_ICE] = ParticleFreezingSpriteWithChargedIce,
|
||||
[PE_HITTING_SOMETHING_WITH_BASE_BEAM] = ParticleHittingSomethingWithBaseBeam,
|
||||
[PE_HITTING_SOMETHING_WITH_LONG_BEAM] = ParticleHittingSomethingWithLongBeam,
|
||||
[PE_HITTING_SOMETHING_WITH_ICE_BEAM] = ParticleHittingSomethingWithIceBeam,
|
||||
[PE_HITTING_SOMETHING_WITH_WAVE_BEAM] = ParticleHittingSomethingWithWaveBeam,
|
||||
[PE_HITTING_SOMETHING_WITH_PLASMA_BEAM] = ParticleHittingSomethingWithPlasmaBeam,
|
||||
[PE_HITTING_SOMETHING_INVINCIBLE] = ParticleHittingSomethingInvincible,
|
||||
[PE_HITTING_SOMETHING_WITH_MISSILE] = ParticleHittingSomethingWithMissile,
|
||||
[PE_HITTING_SOMETHING_WITH_SUPER_MISSILE] = ParticleHittingSomethingWithSuperMissile,
|
||||
[PE_HITTING_SOMETHING_WITH_FULL_BEAM_NO_PLASMA] = ParticleHittingSomethingWithFullBeamNoPlasma,
|
||||
[PE_HITTING_SOMETHING_WITH_FULL_BEAM] = ParticleHittingSomethingWithFullBeam,
|
||||
[PE_SMALL_DUST] = ParticleSmallDust,
|
||||
[PE_MEDIUM_DUST] = ParticleMediumDust,
|
||||
[PE_TWO_MEDIUM_DUST] = ParticleTwoMediumDust,
|
||||
[PE_SECOND_SMALL_DUST] = ParticleSecondSmallDust,
|
||||
[PE_SECOND_MEDIUM_DUST] = ParticleSecondMediumDust,
|
||||
[PE_SECOND_TWO_MEDIUM_DUST] = ParticleSecondTwoMediumDust,
|
||||
[PE_SAMUS_REFLECTION] = ParticleSamusReflection,
|
||||
[PE_CHARGING_BEAM] = ParticleChargingBeam,
|
||||
[PE_ESCAPE] = ParticleEscape,
|
||||
};
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include "screen_shake.h"
|
||||
#include "music.h"
|
||||
#include "../data/data.h"
|
||||
#include "data/pointers.h"
|
||||
#include "globals.h"
|
||||
|
||||
/**
|
||||
@ -126,31 +127,28 @@ void ParticleDraw(struct ParticleEffect* pParticle)
|
||||
*/
|
||||
void ParticleProcessAll(void)
|
||||
{
|
||||
/*struct ParticleEffect* pParticle;
|
||||
struct ParticleEffect* pParticle;
|
||||
u8 status;
|
||||
|
||||
if (gGameModeSub1 != 0x2 && (gGameModeSub1 == 0x1 || gGameModeSub1 == 0x3))
|
||||
{
|
||||
pParticle = gParticleEffects;
|
||||
while (pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES)
|
||||
for (pParticle = gParticleEffects; pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES; pParticle++)
|
||||
{
|
||||
if (pParticle->status & PARTICLE_STATUS_EXISTS && pParticle->effect == PE_ESCAPE) // Probably a priority system
|
||||
{
|
||||
process_particle_functions_pointer[pParticle->effect](pParticle); // Call subroutine
|
||||
sProcessParticleFunctionPointers[pParticle->effect](pParticle); // Call subroutine
|
||||
if ((pParticle->status & PARTICLE_STATUS_EXISTS) != 0x0)
|
||||
ParticleDraw(pParticle);
|
||||
}
|
||||
pParticle++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pParticle = gParticleEffects;
|
||||
while (pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES)
|
||||
for (pParticle = gParticleEffects; pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES; pParticle++)
|
||||
{
|
||||
if ((pParticle->status & (PARTICLE_STATUS_EXISTS | PARTICLE_STATUS_EXPLOSION)) == (PARTICLE_STATUS_EXISTS | PARTICLE_STATUS_EXPLOSION))
|
||||
{
|
||||
process_particle_functions_pointer[pParticle->effect](pParticle); // Call subroutine
|
||||
sProcessParticleFunctionPointers[pParticle->effect](pParticle); // Call subroutine
|
||||
if ((pParticle->status & PARTICLE_STATUS_EXISTS) != 0x0)
|
||||
{
|
||||
ParticleCheckOnScreen(pParticle);
|
||||
@ -159,15 +157,13 @@ void ParticleProcessAll(void)
|
||||
ParticleDraw(pParticle);
|
||||
}
|
||||
}
|
||||
pParticle++;
|
||||
}
|
||||
|
||||
pParticle = gParticleEffects;
|
||||
while (pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES)
|
||||
|
||||
for (pParticle = gParticleEffects; pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES; pParticle++)
|
||||
{
|
||||
if ((pParticle->status & (PARTICLE_STATUS_EXISTS | PARTICLE_STATUS_EXPLOSION)) == PARTICLE_STATUS_EXISTS)
|
||||
{
|
||||
process_particle_functions_pointer[pParticle->effect](pParticle); // Call subroutine
|
||||
sProcessParticleFunctionPointers[pParticle->effect](pParticle); // Call subroutine
|
||||
if (pParticle->status & PARTICLE_STATUS_EXISTS)
|
||||
{
|
||||
ParticleCheckOnScreen(pParticle);
|
||||
@ -176,10 +172,9 @@ void ParticleProcessAll(void)
|
||||
ParticleDraw(pParticle);
|
||||
}
|
||||
}
|
||||
pParticle++;
|
||||
}
|
||||
EscaepUpdateTimer();
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -289,7 +284,7 @@ void ParticleSetCurrentOAMFramePointer(struct ParticleEffect* pParticle, struct
|
||||
*
|
||||
* @param pParticle Particle Effect Pointer
|
||||
*/
|
||||
void ParticleSpriteSplashSmall(struct ParticleEffect* pParticle)
|
||||
void ParticleSpriteSplashWaterSmall(struct ParticleEffect* pParticle)
|
||||
{
|
||||
pParticle->frameCounter++;
|
||||
if (ParticleUpdateAnimation(pParticle, particle_sprite_splash_water_small_oam))
|
||||
|
@ -112,7 +112,7 @@ void ParticleProcessAll(void);
|
||||
void ParticleSet(u16 yPosition, u16 xPosition, u8 effect);
|
||||
u8 ParticleUpdateAnimation(struct ParticleEffect* pParticle, struct FrameData* pOam);
|
||||
void ParticleSetCurrentOAMFramePointer(struct ParticleEffect* pParticle, struct FrameData* pOam);
|
||||
void ParticleSpriteSplashSmall(struct ParticleEffect* pParticle);
|
||||
void ParticleSpriteSplashWaterSmall(struct ParticleEffect* pParticle);
|
||||
void ParticleSpriteSplashWaterBig(struct ParticleEffect* pParticle);
|
||||
void ParticleSpriteSplashWaterHuge(struct ParticleEffect* pParticle);
|
||||
void ParticleSpriteSplashLavaSmall(struct ParticleEffect* pParticle);
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include "music.h"
|
||||
#include "game_modes.h"
|
||||
#include "../data/data.h"
|
||||
#include "data/pointers.h"
|
||||
#include "globals.h"
|
||||
|
||||
void ProjectileSetBeamParticleEffect(void)
|
||||
@ -428,7 +429,7 @@ void ProjectileUpdate(void)
|
||||
{
|
||||
if (pProj->status & PROJ_STATUS_EXISTS)
|
||||
{
|
||||
process_projectile_functions_pointers[pProj->type](pProj);
|
||||
sProcessProjectileFunctionPointers[pProj->type](pProj);
|
||||
ProjectileUpdateAnimation(pProj);
|
||||
ProjectileCheckDespawn(pProj);
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ struct ProjectileData {
|
||||
|
||||
// Typedef
|
||||
|
||||
typedef (*ProjFunc_T)(struct ProjectileData*);
|
||||
typedef void (*ProjFunc_T)(struct ProjectileData*);
|
||||
|
||||
// Functions
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "crocomire.h"
|
||||
#include "../../data/data.h"
|
||||
#include "../data/pointers.h"
|
||||
#include "../globals.h"
|
||||
|
||||
const i16 sCrocomireMultiSpriteData_Idle_Frame0[18] = {
|
||||
@ -1255,9 +1256,28 @@ const struct FrameData sCrocomirePartOAM_3070b8[6] = {
|
||||
0x0
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief 43d88 | 68 | Synchronize the sub sprites of Crocomire
|
||||
*
|
||||
*/
|
||||
void CrocomireSyncSubSprites(void)
|
||||
{
|
||||
u16 (*pData)[3];
|
||||
u32 offset;
|
||||
|
||||
pData = (u16(*)[3])gSubSpriteData1.pMultiOam[gSubSpriteData1.currentAnimationFrame].pFrame;
|
||||
offset = pData[gCurrentSprite.roomSlot][0];
|
||||
|
||||
if (gCurrentSprite.pOam != sCrocomireFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = sCrocomireFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = gSubSpriteData1.yPosition + pData[gCurrentSprite.roomSlot][1];
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition + pData[gCurrentSprite.roomSlot][2];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -18,6 +18,34 @@
|
||||
#define CROCOMIRE_PART_POSE_IDLE 0x9
|
||||
#define CROCOMIRE_PART_POSE_DYING 0x67
|
||||
|
||||
|
||||
extern const struct FrameData sCrocomirePartOAM_BodyIdle[5];
|
||||
extern const struct FrameData sCrocomirePartOAM_BodyAngry[5];
|
||||
extern const struct FrameData sCrocomireOAM_Idle[5];
|
||||
extern const struct FrameData sCrocomireOAM_Screaming[9];
|
||||
extern const struct FrameData sCrocomireOAM_Dying[3];
|
||||
extern const struct FrameData sCrocomirePartOAM_RightArmIdle[5];
|
||||
extern const struct FrameData sCrocomirePartOAM_LeftArmIdle[5];
|
||||
extern const struct FrameData sCrocomirePartOAM_LeftArmScreaming[3];
|
||||
extern const struct FrameData sCrocomirePartOAM_RightArmWalkingForward[18];
|
||||
extern const struct FrameData sCrocomirePartOAM_LeftArmWalkingForward[18];
|
||||
extern const struct FrameData sCrocomirePartOAM_RightArmWalkingBackwards[18];
|
||||
extern const struct FrameData sCrocomirePartOAM_LeftArmWalkingBackwards[18];
|
||||
extern const struct FrameData sCrocomirePartOAM_RightArmDying[3];
|
||||
extern const struct FrameData sCrocomirePartOAM_LeftArmDying[3];
|
||||
extern const struct FrameData sCrocomirePartOAM_LegsIdle[3];
|
||||
extern const struct FrameData sCrocomirePartOAM_LegsWalkingForward[8];
|
||||
extern const struct FrameData sCrocomirePartOAM_LegsWalkingBackwards[9];
|
||||
extern const struct FrameData sCrocomirePartOAM_LegsDying[7];
|
||||
extern const struct FrameData sCrocomirePartOAM_Tongue[5];
|
||||
extern const struct FrameData sCrocomirePartOAM_TongueDying[5];
|
||||
extern const struct FrameData sCrocomireProjectileOAM[2];
|
||||
extern const struct FrameData sCrocomirePartOAM_307028[6];
|
||||
extern const struct FrameData sCrocomirePartOAM_307058[6];
|
||||
extern const struct FrameData sCrocomirePartOAM_307088[6];
|
||||
extern const struct FrameData sCrocomirePartOAM_3070b8[6];
|
||||
|
||||
|
||||
void CrocomireSyncSubSprites(void);
|
||||
void CrocomireInit(void);
|
||||
void CrocomireIdleInit(void);
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "imago.h"
|
||||
#include "../../data/data.h"
|
||||
#include "../data/pointers.h"
|
||||
#include "../globals.h"
|
||||
|
||||
const i16 sImagoMultiSpriteData_Idle_Frame0[21] = {
|
||||
@ -930,7 +931,25 @@ const struct FrameData sImagoEggOAM_Standing[2] = {
|
||||
|
||||
void ImagoSyncSubSprites(void)
|
||||
{
|
||||
u16 (*pData)[3];
|
||||
u32 offset;
|
||||
|
||||
pData = (u16(*)[3])gSubSpriteData1.pMultiOam[gSubSpriteData1.currentAnimationFrame].pFrame;
|
||||
offset = pData[gCurrentSprite.roomSlot][0];
|
||||
|
||||
if (gCurrentSprite.pOam != sImagoFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = sImagoFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = gSubSpriteData1.yPosition + pData[gCurrentSprite.roomSlot][1];
|
||||
|
||||
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition - pData[gCurrentSprite.roomSlot][2];
|
||||
else
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition + pData[gCurrentSprite.roomSlot][2];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,6 +58,26 @@
|
||||
#define IMAGO_EGG_PART_NORMAL 0x0
|
||||
#define IMAGO_EGG_PART_LAST 0x80
|
||||
|
||||
|
||||
extern const struct FrameData sImagoPartOAM_BodyIdle[8];
|
||||
extern const struct FrameData sImagoPartOAM_BodyGrowling[16];
|
||||
extern const struct FrameData sImagoOAM_BrokenStinger[3];
|
||||
extern const struct FrameData sImagoPartOAM_LeftWingIdle[8];
|
||||
extern const struct FrameData sImagoPartOAM_LeftWingShootingNeedles[6];
|
||||
extern const struct FrameData sImagoPartOAM_LeftWingDying[7];
|
||||
extern const struct FrameData sImagoPartOAM_RightWingIdle[8];
|
||||
extern const struct FrameData sImagoPartOAM_RightWingShootingNeedles[6];
|
||||
extern const struct FrameData sImagoPartOAM_RIghtWingDying[5];
|
||||
extern const struct FrameData sImagoPartOAM_Core[9];
|
||||
extern const struct FrameData simagoOAM_Flying[9];
|
||||
extern const struct FrameData sImagoOAM_ShootingNeedles[11];
|
||||
extern const struct FrameData sImagoOAM_RechargingNeedles[4];
|
||||
extern const struct FrameData sImagoDamagedStingerOAM[2];
|
||||
extern const struct FrameData sImagoNeedleOAM[2];
|
||||
extern const struct FrameData sImagoDamagedStingerOAM_Unused[9];
|
||||
extern const struct FrameData sImagoEggOAM_Breaking[10];
|
||||
extern const struct FrameData sImagoEggOAM_Standing[2];
|
||||
|
||||
void ImagoSyncSubSprites(void);
|
||||
void ImagoShootNeedles(void);
|
||||
void ImagoCoreFlashingAnim(void);
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "imago_cocoon.h"
|
||||
#include "../../data/data.h"
|
||||
#include "../data/pointers.h"
|
||||
#include "../globals.h"
|
||||
|
||||
const i16 sImagoCocoonMultiSpriteData_Idle_Frame0[30] = {
|
||||
@ -881,7 +882,7 @@ const struct FrameData sImagoCocoonVineOAM_LeftMiddle[5] = {
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sImagoCocoonVineOAM_RIghtMiddle[5] = {
|
||||
const struct FrameData sImagoCocoonVineOAM_RightMiddle[5] = {
|
||||
sImagoCocoonVineOAM_RightMiddle_Frame0,
|
||||
0x6,
|
||||
sImagoCocoonVineOAM_RightMiddle_Frame1,
|
||||
@ -1089,9 +1090,27 @@ const struct FrameData sDefeatedImagoCocoonOAM[9] = {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief 26c38 | 68 | Sync the sub sprites of Imago cocoon
|
||||
*
|
||||
*/
|
||||
void ImagoCocoonSyncSprites(void)
|
||||
{
|
||||
u16 (*pData)[3];
|
||||
u32 offset;
|
||||
|
||||
pData = (u16(*)[3])gSubSpriteData1.pMultiOam[gSubSpriteData1.currentAnimationFrame].pFrame;
|
||||
offset = pData[gCurrentSprite.roomSlot][0];
|
||||
|
||||
if (gCurrentSprite.pOam != sImagoCocoonFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = sImagoCocoonFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = gSubSpriteData1.yPosition + pData[gCurrentSprite.roomSlot][1];
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition + pData[gCurrentSprite.roomSlot][2];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -60,6 +60,31 @@
|
||||
#define WINGED_RIPPER_POSE_MOVING_INIT 0x8
|
||||
#define WINGED_RIPPER_POSE_MOVING 0x9
|
||||
|
||||
|
||||
|
||||
extern const struct FrameData sImagoCocoonOAM_CeilingVineMotionless[5];
|
||||
extern const struct FrameData sImagoCocoonOAM_CeilingVineMoving[10];
|
||||
extern const struct FrameData sImagoCocoonOAM_CeilingVineBroken[2];
|
||||
extern const struct FrameData sImagoCocoonOAM_DecorativeVinesLeft[6];
|
||||
extern const struct FrameData sImagoCocoonOAM_DecorativeVinesRight[6];
|
||||
extern const struct FrameData sImagoCocoonVineOAM_LeftMiddle[5];
|
||||
extern const struct FrameData sImagoCocoonVineOAM_RightMiddle[5];
|
||||
extern const struct FrameData sImagoCocoonVineOAM_LeftRight[5];
|
||||
extern const struct FrameData sImagoCocoonVineOAM_RightRight[5];
|
||||
extern const struct FrameData sImagoCocoonVineOAM_LeftLeft[5];
|
||||
extern const struct FrameData sImagoCocoonVineOAM_RightLeft[5];
|
||||
extern const struct FrameData sImagoCocoonOAM_Idle[5];
|
||||
extern const struct FrameData sImagoCocoonOAM_2e0bb0[2];
|
||||
extern const struct FrameData sImagoCocoonOAM_Static[2];
|
||||
extern const struct FrameData sImagoCocoonSporeOAM_Spawning[5];
|
||||
extern const struct FrameData sImagoCocoonSpore_Nest[4];
|
||||
extern const struct FrameData sImagoCocoonSpore_Moving[4];
|
||||
extern const struct FrameData sImagoCocoonSpore_Exploding[5];
|
||||
extern const struct FrameData sWingedRipperOAM_Moving[10];
|
||||
extern const struct FrameData sWingedRipperOAM_TurningAround[10];
|
||||
extern const struct FrameData sDefeatedImagoCocoonOAM[9];
|
||||
|
||||
|
||||
void ImagoCocoonSyncSprites(void);
|
||||
void ImagoCocoonChangeOneCCAA(u8 caa);
|
||||
void ImagoCocoonChangeTwoMiddleCCAA(u8 caa);
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "imago_larva.h"
|
||||
#include "../sprite_util.h" // sprite_util.h include is REQUIRED
|
||||
#include "../sprite_util.h" // sprite_util.h include required?
|
||||
#include "../../data/data.h"
|
||||
#include "../data/pointers.h"
|
||||
#include "../globals.h"
|
||||
|
||||
const i16 sImagoLarvaMultiSpriteData_Attacking_Frame0[18] = {
|
||||
@ -1566,9 +1567,33 @@ const struct FrameData sImagoLarvaPartOAM_ShellTakingDamage[5] = {
|
||||
0x0
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief 259a0 | 84 | Synchronize the sub sprites of an Imago larva
|
||||
*
|
||||
* @param pSub
|
||||
*/
|
||||
void ImagoLarvaSyncSubSprites(struct SubSpriteData* pSub)
|
||||
{
|
||||
u16 (*pData)[3];
|
||||
u32 offset;
|
||||
|
||||
pData = (u16(*)[3])pSub->pMultiOam[pSub->currentAnimationFrame].pFrame;
|
||||
offset = pData[gCurrentSprite.roomSlot][0];
|
||||
|
||||
if (gCurrentSprite.pOam != sImagoLarvaFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = sImagoLarvaFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = pSub->yPosition + pData[gCurrentSprite.roomSlot][1];
|
||||
|
||||
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
|
||||
gCurrentSprite.xPosition = pSub->xPosition - pData[gCurrentSprite.roomSlot][2];
|
||||
else
|
||||
gCurrentSprite.xPosition = pSub->xPosition + pData[gCurrentSprite.roomSlot][2];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -38,6 +38,31 @@
|
||||
#define IMAGO_LARVA_PART_SHELL 0x4
|
||||
#define IMAGO_LARVA_PART_LARVA 0x5
|
||||
|
||||
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ShellAttacking[12];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ShellIdle[5];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ShellRetreating[12];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ShellDying[9];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ClawsAttacking[5];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ClawsIdle[5];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ClawsRetreating[5];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ClawsTakingDamage[4];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_LeftDotAppearing[4];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_MiddleDotAppearing[4];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_RightDotAppearing[4];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_LeftDotVisible[2];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_MiddleDotVisible[2];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_RightDotVisible[2];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_LeftDotDisappearing[4];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_MiddleDotDisappearing[4];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_RightDotDisappearing[4];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ShellWarning[10];
|
||||
extern const struct FrameData sImagoLarvaOAM_Idle[9];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ClawsWarningFirstPart[3];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ClawsWarningSecondPart[3];
|
||||
extern const struct FrameData sImagoLarvaOAM_Warning[10];
|
||||
extern const struct FrameData sImagoLarvaPartOAM_ShellTakingDamage[5];
|
||||
|
||||
void ImagoLarvaSyncSubSprites(struct SubSpriteData* pSub);
|
||||
void ImagoLarvaUpdatePalette(void);
|
||||
void ImagoLarvaInit(struct SubSpriteData* pSub);
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "kraid.h"
|
||||
#include "../../data/data.h"
|
||||
#include "../data/pointers.h"
|
||||
#include "../globals.h"
|
||||
|
||||
const i16 sKraidMultiSpriteData_Rising_Frame0[36] = {
|
||||
@ -2615,9 +2616,27 @@ const struct FrameData sKraidSpikeOAM[9] = {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief 183d8 | 68 | Synchronize the sub sprites of Kraid
|
||||
*
|
||||
*/
|
||||
void KraidSyncSubSprites(void)
|
||||
{
|
||||
u16 (*pData)[3];
|
||||
u32 offset;
|
||||
|
||||
pData = (u16(*)[3])gSubSpriteData1.pMultiOam[gSubSpriteData1.currentAnimationFrame].pFrame;
|
||||
offset = pData[gCurrentSprite.roomSlot][0];
|
||||
|
||||
if (gCurrentSprite.pOam != sKraidFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = sKraidFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = gSubSpriteData1.yPosition + pData[gCurrentSprite.roomSlot][1];
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition + pData[gCurrentSprite.roomSlot][2];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -48,6 +48,48 @@
|
||||
#define KRAID_SPIKE_POSE_MOVING 0x23
|
||||
#define KRAID_SPIKE_POSE_IN_WALL 0x25
|
||||
|
||||
|
||||
extern const struct FrameData sKraidOAM_MouthClosed[6];
|
||||
extern const struct FrameData sKraidOAM_MouthClosedBlink[11];
|
||||
extern const struct FrameData sKraidOAM_OpeningMouth[9];
|
||||
extern const struct FrameData sKraidOAM_MouthOpened[7];
|
||||
extern const struct FrameData sKraidOAM_Rising[3];
|
||||
extern const struct FrameData sKraidOAM_ClosingMouth[5];
|
||||
extern const struct FrameData sKraidPartOAM_2cac5c[2];
|
||||
extern const struct FrameData sKraidPartOAM_LeftArmIdle[11];
|
||||
extern const struct FrameData sKraidPartOAM_LeftArmDying[11];
|
||||
extern const struct FrameData sKraidPartOAM_LeftArmThrowingNails[21];
|
||||
extern const struct FrameData sKraidPartOAM_2cadc4[2];
|
||||
extern const struct FrameData sKraidPartOAM_RightArmIdle[11];
|
||||
extern const struct FrameData sKraidPartOAM_RightArmAttacking[13];
|
||||
extern const struct FrameData sKraidPartOAM_RightArmDying[13];
|
||||
extern const struct FrameData sKraidPartOAM_LeftFeetRising[2];
|
||||
extern const struct FrameData sKraidPartOAM_LeftFeetIdle1[5];
|
||||
extern const struct FrameData sKraidPartOAM_LeftFeetMovingRight[8];
|
||||
extern const struct FrameData sKraidPartOAM_LeftFeetIdle2[5];
|
||||
extern const struct FrameData sKraidPartOAM_LeftFeetMovedRight[9];
|
||||
extern const struct FrameData sKraidPartOAM_LeftFeetMovingLeft[8];
|
||||
extern const struct FrameData sKraidPartOAM_LeftFeetMovedLeft[5];
|
||||
extern const struct FrameData sKraidPartOAM_RightFeetRising[2];
|
||||
extern const struct FrameData sKraidPartOAM_RightFeetIdle1[5];
|
||||
extern const struct FrameData sKraidPartOAM_RightFeetMovedRight[9];
|
||||
extern const struct FrameData sKraidPartOAM_RightFeetIdle2[5];
|
||||
extern const struct FrameData sKraidPartOAM_RightFeetMovingRight[8];
|
||||
extern const struct FrameData sKraidPartOAM_RightFeetMovedLeft[5];
|
||||
extern const struct FrameData sKraidPartOAM_RightFeetMovingLeft[8];
|
||||
extern const struct FrameData sKraidPartOAM_TopHoleLeft[5];
|
||||
extern const struct FrameData sKraidPartOAM_TopHoleRight[5];
|
||||
extern const struct FrameData sKraidPartOAM_MiddleHoleRight[5];
|
||||
extern const struct FrameData sKraidPartOAM_MiddleHoleLeft[5];
|
||||
extern const struct FrameData sKraidPartOAM_BottomHoleRight[5];
|
||||
extern const struct FrameData sKraidPartOAM_BottomHoleLeft[5];
|
||||
extern const struct FrameData sKraidNailOAM[2];
|
||||
extern const struct FrameData sKraidOAM_2cb29c[2];
|
||||
extern const struct FrameData sKraidOAM_2cb2ac[2];
|
||||
extern const struct FrameData sKraidSpikeOAM[9];
|
||||
|
||||
|
||||
|
||||
void KraidSyncSubSprites(void);
|
||||
void KraidCheckProjectilesCollidingWithBelly(void);
|
||||
void KraidOpenCloseRoutineAndProjectileCollision(void);
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "mother_brain.h"
|
||||
#include "../../data/data.h"
|
||||
#include "../data/pointers.h"
|
||||
#include "../globals.h"
|
||||
|
||||
const u16 sMotherBrainMultiSpriteData_Part0[12] = {
|
||||
@ -647,83 +648,29 @@ const struct FrameData sMotherBrainPartOAM_EyeClosing[4] = {
|
||||
0x0
|
||||
};
|
||||
|
||||
/*asm("
|
||||
.align 2, 0
|
||||
.global MotherBrainSyncSubSpritesPosition
|
||||
.thumb
|
||||
.type MotherBrainSyncSubSpritesPosition, %function
|
||||
MotherBrainSyncSubSpritesPosition: @ 0x0803c964
|
||||
push {r4, lr}
|
||||
ldr r4, lbl_0803c9c0 @ =0x0300070c
|
||||
ldrh r0, [r4, #4]
|
||||
ldr r1, [r4]
|
||||
lsl r0, r0, #3
|
||||
add r0, r0, r1
|
||||
ldr r3, [r0]
|
||||
ldr r2, lbl_0803c9c4 @ =0x03000738
|
||||
ldrb r1, [r2, #0x1e]
|
||||
lsl r0, r1, #1
|
||||
add r0, r0, r1
|
||||
lsl r0, r0, #1
|
||||
add r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
ldr r1, lbl_0803c9c8 @ =0x0875f774
|
||||
lsl r0, r0, #2
|
||||
add r0, r0, r1
|
||||
ldr r1, [r2, #0x18]
|
||||
ldr r0, [r0]
|
||||
cmp r1, r0
|
||||
beq lbl_0803c996
|
||||
str r0, [r2, #0x18]
|
||||
movs r0, #0
|
||||
strb r0, [r2, #0x1c]
|
||||
strh r0, [r2, #0x16]
|
||||
lbl_0803c996:
|
||||
ldrb r1, [r2, #0x1e]
|
||||
lsl r0, r1, #1
|
||||
add r0, r0, r1
|
||||
lsl r0, r0, #1
|
||||
add r0, r0, r3
|
||||
ldrh r0, [r0, #2]
|
||||
ldrh r1, [r4, #6]
|
||||
add r0, r0, r1
|
||||
strh r0, [r2, #2]
|
||||
ldrb r1, [r2, #0x1e]
|
||||
lsl r0, r1, #1
|
||||
add r0, r0, r1
|
||||
lsl r0, r0, #1
|
||||
add r0, r0, r3
|
||||
ldrh r0, [r0, #4]
|
||||
ldrh r4, [r4, #8]
|
||||
add r0, r0, r4
|
||||
strh r0, [r2, #4]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
lbl_0803c9c0: .4byte 0x0300070c
|
||||
lbl_0803c9c4: .4byte 0x03000738
|
||||
lbl_0803c9c8: .4byte 0x0875f774");*/
|
||||
|
||||
/*void MotherBrainSyncSubSpritesPosition(void)
|
||||
/**
|
||||
* @brief 3c964 | 68 | Synchronize the sub sprites of Mother Brain
|
||||
*
|
||||
*/
|
||||
void MotherBrainSyncSubSpritesPosition(void)
|
||||
{
|
||||
// Function doesn't match without the necessary data (which isn't currently available)
|
||||
const u16 (*pFrame)[3];
|
||||
u32 offset;
|
||||
|
||||
pFrame = (const u16 (*)[3])gSubSpriteData1.pMultiOam[gSubSpriteData1.currentAnimationFrame].pFrame;
|
||||
offset = pFrame[gCurrentSprite.roomSlot][0]; // Frame data ID
|
||||
|
||||
if (gCurrentSprite.pOam != ((const struct FrameData**)0x875f774)[offset])
|
||||
if (gCurrentSprite.pOam != sMotheBrainFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = ((const struct FrameData**)0x875f774)[offset];
|
||||
gCurrentSprite.pOam = sMotheBrainFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = gSubSpriteData1.yPosition + pFrame[gCurrentSprite.roomSlot][1]; // Y offset
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition + pFrame[gCurrentSprite.roomSlot][2]; // X offset
|
||||
}*/
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 3c9cc | 80 | Updates the palette of mother brain when firing
|
||||
|
@ -23,6 +23,20 @@
|
||||
#define MOTHER_BRAIN_PART_POSE_UPDATE 0x32
|
||||
#define MOTHER_BRAIN_PART_POSE_GLASS_BREAKING 0x62
|
||||
|
||||
|
||||
extern const struct FrameData sMotherBrainOAM_Idle[12];
|
||||
extern const struct FrameData sMotherBrainOAM_ChargingBeam[5];
|
||||
extern const struct FrameData sMotherBrainPartOAM_EyeClosed[12];
|
||||
extern const struct FrameData sMotherBrainPartOAM_2fa934[5];
|
||||
extern const struct FrameData sMotherBrainPartOAM_EyeOpening[5];
|
||||
extern const struct FrameData sMotherBrainPartOAM_2fa984[8];
|
||||
extern const struct FrameData sMotherBrainPartOAM_EyeDying[5];
|
||||
extern const struct FrameData sMotherBrainPartOAM_Bottom[7];
|
||||
extern const struct FrameData sMotherBrainPartOAM_BeamSpawning[5];
|
||||
extern const struct FrameData sMotherBrainBeamOAM_Moving[3];
|
||||
extern const struct FrameData sMotherBrainGlassBreakingOAM_Breaking[18];
|
||||
extern const struct FrameData sMotherBrainPartOAM_EyeClosing[4];
|
||||
|
||||
void MotherBrainSyncSubSpritesPosition(void);
|
||||
void MotherBrainUpdatePalette(void);
|
||||
void MotherBrainInit(void);
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "ridley.h"
|
||||
#include "../../data/data.h"
|
||||
#include "../data/pointers.h"
|
||||
#include "../globals.h"
|
||||
|
||||
const i16 sRidleyMultiSpriteData_Idle_Frame0[18] = {
|
||||
@ -1784,14 +1785,65 @@ const struct FrameData sRidleyFireballOAM_Big[2] = {
|
||||
0x0
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief 31aa4 | 9c | Synchronize the sub sprites of Ridley
|
||||
*
|
||||
*/
|
||||
void RidleySyncSubSprites(void)
|
||||
{
|
||||
u16 (*pData)[3];
|
||||
u32 offset;
|
||||
|
||||
pData = (u16(*)[3])gSubSpriteData1.pMultiOam[gSubSpriteData1.currentAnimationFrame].pFrame;
|
||||
offset = pData[gCurrentSprite.roomSlot][0];
|
||||
|
||||
if (gCurrentSprite.pOam != sRidleyFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = sRidleyFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = gSubSpriteData1.yPosition + pData[gCurrentSprite.roomSlot][1];
|
||||
|
||||
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition - pData[gCurrentSprite.roomSlot][2];
|
||||
else
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition + pData[gCurrentSprite.roomSlot][2];
|
||||
|
||||
if (gCurrentSprite.roomSlot == RIDLEY_PART_TAIL)
|
||||
{
|
||||
gSubSpriteData2.yPosition = gCurrentSprite.yPosition;
|
||||
gSubSpriteData2.xPosition = gCurrentSprite.xPosition;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 31b40 | 88 | Synchronize the sub sprites of the Ridley tail
|
||||
*
|
||||
*/
|
||||
void RidleyTailSyncSubSprites(void)
|
||||
{
|
||||
u16 (*pData)[3];
|
||||
u32 offset;
|
||||
|
||||
pData = (u16(*)[3])gSubSpriteData2.pMultiOam[gSubSpriteData2.currentAnimationFrame].pFrame;
|
||||
offset = pData[gCurrentSprite.roomSlot][0];
|
||||
|
||||
if (gCurrentSprite.pOam != sRidleyFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = sRidleyFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = gSubSpriteData2.yPosition + pData[gCurrentSprite.roomSlot][1];
|
||||
|
||||
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
|
||||
gCurrentSprite.xPosition = gSubSpriteData2.xPosition - pData[gCurrentSprite.roomSlot][2];
|
||||
else
|
||||
gCurrentSprite.xPosition = gSubSpriteData2.xPosition + pData[gCurrentSprite.roomSlot][2];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -104,6 +104,43 @@
|
||||
#define RIDLEY_FIREBALL_POSE_MOVE_DIAGONAL_PATTERN 0x29
|
||||
#define RIDLEY_FIREBALL_POSE_DESTROY 0x42
|
||||
|
||||
|
||||
|
||||
extern const struct FrameData sRidleyOAM_Idle[7];
|
||||
extern const struct FrameData sRidleyOAM_SpittingFireballs[5];
|
||||
extern const struct FrameData sRidleyOAM_TurningAroundFirstPart[3];
|
||||
extern const struct FrameData sRidleyOAM_TurningAroundSecondPart[3];
|
||||
extern const struct FrameData sRidleyPartOAM_HeadIdle[3];
|
||||
extern const struct FrameData sRidleyPartOAM_OpeningMouth[2];
|
||||
extern const struct FrameData sRidleyPartOAM_MouthOpened[3];
|
||||
extern const struct FrameData sRidleyPartOAM_HeadDying[5];
|
||||
extern const struct FrameData sRidleyPartOAM_HeadTurningAround[2];
|
||||
extern const struct FrameData sRidleyPartOAM_ClawIdle[7];
|
||||
extern const struct FrameData sRidleyPartOAM_ClawSpittingFireballs[5];
|
||||
extern const struct FrameData sRidleyPartOAM_ClawTurningAroundFirstPart[3];
|
||||
extern const struct FrameData sRidleyPartOAM_ClawTurningAroundSecondPart[3];
|
||||
extern const struct FrameData sRidleyPartOAM_ClawCarryingSamus[2];
|
||||
extern const struct FrameData sRidleyPartOAM_ClawLiftingSamus[6];
|
||||
extern const struct FrameData sRidleyPartOAM_ClawSamusLifted[2];
|
||||
extern const struct FrameData sRidleyPartOAM_ClawReleasingSamus[6];
|
||||
extern const struct FrameData sRidleyPartOAM_LeftWingIdle[11];
|
||||
extern const struct FrameData sRidleyPartOAM_RightWingIdle[11];
|
||||
extern const struct FrameData sRidleyPartOAM_LeftWing_Unused[11];
|
||||
extern const struct FrameData sRidleyPartOAM_RightWing_Unused[11];
|
||||
extern const struct FrameData sRidleyPartOAM_LeftWingSpittingFireballs[7];
|
||||
extern const struct FrameData sRidleyPartOAM_RightWingSpittingFireballs[7];
|
||||
extern const struct FrameData sRidleyTailOAM_Part[2];
|
||||
extern const struct FrameData sRidleyTailOAM_TipPointingDown[2];
|
||||
extern const struct FrameData sRidleyTailOAM_TipPointingUp[2];
|
||||
extern const struct FrameData sRidleyTailOAM_TipPointingDiagonallyDownRight[2];
|
||||
extern const struct FrameData sRidleyTailOAM_TipPointingDiagonallyUpRight[2];
|
||||
extern const struct FrameData sRidleyTailOAM_TipPointingDiagonallyDownLeft[2];
|
||||
extern const struct FrameData sRidleyTailOAM_TipPointingDiagonallyUpLeft[2];
|
||||
extern const struct FrameData sRidleyOAM_Square[2];
|
||||
extern const struct FrameData sRidleyFireballOAM_Small[2];
|
||||
extern const struct FrameData sRidleyFireballOAM_Big[2];
|
||||
|
||||
|
||||
void RidleySyncSubSprites(void);
|
||||
void RidleyTailSyncSubSprites(void);
|
||||
void RidleyIdleYFloatingMovement(void);
|
||||
|
88
src/sprites_AI/sprites.h
Normal file
88
src/sprites_AI/sprites.h
Normal file
@ -0,0 +1,88 @@
|
||||
#include "../src/sprites_AI/unused_sprites.h"
|
||||
#include "../src/sprites_AI/charge_beam.h"
|
||||
#include "../src/sprites_AI/deorem.h"
|
||||
#include "../src/sprites_AI/dragon.h"
|
||||
#include "../src/sprites_AI/elevator_pad.h"
|
||||
#include "../src/sprites_AI/enemy_drop.h"
|
||||
#include "../src/sprites_AI/explosion_zebes_escape.h"
|
||||
#include "../src/sprites_AI/geruta.h"
|
||||
#include "../src/sprites_AI/hive.h"
|
||||
#include "../src/sprites_AI/imago_cocoon.h"
|
||||
#include "../src/sprites_AI/map_station.h"
|
||||
#include "../src/sprites_AI/metroid.h"
|
||||
#include "../src/sprites_AI/item_banner.h"
|
||||
#include "../src/sprites_AI/zoomer.h"
|
||||
#include "../src/sprites_AI/zeela.h"
|
||||
#include "../src/sprites_AI/ripper.h"
|
||||
#include "../src/sprites_AI/zeb.h"
|
||||
#include "../src/sprites_AI/skree.h"
|
||||
#include "../src/sprites_AI/morph_ball.h"
|
||||
#include "../src/sprites_AI/chozo_statue.h"
|
||||
#include "../src/sprites_AI/sova.h"
|
||||
#include "../src/sprites_AI/multiviola.h"
|
||||
#include "../src/sprites_AI/squeept.h"
|
||||
#include "../src/sprites_AI/reo.h"
|
||||
#include "../src/sprites_AI/gunship.h"
|
||||
#include "../src/sprites_AI/skultera.h"
|
||||
#include "../src/sprites_AI/dessgeega.h"
|
||||
#include "../src/sprites_AI/waver.h"
|
||||
#include "../src/sprites_AI/power_grip.h"
|
||||
#include "../src/sprites_AI/imago_larva.h"
|
||||
#include "../src/sprites_AI/morph_ball_launcher.h"
|
||||
#include "../src/sprites_AI/space_pirate.h"
|
||||
#include "../src/sprites_AI/gamet.h"
|
||||
#include "../src/sprites_AI/zebbo.h"
|
||||
#include "../src/sprites_AI/worker_robot.h"
|
||||
#include "../src/sprites_AI/parasite.h"
|
||||
#include "../src/sprites_AI/piston.h"
|
||||
#include "../src/sprites_AI/ridley.h"
|
||||
#include "../src/sprites_AI/security_gate.h"
|
||||
#include "../src/sprites_AI/zipline_generator.h"
|
||||
#include "../src/sprites_AI/polyp.h"
|
||||
#include "../src/sprites_AI/rinka.h"
|
||||
#include "../src/sprites_AI/viola.h"
|
||||
#include "../src/sprites_AI/geron_norfair.h"
|
||||
#include "../src/sprites_AI/holtz.h"
|
||||
#include "../src/sprites_AI/gekitai_machine.h"
|
||||
#include "../src/sprites_AI/ruins_test.h"
|
||||
#include "../src/sprites_AI/save_platform.h"
|
||||
#include "../src/sprites_AI/kraid.h"
|
||||
#include "../src/sprites_AI/ripper2.h"
|
||||
#include "../src/sprites_AI/mella.h"
|
||||
#include "../src/sprites_AI/atomic.h"
|
||||
#include "../src/sprites_AI/area_banner.h"
|
||||
#include "../src/sprites_AI/mother_brain.h"
|
||||
#include "../src/sprites_AI/acid_worm.h"
|
||||
#include "../src/sprites_AI/escape_ship.h"
|
||||
#include "../src/sprites_AI/sidehopper.h"
|
||||
#include "../src/sprites_AI/geega.h"
|
||||
#include "../src/sprites_AI/zebetite_and_cannon.h"
|
||||
#include "../src/sprites_AI/zipline.h"
|
||||
#include "../src/sprites_AI/imago_larva_right_side.h"
|
||||
#include "../src/sprites_AI/tangle_vine.h"
|
||||
#include "../src/sprites_AI/imago.h"
|
||||
#include "../src/sprites_AI/crocomire.h"
|
||||
#include "../src/sprites_AI/geron.h"
|
||||
#include "../src/sprites_AI/glass_tube.h"
|
||||
#include "../src/sprites_AI/save_platform_chozodia.h"
|
||||
#include "../src/sprites_AI/baristute.h"
|
||||
#include "../src/sprites_AI/elevator_statue.h"
|
||||
#include "../src/sprites_AI/rising_chozo_pillar.h"
|
||||
#include "../src/sprites_AI/security_laser.h"
|
||||
#include "../src/sprites_AI/boss_statues.h"
|
||||
#include "../src/sprites_AI/searchlight_eye.h"
|
||||
#include "../src/sprites_AI/steam.h"
|
||||
#include "../src/sprites_AI/unknown_item_block.h"
|
||||
#include "../src/sprites_AI/unknown_item_chozo_statue.h"
|
||||
#include "../src/sprites_AI/chozo_ball.h"
|
||||
#include "../src/sprites_AI/gadora.h"
|
||||
#include "../src/sprites_AI/searchlight.h"
|
||||
#include "../src/sprites_AI/primary_sprite_B3.h"
|
||||
#include "../src/sprites_AI/space_pirate_carrying_power_bomb.h"
|
||||
#include "../src/sprites_AI/water_drop.h"
|
||||
#include "../src/sprites_AI/falling_chozo_pillar.h"
|
||||
#include "../src/sprites_AI/mecha_ridley.h"
|
||||
#include "../src/sprites_AI/escape_gate.h"
|
||||
#include "../src/sprites_AI/black_space_pirate.h"
|
||||
#include "../src/sprites_AI/escape_ship_pirate.h"
|
||||
#include "../src/sprites_AI/chozo_statue_movement.h"
|
@ -1,5 +1,6 @@
|
||||
#include "tangle_vine.h"
|
||||
#include "../../data/data.h"
|
||||
#include "../data/pointers.h"
|
||||
#include "../globals.h"
|
||||
|
||||
const i16 sTangleVineGerutaMultiSpriteData_Idle_Frame0[9] = {
|
||||
@ -797,9 +798,32 @@ const struct FrameData sTangleVineLarvaLeftOAM[5] = {
|
||||
0x0
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief 413c4 | 88 | Synchronize the sub sprites of a tangle vine
|
||||
*
|
||||
*/
|
||||
void TangleVineSyncSprites(void)
|
||||
{
|
||||
u16 (*pData)[3];
|
||||
u32 offset;
|
||||
|
||||
pData = (u16(*)[3])gSubSpriteData1.pMultiOam[gSubSpriteData1.currentAnimationFrame].pFrame;
|
||||
offset = pData[gCurrentSprite.roomSlot][0];
|
||||
|
||||
if (gCurrentSprite.pOam != sTangleVineFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = sTangleVineFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = gSubSpriteData1.yPosition + pData[gCurrentSprite.roomSlot][1];
|
||||
|
||||
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition - pData[gCurrentSprite.roomSlot][2];
|
||||
else
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition + pData[gCurrentSprite.roomSlot][2];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -9,6 +9,23 @@
|
||||
#define TANGLE_VINE_GERUTA_PART_GERUTA 0x1
|
||||
#define TANGLE_VINE_GERUTA_PART_ROOT 0x2
|
||||
|
||||
extern const struct FrameData sTangleVineTallOAM_OnGround[5];
|
||||
extern const struct FrameData sTangleVineMediumOAM_OnGround[5];
|
||||
extern const struct FrameData sTangleVineShortOAM_OnGround[5];
|
||||
extern const struct FrameData sTangleVineCurvedOAM_OnGround[7];
|
||||
extern const struct FrameData sTangleVineTallOAM_OnCeiling[5];
|
||||
extern const struct FrameData sTangleVineMediumOAM_OnCeiling[5];
|
||||
extern const struct FrameData sTangleVineShortOAM_OnCeiling[5];
|
||||
extern const struct FrameData sTangleVineCurvedOAM_OnCeiling[5];
|
||||
extern const struct FrameData sTangleVineGerutaPartOAM_Grip[9];
|
||||
extern const struct FrameData sTangleVineGerutaOAM_Root[9];
|
||||
extern const struct FrameData sTangleVineGerutaOAM_Full[5];
|
||||
extern const struct FrameData sTangleVineRedGerutaOAM[5];
|
||||
extern const struct FrameData sTangleVineGerutaPartOAM_Geruta[9];
|
||||
extern const struct FrameData sTangleVineLarvaRightOAM[5];
|
||||
extern const struct FrameData sTangleVineLarvaLeftOAM[5];
|
||||
|
||||
|
||||
void TangleVineSyncSprites(void);
|
||||
void TangleVineGeruta(void);
|
||||
void TangleVineGerutaPart(void);
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include "item_banner.h"
|
||||
#include "chozo_statue.h"
|
||||
#include "../globals.h"
|
||||
#include "../data/pointers.h"
|
||||
|
||||
const i16 sUnknownItemChozoStatueMultiSpriteData_Standing_Frame0[15] = {
|
||||
8, -176, -104,
|
||||
@ -932,9 +933,32 @@ const u16 sChozoStatueGravitySuitPAL[80];
|
||||
const u32 sChozoStatuePlasmaBeamGFX[1357];
|
||||
const u16 sChozoStatuePlasmaBeamPAL[80];
|
||||
|
||||
|
||||
/**
|
||||
* @brief 150a8 | 88 | Synchronize the sub sprites of an unknown item chozo statue
|
||||
*
|
||||
*/
|
||||
void UnknownItemChozoStatueSyncSubSprites(void)
|
||||
{
|
||||
u16 (*pData)[3];
|
||||
u32 offset;
|
||||
|
||||
pData = (u16(*)[3])gSubSpriteData1.pMultiOam[gSubSpriteData1.currentAnimationFrame].pFrame;
|
||||
offset = pData[gCurrentSprite.roomSlot][0];
|
||||
|
||||
if (gCurrentSprite.pOam != sUnknownItemChozoStatueFrameDataPointers[offset])
|
||||
{
|
||||
gCurrentSprite.pOam = sUnknownItemChozoStatueFrameDataPointers[offset];
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
}
|
||||
|
||||
gCurrentSprite.yPosition = gSubSpriteData1.yPosition + pData[gCurrentSprite.roomSlot][1];
|
||||
|
||||
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition - pData[gCurrentSprite.roomSlot][2];
|
||||
else
|
||||
gCurrentSprite.xPosition = gSubSpriteData1.xPosition + pData[gCurrentSprite.roomSlot][2];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3,11 +3,22 @@
|
||||
|
||||
#include "../types.h"
|
||||
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_LegStanding[2];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_LegSitting[10];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_LegSeated[2];
|
||||
extern const struct FrameData sUnknownItemChozoStatueOAM_Idle[2];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_EyeOpened[2];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_EyeClosing[3];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_EyeOpening[3];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_EyeClosed[2];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_ArmIdle[2];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_ArmGlow[9];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_ArmSamusGrabbed[2];
|
||||
extern const struct FrameData sChozoBallOAM_UnknownClosed[5];
|
||||
|
||||
extern const struct FrameData sChozoBallOAM_UnknownRevealing[4];
|
||||
|
||||
extern const struct FrameData sChozoBallOAM_UnknownRevealed[5];
|
||||
extern const struct FrameData sUnknownItemChozoStatueRefillOAM[41];
|
||||
extern const struct FrameData sUnknownItemChozoStatuePartOAM_GlowIdle[41];
|
||||
|
||||
void UnknownItemChozoStatueSyncSubSprites(void);
|
||||
void UnknownItemChozoStatueInit(void);
|
||||
|
Loading…
Reference in New Issue
Block a user