mirror of
https://github.com/YohannDR/mzm.git
synced 2024-10-06 18:13:20 +00:00
More cleanup
This commit is contained in:
parent
00e2adb2c3
commit
3a64637a15
@ -409,8 +409,8 @@ lbl_0803db78:
|
||||
lbl_0803db84: .4byte gCurrentSprite
|
||||
lbl_0803db88: .4byte gCurrentClipdataAffectingAction
|
||||
|
||||
thumb_func_start AcidWormPlaySound
|
||||
AcidWormPlaySound: @ 0x0803db8c
|
||||
thumb_func_start AcidWormPlayRetractingSound
|
||||
AcidWormPlayRetractingSound: @ 0x0803db8c
|
||||
push {lr}
|
||||
ldr r0, lbl_0803dba0 @ =gSubSpriteData1
|
||||
ldrb r0, [r0, #0xf]
|
||||
@ -458,7 +458,7 @@ lbl_0803dbc8:
|
||||
adds r1, #0x24
|
||||
movs r0, #0x27
|
||||
strb r0, [r1]
|
||||
bl AcidWormPlaySound
|
||||
bl AcidWormPlayRetractingSound
|
||||
movs r0, #1
|
||||
lbl_0803dbe8:
|
||||
pop {r1}
|
||||
@ -1591,7 +1591,7 @@ lbl_0803e4f6:
|
||||
subs r1, #8
|
||||
movs r0, #0x27
|
||||
strb r0, [r1]
|
||||
bl AcidWormPlaySound
|
||||
bl AcidWormPlayRetractingSound
|
||||
b lbl_0803e6a8
|
||||
.align 2, 0
|
||||
lbl_0803e504: .4byte gSubSpriteData1
|
||||
@ -1802,7 +1802,7 @@ lbl_0803e68e:
|
||||
adds r1, #0x24
|
||||
movs r0, #0x27
|
||||
strb r0, [r1]
|
||||
bl AcidWormPlaySound
|
||||
bl AcidWormPlayRetractingSound
|
||||
lbl_0803e6a8:
|
||||
add sp, #0xc
|
||||
pop {r4, r5}
|
||||
|
@ -3,6 +3,9 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#define SUITLESS_BAR_NBR_ELEMS 56
|
||||
#define SUITLESS_BAR_SIZE 256
|
||||
|
||||
// 32ba08
|
||||
|
||||
extern const u16 sCommonSpritesPAL[96];
|
||||
@ -65,7 +68,7 @@ extern const u8 sEnergyTanksRefillGfx_Ten[160 * 3];
|
||||
extern const u8 sEnergyTanksRefillGfx_Eleven[160 * 3];
|
||||
extern const u8 sEnergyTanksRefillGfx_Twelve[160 * 3];
|
||||
|
||||
extern const u8 sSuitlessHUDChargeBarGfx[56 * 256];
|
||||
extern const u8 sSuitlessHUDChargeBarGfx[SUITLESS_BAR_NBR_ELEMS * SUITLESS_BAR_SIZE];
|
||||
|
||||
// 8339aa8
|
||||
|
||||
|
@ -618,7 +618,7 @@ extern const struct FrameData sChargedPistolOAM_Vertical[3];
|
||||
|
||||
extern const struct FrameData sParticleChargedPistolTrailOam[5];
|
||||
|
||||
extern const struct FrameData sParticleEscapeOAM_Unused[2];
|
||||
extern const struct FrameData sParticleEscapeOam_Unused[2];
|
||||
|
||||
extern const struct FrameData sParticleSamusReflectionOAM_Unused[2];
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
extern const u16 sSamusCloseUpPAL[6 * 16];
|
||||
extern const u16 sSamusCloseUpPal[6 * 16];
|
||||
extern const u32 sSamusCloseUpGfx[2319];
|
||||
|
||||
extern const u32 sSamusCloseUpEyesGfx_1[80];
|
||||
|
@ -17,45 +17,45 @@ extern const s16 sAcidWormHeadRandomXVelocity[45];
|
||||
extern const u32 sAcidWormGfx[1000];
|
||||
extern const u16 sAcidWormPAL[64];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_Unused2_Frame0[52];
|
||||
extern const u16 sAcidWormBodyOam_Unused2_Frame0[52];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_Unused2_Frame1[52];
|
||||
extern const u16 sAcidWormBodyOam_Unused2_Frame1[52];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_Unused2_Frame2[52];
|
||||
extern const u16 sAcidWormBodyOam_Unused2_Frame2[52];
|
||||
|
||||
extern const u16 sAcidWormOAM_Spitting_Frame4[34];
|
||||
extern const u16 sAcidWormOam_Spitting_Frame4[34];
|
||||
|
||||
extern const u16 sAcidWormOAM_Spitting_Frame3[34];
|
||||
extern const u16 sAcidWormOam_Spitting_Frame3[34];
|
||||
|
||||
extern const u16 sAcidWormOAM_Spitting_Frame2[34];
|
||||
extern const u16 sAcidWormOam_Spitting_Frame2[34];
|
||||
|
||||
extern const u16 sAcidWormOAM_Spitting_Frame0[34];
|
||||
extern const u16 sAcidWormOam_Spitting_Frame0[34];
|
||||
|
||||
extern const u16 sAcidWormOAM_MouthClosed_Frame2[34];
|
||||
extern const u16 sAcidWormOam_MouthClosed_Frame2[34];
|
||||
|
||||
extern const u16 sAcidWormOAM_Idle_Frame0[34];
|
||||
extern const u16 sAcidWormOam_Idle_Frame0[34];
|
||||
|
||||
extern const u16 sAcidWormOAM_Idle_Frame1[34];
|
||||
extern const u16 sAcidWormOam_Idle_Frame1[34];
|
||||
|
||||
extern const u16 sAcidWormOAM_Idle_Frame2[34];
|
||||
extern const u16 sAcidWormOam_Idle_Frame2[34];
|
||||
|
||||
extern const u16 sAcidWormOAM_Moving_Frame0[34];
|
||||
extern const u16 sAcidWormOam_Moving_Frame0[34];
|
||||
|
||||
extern const u16 sAcidWormOAM_Moving_Frame1[34];
|
||||
extern const u16 sAcidWormOam_Moving_Frame1[34];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_AroundMouth_Frame0[4];
|
||||
extern const u16 sAcidWormBodyOam_AroundMouth_Frame0[4];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_WeakPoint_Frame0[4];
|
||||
extern const u16 sAcidWormBodyOam_WeakPoint_Frame0[4];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_WeakPoint_Frame1[4];
|
||||
extern const u16 sAcidWormBodyOam_WeakPoint_Frame1[4];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_WeakPoint_Frame2[4];
|
||||
extern const u16 sAcidWormBodyOam_WeakPoint_Frame2[4];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_BelowWeakPoint_Frame0[4];
|
||||
extern const u16 sAcidWormBodyOam_BelowWeakPoint_Frame0[4];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_AboveSegments_Frame0[4];
|
||||
extern const u16 sAcidWormBodyOam_AboveSegments_Frame0[4];
|
||||
|
||||
extern const u16 sAcidWormBodyOAM_Segment_Frame0[4];
|
||||
extern const u16 sAcidWormBodyOam_Segment_Frame0[4];
|
||||
|
||||
extern const u16 sAcidWormSpitOAM_Moving_Frame0[4];
|
||||
|
||||
@ -71,34 +71,34 @@ extern const u16 sAcidWormSpitOAM_Exploding_Frame3[25];
|
||||
|
||||
extern const u16 sAcidWormSpitOAM_Exploding_Frame4[20];
|
||||
|
||||
extern const struct FrameData sAcidWormOAM_Idle[5];
|
||||
extern const struct FrameData sAcidWormOam_Idle[5];
|
||||
|
||||
extern const struct FrameData sAcidWormOAM_Moving[3];
|
||||
extern const struct FrameData sAcidWormOam_Moving[3];
|
||||
|
||||
extern const struct FrameData sAcidWormOAM_Spitting[15];
|
||||
extern const struct FrameData sAcidWormOam_Spitting[15];
|
||||
|
||||
extern const struct FrameData sAcidWormOAM_MouthClosed[5];
|
||||
extern const struct FrameData sAcidWormOam_MouthClosed[5];
|
||||
|
||||
extern const struct FrameData sAcidWormBodyOAM_AroundMouth[2];
|
||||
extern const struct FrameData sAcidWormBodyOam_AroundMouth[2];
|
||||
|
||||
extern const struct FrameData sAcidWormBodyOAM_WeakPoint[9];
|
||||
extern const struct FrameData sAcidWormBodyOam_WeakPoint[9];
|
||||
|
||||
extern const struct FrameData sAcidWormBodyOAM_Unused[5];
|
||||
extern const struct FrameData sAcidWormBodyOam_Unused[5];
|
||||
|
||||
extern const struct FrameData sAcidWormBodyOAM_BelowWeakPoint[2];
|
||||
extern const struct FrameData sAcidWormBodyOam_BelowWeakPoint[2];
|
||||
|
||||
extern const struct FrameData sAcidWormBodyOAM_AboveSegments[2];
|
||||
extern const struct FrameData sAcidWormBodyOam_AboveSegments[2];
|
||||
|
||||
extern const struct FrameData sAcidWormBodyOAM_Segment[2];
|
||||
extern const struct FrameData sAcidWormBodyOam_Segment[2];
|
||||
|
||||
extern const struct FrameData sAcidWormBodyOAM_Unused2[5];
|
||||
extern const struct FrameData sAcidWormBodyOam_Unused2[5];
|
||||
|
||||
extern const struct FrameData sAcidWormSpitOAM_Moving[4];
|
||||
|
||||
extern const struct FrameData sAcidWormSpitOAM_Exploding[6];
|
||||
|
||||
extern const struct FrameData sAcidWormOAM_Warning[14];
|
||||
extern const struct FrameData sAcidWormOam_Warning[14];
|
||||
|
||||
extern const struct FrameData sAcidWormOAM_SpawnOnTop[24];
|
||||
extern const struct FrameData sAcidWormOam_SpawnOnTop[24];
|
||||
|
||||
#endif
|
@ -8,50 +8,50 @@ extern const u32 sAreaBannerGfx[65];
|
||||
extern const u16 sAreaBannerPAL[16];
|
||||
extern const u16 sAreaBannerLocationTextPAL[16];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame0[7];
|
||||
extern const u16 sAreaBannerOam_SpawnMiddle_Frame0[7];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame1[13];
|
||||
extern const u16 sAreaBannerOam_SpawnMiddle_Frame1[13];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame2[19];
|
||||
extern const u16 sAreaBannerOam_SpawnMiddle_Frame2[19];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame3[25];
|
||||
extern const u16 sAreaBannerOam_SpawnMiddle_Frame3[25];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame4[28];
|
||||
extern const u16 sAreaBannerOam_SpawnMiddle_Frame4[28];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame5[55];
|
||||
extern const u16 sAreaBannerOam_SpawnMiddle_Frame5[55];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame6[55];
|
||||
extern const u16 sAreaBannerOam_SpawnMiddle_Frame6[55];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame7[55];
|
||||
extern const u16 sAreaBannerOam_SpawnMiddle_Frame7[55];
|
||||
|
||||
extern const u16 sAreaBannerOAM_StaticMiddle_Frame0[34];
|
||||
extern const u16 sAreaBannerOam_StaticMiddle_Frame0[34];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnBottom_Frame0[28];
|
||||
extern const u16 sAreaBannerOam_SpawnBottom_Frame0[28];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnBottom_Frame1[28];
|
||||
extern const u16 sAreaBannerOam_SpawnBottom_Frame1[28];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnBottom_Frame2[28];
|
||||
extern const u16 sAreaBannerOam_SpawnBottom_Frame2[28];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnBottom_Frame3[28];
|
||||
extern const u16 sAreaBannerOam_SpawnBottom_Frame3[28];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnBottom_Frame4[28];
|
||||
extern const u16 sAreaBannerOam_SpawnBottom_Frame4[28];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnBottom_Frame5[28];
|
||||
extern const u16 sAreaBannerOam_SpawnBottom_Frame5[28];
|
||||
|
||||
extern const u16 sAreaBannerOAM_SpawnBottom_Frame6[28];
|
||||
extern const u16 sAreaBannerOam_SpawnBottom_Frame6[28];
|
||||
|
||||
extern const u16 sAreaBannerOAM_StaticBottom_Frame0[28];
|
||||
extern const u16 sAreaBannerOam_StaticBottom_Frame0[28];
|
||||
|
||||
extern const struct FrameData sAreaBannerOAM_StaticMiddle[2];
|
||||
extern const struct FrameData sAreaBannerOam_StaticMiddle[2];
|
||||
|
||||
extern const struct FrameData sAreaBannerOAM_SpawnMiddle[9];
|
||||
extern const struct FrameData sAreaBannerOam_SpawnMiddle[9];
|
||||
|
||||
extern const struct FrameData sAreaBannerOAM_RemovingMiddle[9];
|
||||
extern const struct FrameData sAreaBannerOam_RemovingMiddle[9];
|
||||
|
||||
extern const struct FrameData sAreaBannerOAM_StaticBottom[2];
|
||||
extern const struct FrameData sAreaBannerOam_StaticBottom[2];
|
||||
|
||||
extern const struct FrameData sAreaBannerOAM_SpawnBottom[8];
|
||||
extern const struct FrameData sAreaBannerOam_SpawnBottom[8];
|
||||
|
||||
extern const struct FrameData sAreaBannerOAM_RemovingBottom[8];
|
||||
extern const struct FrameData sAreaBannerOam_RemovingBottom[8];
|
||||
|
||||
#endif
|
@ -32,6 +32,6 @@ extern const struct FrameData sParticleSpriteSplashAcidHugeOam[10];
|
||||
extern const struct FrameData sParticleSpriteSplashAcidSmallOam[7];
|
||||
|
||||
extern const u8 sEscapeTimerDigitsGfx[1024 * 2];
|
||||
extern const u16 sParticleEscapeOAM[34];
|
||||
extern const u16 sParticleEscapeOam[34];
|
||||
|
||||
#endif /* VISUAL_EFFECTS_DATA_H */
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
u8 EscapeDetermineTimer(void);
|
||||
u8 EscapeCheckHasEscaped(void);
|
||||
void EscapeUpdateOAM(void);
|
||||
void EscapeUpdateOam(void);
|
||||
void EscapeCheckReloadGraphics(void);
|
||||
void EscapeStart(void);
|
||||
void EscapeSetTimer(void);
|
||||
|
@ -7,8 +7,8 @@
|
||||
|
||||
// Not sure where to put/name those functions, might move them later
|
||||
|
||||
void HUDGenericLoadCommonSpriteGfx(void);
|
||||
void HUDGenericResetRefillAnimations(void);
|
||||
void HUDGenericResetHUDData(void);
|
||||
void HudGenericLoadCommonSpriteGfx(void);
|
||||
void HudGenericResetRefillAnimations(void);
|
||||
void HudGenericResetHUDData(void);
|
||||
|
||||
#endif /* HUD_GENERIC_H */
|
@ -103,6 +103,14 @@
|
||||
*/
|
||||
#define DIV_SHIFT(value, div) ((value) >> ((div) == 2 ? 1 : ((div) == 4 ? 2 : ((div) == 8 ? 3 : ((div) == 16 ? 4 : ((div) == 32 ? 5 : ((div) == 64 ? 6 : ((div) == 128 ? 7 : ((div) == 256 ? 8 : ((div) == 512 ? 9 : ((div) == 1024 ? 10 : 0)))))))))))
|
||||
|
||||
/**
|
||||
* @brief Performs a multiplaction (value * mul) operation on a value using the left shift operation (WARNING only use a value for div that is divisble by 2 and <= 256)
|
||||
*
|
||||
* @param value Value
|
||||
* @param mul Multiplier
|
||||
*/
|
||||
#define MUL_SHIFT(value, mul) ((value) << ((mul) == 2 ? 1 : ((mul) == 4 ? 2 : ((mul) == 8 ? 3 : ((mul) == 16 ? 4 : ((mul) == 32 ? 5 : ((mul) == 64 ? 6 : ((mul) == 128 ? 7 : ((mul) == 256 ? 8 : ((mul) == 512 ? 9 : ((mul) == 1024 ? 10 : 0)))))))))))
|
||||
|
||||
#define GET_PSPRITE_HEALTH(id) sPrimarySpriteStats[(id)][0]
|
||||
#define GET_SSPRITE_HEALTH(id) sSecondarySpriteStats[(id)][0]
|
||||
|
||||
|
@ -36,13 +36,17 @@
|
||||
|
||||
// Acid worm spit
|
||||
|
||||
|
||||
|
||||
#define ACID_WORM_SPAWN_RANGE (BLOCK_SIZE * 2 + QUARTER_BLOCK_SIZE - PIXEL_SIZE)
|
||||
|
||||
void AcidWormHandleRotation(void);
|
||||
void AcidWormRandomXMovement(void);
|
||||
void AcidWormChangeTwoGroundCCAA(u8 caa, u16 yPosition, u16 xPosition);
|
||||
void AcidWormChangeBigBlockDownCCAA(u8 caa);
|
||||
void AcidWormChangeBigBlockMiddleCCAA(u8 caa);
|
||||
void AcidWormChangeBigBlockTopCCAA(u8 caa);
|
||||
void AcidWormPlaySound(void);
|
||||
void AcidWormPlayRetractingSound(void);
|
||||
u8 AcidWormCollidingWithSamusWhenExtending(void);
|
||||
void AcidWormInit(void);
|
||||
void AcidWormCheckSamusOnZipline(void);
|
||||
|
@ -20,4 +20,14 @@ extern u8 gCurrentEscapeStatus;
|
||||
extern u8 gEscapeTimerCounter;
|
||||
extern struct EscapeDigits gEscapeTimerDigits;
|
||||
|
||||
#endif
|
||||
#define CREATE_ESCAPE_TIMER(minutes, seconds, milli)\
|
||||
{\
|
||||
gEscapeTimerDigits.hundredths = (milli) % 10;\
|
||||
gEscapeTimerDigits.tenths = (milli) / 10;\
|
||||
gEscapeTimerDigits.secondsOnes = (seconds) % 10;\
|
||||
gEscapeTimerDigits.secondsTens = (seconds) / 10;\
|
||||
gEscapeTimerDigits.minutesOnes = (minutes) % 10;\
|
||||
gEscapeTimerDigits.minutesTens = (minutes) / 10;\
|
||||
}
|
||||
|
||||
#endif /* ESCAPE_STRUCT_H */
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define SAMUS_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
#include "macros.h"
|
||||
|
||||
#define MAX_AMOUNT_OF_SAMUS_POSES 67
|
||||
|
||||
|
@ -37,10 +37,13 @@ typedef volatile signed int vs32;
|
||||
#define HALF_BLOCK_SIZE (BLOCK_SIZE / 2)
|
||||
#define QUARTER_BLOCK_SIZE (BLOCK_SIZE / 4)
|
||||
#define PIXEL_SIZE (BLOCK_SIZE / SUB_PIXEL_NUMBER)
|
||||
#define BLOCK_POSITION_FLAG ((u16)~BLOCK_SIZE + 1)
|
||||
#define SUB_PIXEL_POSITION_FLAG (BLOCK_SIZE - 1)
|
||||
#define BLOCK_POSITION_FLAG ((u16)~BLOCK_SIZE + ONE_SUB_PIXEL)
|
||||
#define SUB_PIXEL_POSITION_FLAG (BLOCK_SIZE - ONE_SUB_PIXEL)
|
||||
#define ONE_SUB_PIXEL (PIXEL_SIZE / PIXEL_SIZE)
|
||||
|
||||
#define SCREEN_SIZE_X 240
|
||||
#define SCREEN_SIZE_Y 160
|
||||
|
||||
struct RawCoordsX {
|
||||
u16 x;
|
||||
u16 y;
|
||||
|
@ -2651,7 +2651,7 @@ const struct FrameData sParticleChargedPistolTrailOam[5] = {
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sParticleEscapeOAM_Unused[2] = {
|
||||
const struct FrameData sParticleEscapeOam_Unused[2] = {
|
||||
gParticleEscapeOamFrames,
|
||||
UCHAR_MAX,
|
||||
NULL,
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
#include "data/samus_close_up_data.h"
|
||||
#include "macros.h"
|
||||
|
||||
const u16 sSamusCloseUpPAL[6 * 16] = INCBIN_U16("data/close_up/Palette.pal");
|
||||
const u16 sSamusCloseUpPal[6 * 16] = INCBIN_U16("data/close_up/Palette.pal");
|
||||
const u32 sSamusCloseUpGfx[2319] = INCBIN_U32("data/close_up/CloseUp.gfx.lz");
|
||||
|
||||
const u32 sSamusCloseUpEyesGfx_1[80] = INCBIN_U32("data/close_up/Eyes1.gfx");
|
||||
|
@ -29,7 +29,7 @@ const s16 sAcidWormHeadRandomXVelocity[45] = {
|
||||
const u32 sAcidWormGfx[1000] = INCBIN_U32("data/sprites/AcidWorm.gfx.lz");
|
||||
const u16 sAcidWormPAL[64] = INCBIN_U16("data/sprites/AcidWorm.pal");
|
||||
|
||||
const u16 sAcidWormBodyOAM_Unused2_Frame0[52] = {
|
||||
const u16 sAcidWormBodyOam_Unused2_Frame0[52] = {
|
||||
0x11,
|
||||
0xf7, OBJ_SIZE_32x32 | 0x1f1, OBJ_SPRITE_OAM | 0x206,
|
||||
0x9, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x212,
|
||||
@ -50,7 +50,7 @@ const u16 sAcidWormBodyOAM_Unused2_Frame0[52] = {
|
||||
0x39, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x292
|
||||
};
|
||||
|
||||
const u16 sAcidWormBodyOAM_Unused2_Frame1[52] = {
|
||||
const u16 sAcidWormBodyOam_Unused2_Frame1[52] = {
|
||||
0x11,
|
||||
0xf6, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x206,
|
||||
0x8, OBJ_SIZE_32x32 | 0x1f1, OBJ_SPRITE_OAM | 0x212,
|
||||
@ -71,7 +71,7 @@ const u16 sAcidWormBodyOAM_Unused2_Frame1[52] = {
|
||||
0x38, OBJ_SIZE_32x32 | 0x1f2, OBJ_SPRITE_OAM | 0x292
|
||||
};
|
||||
|
||||
const u16 sAcidWormBodyOAM_Unused2_Frame2[52] = {
|
||||
const u16 sAcidWormBodyOam_Unused2_Frame2[52] = {
|
||||
0x11,
|
||||
0xf6, OBJ_SIZE_32x32 | 0x1f1, OBJ_SPRITE_OAM | 0x206,
|
||||
0x7, OBJ_SIZE_32x32 | 0x1f3, OBJ_SPRITE_OAM | 0x212,
|
||||
@ -92,7 +92,7 @@ const u16 sAcidWormBodyOAM_Unused2_Frame2[52] = {
|
||||
0x37, OBJ_SIZE_32x32 | 0x1f1, OBJ_SPRITE_OAM | 0x292
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_Spitting_Frame4[34] = {
|
||||
const u16 sAcidWormOam_Spitting_Frame4[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xec, 0xa, OBJ_SPRITE_OAM | 0x21f,
|
||||
OBJ_SHAPE_VERTICAL | 0xef, 0x4, OBJ_SPRITE_OAM | 0x21e,
|
||||
@ -107,7 +107,7 @@ const u16 sAcidWormOAM_Spitting_Frame4[34] = {
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_Spitting_Frame3[34] = {
|
||||
const u16 sAcidWormOam_Spitting_Frame3[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xec, 0xa, OBJ_SPRITE_OAM | 0x25f,
|
||||
OBJ_SHAPE_VERTICAL | 0xef, 0x4, OBJ_SPRITE_OAM | 0x25e,
|
||||
@ -122,7 +122,7 @@ const u16 sAcidWormOAM_Spitting_Frame3[34] = {
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_Spitting_Frame2[34] = {
|
||||
const u16 sAcidWormOam_Spitting_Frame2[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xeb, 0x9, OBJ_SPRITE_OAM | 0x29f,
|
||||
OBJ_SHAPE_VERTICAL | 0xef, 0x2, OBJ_SPRITE_OAM | 0x29e,
|
||||
@ -137,7 +137,7 @@ const u16 sAcidWormOAM_Spitting_Frame2[34] = {
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_Spitting_Frame0[34] = {
|
||||
const u16 sAcidWormOam_Spitting_Frame0[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xec, 0x8, OBJ_SPRITE_OAM | 0x29f,
|
||||
OBJ_SHAPE_VERTICAL | 0xef, 0x1, OBJ_SPRITE_OAM | 0x29e,
|
||||
@ -152,7 +152,7 @@ const u16 sAcidWormOAM_Spitting_Frame0[34] = {
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_MouthClosed_Frame2[34] = {
|
||||
const u16 sAcidWormOam_MouthClosed_Frame2[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xef, 0x1fc, OBJ_SPRITE_OAM | 0x2dd,
|
||||
OBJ_SHAPE_VERTICAL | 0xee, 0x1, OBJ_SPRITE_OAM | 0x2de,
|
||||
@ -167,7 +167,7 @@ const u16 sAcidWormOAM_MouthClosed_Frame2[34] = {
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_Idle_Frame0[34] = {
|
||||
const u16 sAcidWormOam_Idle_Frame0[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xef, 0x2, OBJ_SPRITE_OAM | 0x219,
|
||||
0xec, OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x258,
|
||||
@ -182,7 +182,7 @@ const u16 sAcidWormOAM_Idle_Frame0[34] = {
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_Idle_Frame1[34] = {
|
||||
const u16 sAcidWormOam_Idle_Frame1[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xef, 0x2, OBJ_SPRITE_OAM | 0x299,
|
||||
0xec, OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x2d8,
|
||||
@ -197,7 +197,7 @@ const u16 sAcidWormOAM_Idle_Frame1[34] = {
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_Idle_Frame2[34] = {
|
||||
const u16 sAcidWormOam_Idle_Frame2[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xef, 0x1, OBJ_SPRITE_OAM | 0x299,
|
||||
0xec, OBJ_SIZE_16x16 | 0x1ff, OBJ_SPRITE_OAM | 0x2d8,
|
||||
@ -212,7 +212,7 @@ const u16 sAcidWormOAM_Idle_Frame2[34] = {
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_Moving_Frame0[34] = {
|
||||
const u16 sAcidWormOam_Moving_Frame0[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xed, 0xb, OBJ_SPRITE_OAM | 0x21f,
|
||||
OBJ_SHAPE_VERTICAL | 0xf0, 0x4, OBJ_SPRITE_OAM | 0x21e,
|
||||
@ -227,7 +227,7 @@ const u16 sAcidWormOAM_Moving_Frame0[34] = {
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormOAM_Moving_Frame1[34] = {
|
||||
const u16 sAcidWormOam_Moving_Frame1[34] = {
|
||||
0xb,
|
||||
OBJ_SHAPE_VERTICAL | 0xed, 0xc, OBJ_SPRITE_OAM | 0x21f,
|
||||
OBJ_SHAPE_VERTICAL | 0xf0, 0x5, OBJ_SPRITE_OAM | 0x21e,
|
||||
@ -242,37 +242,37 @@ const u16 sAcidWormOAM_Moving_Frame1[34] = {
|
||||
0xf1, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
|
||||
};
|
||||
|
||||
const u16 sAcidWormBodyOAM_AroundMouth_Frame0[4] = {
|
||||
const u16 sAcidWormBodyOam_AroundMouth_Frame0[4] = {
|
||||
0x1,
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x281
|
||||
};
|
||||
|
||||
const u16 sAcidWormBodyOAM_WeakPoint_Frame0[4] = {
|
||||
const u16 sAcidWormBodyOam_WeakPoint_Frame0[4] = {
|
||||
0x1,
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x206
|
||||
};
|
||||
|
||||
const u16 sAcidWormBodyOAM_WeakPoint_Frame1[4] = {
|
||||
const u16 sAcidWormBodyOam_WeakPoint_Frame1[4] = {
|
||||
0x1,
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x20a
|
||||
};
|
||||
|
||||
const u16 sAcidWormBodyOAM_WeakPoint_Frame2[4] = {
|
||||
const u16 sAcidWormBodyOam_WeakPoint_Frame2[4] = {
|
||||
0x1,
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x20e
|
||||
};
|
||||
|
||||
const u16 sAcidWormBodyOAM_BelowWeakPoint_Frame0[4] = {
|
||||
const u16 sAcidWormBodyOam_BelowWeakPoint_Frame0[4] = {
|
||||
0x1,
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x212
|
||||
};
|
||||
|
||||
const u16 sAcidWormBodyOAM_AboveSegments_Frame0[4] = {
|
||||
const u16 sAcidWormBodyOam_AboveSegments_Frame0[4] = {
|
||||
0x1,
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x28e
|
||||
};
|
||||
|
||||
const u16 sAcidWormBodyOAM_Segment_Frame0[4] = {
|
||||
const u16 sAcidWormBodyOam_Segment_Frame0[4] = {
|
||||
0x1,
|
||||
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x292
|
||||
};
|
||||
@ -332,144 +332,144 @@ const u16 sAcidWormSpitOAM_Exploding_Frame4[20] = {
|
||||
};
|
||||
|
||||
|
||||
const struct FrameData sAcidWormOAM_Idle[5] = {
|
||||
sAcidWormOAM_Idle_Frame0,
|
||||
const struct FrameData sAcidWormOam_Idle[5] = {
|
||||
sAcidWormOam_Idle_Frame0,
|
||||
0xA,
|
||||
sAcidWormOAM_Idle_Frame1,
|
||||
sAcidWormOam_Idle_Frame1,
|
||||
0x10,
|
||||
sAcidWormOAM_Idle_Frame2,
|
||||
sAcidWormOam_Idle_Frame2,
|
||||
0x1C,
|
||||
sAcidWormOAM_Idle_Frame1,
|
||||
sAcidWormOam_Idle_Frame1,
|
||||
0x10,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormOAM_Moving[3] = {
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
const struct FrameData sAcidWormOam_Moving[3] = {
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x3,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormOAM_Spitting[15] = {
|
||||
sAcidWormOAM_Spitting_Frame0,
|
||||
const struct FrameData sAcidWormOam_Spitting[15] = {
|
||||
sAcidWormOam_Spitting_Frame0,
|
||||
0x1,
|
||||
sAcidWormOAM_Idle_Frame1,
|
||||
sAcidWormOam_Idle_Frame1,
|
||||
0x16,
|
||||
sAcidWormOAM_Spitting_Frame2,
|
||||
sAcidWormOam_Spitting_Frame2,
|
||||
0x3,
|
||||
sAcidWormOAM_Spitting_Frame3,
|
||||
sAcidWormOam_Spitting_Frame3,
|
||||
0x2,
|
||||
sAcidWormOAM_Spitting_Frame4,
|
||||
sAcidWormOam_Spitting_Frame4,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Spitting_Frame4,
|
||||
sAcidWormOam_Spitting_Frame4,
|
||||
0x1,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormOAM_MouthClosed[5] = {
|
||||
sAcidWormOAM_Spitting_Frame2,
|
||||
const struct FrameData sAcidWormOam_MouthClosed[5] = {
|
||||
sAcidWormOam_Spitting_Frame2,
|
||||
0x5,
|
||||
sAcidWormOAM_Spitting_Frame0,
|
||||
sAcidWormOam_Spitting_Frame0,
|
||||
0x4,
|
||||
sAcidWormOAM_MouthClosed_Frame2,
|
||||
sAcidWormOam_MouthClosed_Frame2,
|
||||
0x3,
|
||||
sAcidWormOAM_Spitting_Frame0,
|
||||
sAcidWormOam_Spitting_Frame0,
|
||||
0x4,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormBodyOAM_AroundMouth[2] = {
|
||||
sAcidWormBodyOAM_AroundMouth_Frame0,
|
||||
const struct FrameData sAcidWormBodyOam_AroundMouth[2] = {
|
||||
sAcidWormBodyOam_AroundMouth_Frame0,
|
||||
0x8,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormBodyOAM_WeakPoint[9] = {
|
||||
sAcidWormBodyOAM_WeakPoint_Frame0,
|
||||
const struct FrameData sAcidWormBodyOam_WeakPoint[9] = {
|
||||
sAcidWormBodyOam_WeakPoint_Frame0,
|
||||
0x14,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame1,
|
||||
sAcidWormBodyOam_WeakPoint_Frame1,
|
||||
0x10,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame2,
|
||||
sAcidWormBodyOam_WeakPoint_Frame2,
|
||||
0xC,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame1,
|
||||
sAcidWormBodyOam_WeakPoint_Frame1,
|
||||
0x10,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame0,
|
||||
sAcidWormBodyOam_WeakPoint_Frame0,
|
||||
0xA,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame1,
|
||||
sAcidWormBodyOam_WeakPoint_Frame1,
|
||||
0x8,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame2,
|
||||
sAcidWormBodyOam_WeakPoint_Frame2,
|
||||
0x8,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame1,
|
||||
sAcidWormBodyOam_WeakPoint_Frame1,
|
||||
0xA,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormBodyOAM_Unused[5] = {
|
||||
sAcidWormBodyOAM_WeakPoint_Frame0,
|
||||
const struct FrameData sAcidWormBodyOam_Unused[5] = {
|
||||
sAcidWormBodyOam_WeakPoint_Frame0,
|
||||
0x4,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame1,
|
||||
sAcidWormBodyOam_WeakPoint_Frame1,
|
||||
0x4,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame2,
|
||||
sAcidWormBodyOam_WeakPoint_Frame2,
|
||||
0x4,
|
||||
sAcidWormBodyOAM_WeakPoint_Frame1,
|
||||
sAcidWormBodyOam_WeakPoint_Frame1,
|
||||
0x4,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormBodyOAM_BelowWeakPoint[2] = {
|
||||
sAcidWormBodyOAM_BelowWeakPoint_Frame0,
|
||||
const struct FrameData sAcidWormBodyOam_BelowWeakPoint[2] = {
|
||||
sAcidWormBodyOam_BelowWeakPoint_Frame0,
|
||||
0x4,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormBodyOAM_AboveSegments[2] = {
|
||||
sAcidWormBodyOAM_AboveSegments_Frame0,
|
||||
const struct FrameData sAcidWormBodyOam_AboveSegments[2] = {
|
||||
sAcidWormBodyOam_AboveSegments_Frame0,
|
||||
0x4,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormBodyOAM_Segment[2] = {
|
||||
sAcidWormBodyOAM_Segment_Frame0,
|
||||
const struct FrameData sAcidWormBodyOam_Segment[2] = {
|
||||
sAcidWormBodyOam_Segment_Frame0,
|
||||
0x4,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormBodyOAM_Unused2[5] = {
|
||||
sAcidWormBodyOAM_Unused2_Frame0,
|
||||
const struct FrameData sAcidWormBodyOam_Unused2[5] = {
|
||||
sAcidWormBodyOam_Unused2_Frame0,
|
||||
0xC,
|
||||
sAcidWormBodyOAM_Unused2_Frame1,
|
||||
sAcidWormBodyOam_Unused2_Frame1,
|
||||
0xC,
|
||||
sAcidWormBodyOAM_Unused2_Frame2,
|
||||
sAcidWormBodyOam_Unused2_Frame2,
|
||||
0xC,
|
||||
sAcidWormBodyOAM_Unused2_Frame1,
|
||||
sAcidWormBodyOam_Unused2_Frame1,
|
||||
0xC,
|
||||
NULL,
|
||||
0x0
|
||||
@ -501,83 +501,83 @@ const struct FrameData sAcidWormSpitOAM_Exploding[6] = {
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormOAM_Warning[14] = {
|
||||
sAcidWormOAM_Idle_Frame2,
|
||||
const struct FrameData sAcidWormOam_Warning[14] = {
|
||||
sAcidWormOam_Idle_Frame2,
|
||||
0x1,
|
||||
sAcidWormOAM_Spitting_Frame2,
|
||||
sAcidWormOam_Spitting_Frame2,
|
||||
0x1,
|
||||
sAcidWormOAM_Spitting_Frame3,
|
||||
sAcidWormOam_Spitting_Frame3,
|
||||
0x2,
|
||||
sAcidWormOAM_Spitting_Frame4,
|
||||
sAcidWormOam_Spitting_Frame4,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Spitting_Frame4,
|
||||
sAcidWormOam_Spitting_Frame4,
|
||||
0x1,
|
||||
sAcidWormOAM_Spitting_Frame3,
|
||||
sAcidWormOam_Spitting_Frame3,
|
||||
0x2,
|
||||
sAcidWormOAM_Idle_Frame2,
|
||||
sAcidWormOam_Idle_Frame2,
|
||||
0x4,
|
||||
sAcidWormOAM_Spitting_Frame2,
|
||||
sAcidWormOam_Spitting_Frame2,
|
||||
0x1,
|
||||
sAcidWormOAM_Spitting_Frame3,
|
||||
sAcidWormOam_Spitting_Frame3,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x6,
|
||||
sAcidWormOAM_Spitting_Frame4,
|
||||
sAcidWormOam_Spitting_Frame4,
|
||||
3,
|
||||
sAcidWormOAM_Spitting_Frame3,
|
||||
sAcidWormOam_Spitting_Frame3,
|
||||
0x1,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAcidWormOAM_SpawnOnTop[24] = {
|
||||
sAcidWormOAM_Spitting_Frame0,
|
||||
const struct FrameData sAcidWormOam_SpawnOnTop[24] = {
|
||||
sAcidWormOam_Spitting_Frame0,
|
||||
0x1,
|
||||
sAcidWormOAM_Spitting_Frame2,
|
||||
sAcidWormOam_Spitting_Frame2,
|
||||
0x3,
|
||||
sAcidWormOAM_Spitting_Frame3,
|
||||
sAcidWormOam_Spitting_Frame3,
|
||||
0x2,
|
||||
sAcidWormOAM_Spitting_Frame4,
|
||||
sAcidWormOam_Spitting_Frame4,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Moving_Frame0,
|
||||
sAcidWormOam_Moving_Frame0,
|
||||
0x3,
|
||||
sAcidWormOAM_Moving_Frame1,
|
||||
sAcidWormOam_Moving_Frame1,
|
||||
0x2,
|
||||
sAcidWormOAM_Spitting_Frame4,
|
||||
sAcidWormOam_Spitting_Frame4,
|
||||
0x1,
|
||||
NULL,
|
||||
0x0
|
||||
|
@ -6,13 +6,13 @@ const u32 sAreaBannerGfx[65] = INCBIN_U32("data/sprites/AreaBanner.gfx.lz");
|
||||
const u16 sAreaBannerPAL[16] = INCBIN_U16("data/sprites/AreaBanner.pal");
|
||||
const u16 sAreaBannerLocationTextPAL[16] = INCBIN_U16("data/sprites/AreaBannerLocationText.pal");
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnMiddle_Frame0[7] = {
|
||||
const u16 sAreaBannerOam_SpawnMiddle_Frame0[7] = {
|
||||
0x2,
|
||||
0xfc, 0x1f8, OBJ_SPRITE_OAM | 0x21c,
|
||||
0xfc, OBJ_X_FLIP | 0x0, OBJ_SPRITE_OAM | 0x21c
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnMiddle_Frame1[13] = {
|
||||
const u16 sAreaBannerOam_SpawnMiddle_Frame1[13] = {
|
||||
0x4,
|
||||
0xfc, 0x1d8, OBJ_SPRITE_OAM | 0x21c,
|
||||
0xfc, OBJ_X_FLIP | 0x20, OBJ_SPRITE_OAM | 0x21c,
|
||||
@ -20,7 +20,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame1[13] = {
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x8 | 0x0, OBJ_SPRITE_OAM | 0x23c
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnMiddle_Frame2[19] = {
|
||||
const u16 sAreaBannerOam_SpawnMiddle_Frame2[19] = {
|
||||
0x6,
|
||||
0xfc, 0x1b8, OBJ_SPRITE_OAM | 0x21c,
|
||||
0xfc, OBJ_X_FLIP | 0x40, OBJ_SPRITE_OAM | 0x21c,
|
||||
@ -30,7 +30,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame2[19] = {
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x8 | 0x1c0, OBJ_SPRITE_OAM | 0x23c
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnMiddle_Frame3[25] = {
|
||||
const u16 sAreaBannerOam_SpawnMiddle_Frame3[25] = {
|
||||
0x8,
|
||||
0xfc, 0x198, OBJ_SPRITE_OAM | 0x21c,
|
||||
0xfc, OBJ_X_FLIP | 0x60, OBJ_SPRITE_OAM | 0x21c,
|
||||
@ -42,7 +42,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame3[25] = {
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x8 | 0x1c0, OBJ_SPRITE_OAM | 0x23c
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnMiddle_Frame4[28] = {
|
||||
const u16 sAreaBannerOam_SpawnMiddle_Frame4[28] = {
|
||||
0x9,
|
||||
0xfc, 0x188, OBJ_SPRITE_OAM | 0x21c,
|
||||
0xfc, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21c,
|
||||
@ -55,7 +55,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame4[28] = {
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x8 | 0x1f0, OBJ_SPRITE_OAM | 0x23c
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnMiddle_Frame5[55] = {
|
||||
const u16 sAreaBannerOam_SpawnMiddle_Frame5[55] = {
|
||||
0x12,
|
||||
0xfb, 0x188, OBJ_SPRITE_OAM | 0x21d,
|
||||
0xfb, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21d,
|
||||
@ -77,7 +77,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame5[55] = {
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfd, OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x23c
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnMiddle_Frame6[55] = {
|
||||
const u16 sAreaBannerOam_SpawnMiddle_Frame6[55] = {
|
||||
0x12,
|
||||
0xfa, 0x188, OBJ_SPRITE_OAM | 0x21d,
|
||||
0xfa, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21d,
|
||||
@ -99,7 +99,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame6[55] = {
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfe, OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x23c
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnMiddle_Frame7[55] = {
|
||||
const u16 sAreaBannerOam_SpawnMiddle_Frame7[55] = {
|
||||
0x12,
|
||||
0xf9, 0x188, OBJ_SPRITE_OAM | 0x21d,
|
||||
0xf9, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21d,
|
||||
@ -121,7 +121,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame7[55] = {
|
||||
OBJ_SHAPE_HORIZONTAL | 0xff, OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x23c
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_StaticMiddle_Frame0[34] = {
|
||||
const u16 sAreaBannerOam_StaticMiddle_Frame0[34] = {
|
||||
0xb,
|
||||
0xf8, 0x188, OBJ_SPRITE_OAM | 0x21d,
|
||||
0xf8, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21d,
|
||||
@ -136,7 +136,7 @@ const u16 sAreaBannerOAM_StaticMiddle_Frame0[34] = {
|
||||
OBJ_SHAPE_HORIZONTAL | 0xf8, OBJ_SIZE_32x16 | 0x50, OBJ_SPRITE_OAM | 0x218
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_UnusedFrame[28] = {
|
||||
const u16 sAreaBannerOam_UnusedFrame[28] = {
|
||||
0x9,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
|
||||
@ -149,7 +149,7 @@ const u16 sAreaBannerOAM_UnusedFrame[28] = {
|
||||
OBJ_SHAPE_VERTICAL | 0x8, 0x188, OBJ_SPRITE_OAM | 0x21f
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnBottom_Frame0[28] = {
|
||||
const u16 sAreaBannerOam_SpawnBottom_Frame0[28] = {
|
||||
0x9,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x6, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x6, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
|
||||
@ -162,7 +162,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame0[28] = {
|
||||
OBJ_SHAPE_VERTICAL | 0x6, 0x188, OBJ_SPRITE_OAM | 0x21f
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnBottom_Frame1[28] = {
|
||||
const u16 sAreaBannerOam_SpawnBottom_Frame1[28] = {
|
||||
0x9,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x4, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x4, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
|
||||
@ -175,7 +175,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame1[28] = {
|
||||
OBJ_SHAPE_VERTICAL | 0x4, 0x188, OBJ_SPRITE_OAM | 0x21f
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnBottom_Frame2[28] = {
|
||||
const u16 sAreaBannerOam_SpawnBottom_Frame2[28] = {
|
||||
0x9,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x2, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x2, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
|
||||
@ -188,7 +188,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame2[28] = {
|
||||
OBJ_SHAPE_VERTICAL | 0x2, 0x188, OBJ_SPRITE_OAM | 0x21f
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnBottom_Frame3[28] = {
|
||||
const u16 sAreaBannerOam_SpawnBottom_Frame3[28] = {
|
||||
0x9,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x0, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
|
||||
OBJ_SHAPE_HORIZONTAL | 0x0, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
|
||||
@ -201,7 +201,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame3[28] = {
|
||||
OBJ_SHAPE_VERTICAL | 0x0, 0x70, OBJ_SPRITE_OAM | 0x21f
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnBottom_Frame4[28] = {
|
||||
const u16 sAreaBannerOam_SpawnBottom_Frame4[28] = {
|
||||
0x9,
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfe, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfe, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
|
||||
@ -214,7 +214,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame4[28] = {
|
||||
OBJ_SHAPE_VERTICAL | 0xfe, 0x188, OBJ_SPRITE_OAM | 0x21f
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnBottom_Frame5[28] = {
|
||||
const u16 sAreaBannerOam_SpawnBottom_Frame5[28] = {
|
||||
0x9,
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
|
||||
@ -227,7 +227,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame5[28] = {
|
||||
OBJ_SHAPE_VERTICAL | 0xfc, 0x70, OBJ_SPRITE_OAM | 0x21f
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_SpawnBottom_Frame6[28] = {
|
||||
const u16 sAreaBannerOam_SpawnBottom_Frame6[28] = {
|
||||
0x9,
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfa, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
|
||||
OBJ_SHAPE_HORIZONTAL | 0xfa, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
|
||||
@ -240,7 +240,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame6[28] = {
|
||||
OBJ_SHAPE_VERTICAL | 0xfa, 0x188, OBJ_SPRITE_OAM | 0x21f
|
||||
};
|
||||
|
||||
const u16 sAreaBannerOAM_StaticBottom_Frame0[28] = {
|
||||
const u16 sAreaBannerOam_StaticBottom_Frame0[28] = {
|
||||
0x9,
|
||||
OBJ_SHAPE_HORIZONTAL | 0xf8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
|
||||
OBJ_SHAPE_HORIZONTAL | 0xf8, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
|
||||
@ -253,95 +253,95 @@ const u16 sAreaBannerOAM_StaticBottom_Frame0[28] = {
|
||||
OBJ_SHAPE_VERTICAL | 0xf8, 0x70, OBJ_SPRITE_OAM | 0x21f
|
||||
};
|
||||
|
||||
const struct FrameData sAreaBannerOAM_StaticMiddle[2] = {
|
||||
sAreaBannerOAM_StaticMiddle_Frame0,
|
||||
const struct FrameData sAreaBannerOam_StaticMiddle[2] = {
|
||||
sAreaBannerOam_StaticMiddle_Frame0,
|
||||
0xFF,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAreaBannerOAM_SpawnMiddle[9] = {
|
||||
sAreaBannerOAM_SpawnMiddle_Frame0,
|
||||
const struct FrameData sAreaBannerOam_SpawnMiddle[9] = {
|
||||
sAreaBannerOam_SpawnMiddle_Frame0,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame1,
|
||||
sAreaBannerOam_SpawnMiddle_Frame1,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame2,
|
||||
sAreaBannerOam_SpawnMiddle_Frame2,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame3,
|
||||
sAreaBannerOam_SpawnMiddle_Frame3,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame4,
|
||||
sAreaBannerOam_SpawnMiddle_Frame4,
|
||||
0x2,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame5,
|
||||
sAreaBannerOam_SpawnMiddle_Frame5,
|
||||
0x2,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame6,
|
||||
sAreaBannerOam_SpawnMiddle_Frame6,
|
||||
0x2,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame7,
|
||||
sAreaBannerOam_SpawnMiddle_Frame7,
|
||||
0x2,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAreaBannerOAM_RemovingMiddle[9] = {
|
||||
sAreaBannerOAM_SpawnMiddle_Frame7,
|
||||
const struct FrameData sAreaBannerOam_RemovingMiddle[9] = {
|
||||
sAreaBannerOam_SpawnMiddle_Frame7,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame6,
|
||||
sAreaBannerOam_SpawnMiddle_Frame6,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame5,
|
||||
sAreaBannerOam_SpawnMiddle_Frame5,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame4,
|
||||
sAreaBannerOam_SpawnMiddle_Frame4,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame3,
|
||||
sAreaBannerOam_SpawnMiddle_Frame3,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame2,
|
||||
sAreaBannerOam_SpawnMiddle_Frame2,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame1,
|
||||
sAreaBannerOam_SpawnMiddle_Frame1,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnMiddle_Frame0,
|
||||
sAreaBannerOam_SpawnMiddle_Frame0,
|
||||
0x1,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAreaBannerOAM_StaticBottom[2] = {
|
||||
sAreaBannerOAM_StaticBottom_Frame0,
|
||||
const struct FrameData sAreaBannerOam_StaticBottom[2] = {
|
||||
sAreaBannerOam_StaticBottom_Frame0,
|
||||
0xFF,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAreaBannerOAM_SpawnBottom[8] = {
|
||||
sAreaBannerOAM_SpawnBottom_Frame0,
|
||||
const struct FrameData sAreaBannerOam_SpawnBottom[8] = {
|
||||
sAreaBannerOam_SpawnBottom_Frame0,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnBottom_Frame1,
|
||||
sAreaBannerOam_SpawnBottom_Frame1,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnBottom_Frame2,
|
||||
sAreaBannerOam_SpawnBottom_Frame2,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnBottom_Frame3,
|
||||
sAreaBannerOam_SpawnBottom_Frame3,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnBottom_Frame4,
|
||||
sAreaBannerOam_SpawnBottom_Frame4,
|
||||
0x2,
|
||||
sAreaBannerOAM_SpawnBottom_Frame5,
|
||||
sAreaBannerOam_SpawnBottom_Frame5,
|
||||
0x2,
|
||||
sAreaBannerOAM_SpawnBottom_Frame6,
|
||||
sAreaBannerOam_SpawnBottom_Frame6,
|
||||
0x2,
|
||||
NULL,
|
||||
0x0
|
||||
};
|
||||
|
||||
const struct FrameData sAreaBannerOAM_RemovingBottom[8] = {
|
||||
sAreaBannerOAM_SpawnBottom_Frame6,
|
||||
const struct FrameData sAreaBannerOam_RemovingBottom[8] = {
|
||||
sAreaBannerOam_SpawnBottom_Frame6,
|
||||
0x2,
|
||||
sAreaBannerOAM_SpawnBottom_Frame5,
|
||||
sAreaBannerOam_SpawnBottom_Frame5,
|
||||
0x2,
|
||||
sAreaBannerOAM_SpawnBottom_Frame4,
|
||||
sAreaBannerOam_SpawnBottom_Frame4,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnBottom_Frame3,
|
||||
sAreaBannerOam_SpawnBottom_Frame3,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnBottom_Frame2,
|
||||
sAreaBannerOam_SpawnBottom_Frame2,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnBottom_Frame1,
|
||||
sAreaBannerOam_SpawnBottom_Frame1,
|
||||
0x1,
|
||||
sAreaBannerOAM_SpawnBottom_Frame0,
|
||||
sAreaBannerOam_SpawnBottom_Frame0,
|
||||
0x1,
|
||||
NULL,
|
||||
0x0
|
||||
|
@ -2006,7 +2006,7 @@ const struct FrameData sParticleSpriteSplashAcidSmallOam[7] = {
|
||||
|
||||
const u8 sEscapeTimerDigitsGfx[1024 * 2] = INCBIN_U8("data/EscapeTimerDigits.gfx");
|
||||
|
||||
const u16 sParticleEscapeOAM[34] = {
|
||||
const u16 sParticleEscapeOam[34] = {
|
||||
0x8,
|
||||
OBJ_SHAPE_VERTICAL | 0x0, 0x0, 0x33c0,
|
||||
OBJ_SHAPE_VERTICAL | 0x0, 0x8, 0x33c0,
|
||||
|
185
src/escape.c
185
src/escape.c
@ -23,13 +23,18 @@ u8 EscapeDetermineTimer(void)
|
||||
if (!EventFunction(EVENT_ACTION_CHECKING, EVENT_ESCAPED_ZEBES))
|
||||
{
|
||||
if (EventFunction(EVENT_ACTION_CHECKING, EVENT_MOTHER_BRAIN_KILLED))
|
||||
{
|
||||
// Didn't escape zebes, and mother brain killed
|
||||
return ESCAPE_MOTHER_BRAIN;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!EventFunction(EVENT_ACTION_CHECKING, EVENT_ESCAPED_CHOZODIA) &&
|
||||
EventFunction(EVENT_ACTION_CHECKING, EVENT_MECHA_RIDLEY_KILLED))
|
||||
return ESCAPE_MECHA_RIDLEY;
|
||||
if (!EventFunction(EVENT_ACTION_CHECKING, EVENT_ESCAPED_CHOZODIA) && EventFunction(EVENT_ACTION_CHECKING, EVENT_MECHA_RIDLEY_KILLED))
|
||||
{
|
||||
// Didn't escape chozodia, and mecha ridley killed
|
||||
return ESCAPE_MECHA_RIDLEY;
|
||||
}
|
||||
}
|
||||
|
||||
return ESCAPE_NONE;
|
||||
@ -62,18 +67,19 @@ u8 EscapeCheckHasEscaped(void)
|
||||
* @brief 539e0 | 38 | Updates the OAM of the escape timer
|
||||
*
|
||||
*/
|
||||
void EscapeUpdateOAM(void)
|
||||
void EscapeUpdateOam(void)
|
||||
{
|
||||
u16 increment;
|
||||
u16 baseTile;
|
||||
|
||||
increment = 0x33C0;
|
||||
// Third palette, base tile of 0x3C0
|
||||
baseTile = 3 << 12 | 0x3C0;
|
||||
|
||||
gParticleEscapeOamFrames[24] = gEscapeTimerDigits.hundredths + increment;
|
||||
gParticleEscapeOamFrames[21] = gEscapeTimerDigits.tenths + increment;
|
||||
gParticleEscapeOamFrames[15] = gEscapeTimerDigits.secondsOnes + increment;
|
||||
gParticleEscapeOamFrames[12] = gEscapeTimerDigits.secondsTens + increment;
|
||||
gParticleEscapeOamFrames[6] = gEscapeTimerDigits.minutesOnes + increment;
|
||||
gParticleEscapeOamFrames[3] = gEscapeTimerDigits.minutesTens + increment;
|
||||
gParticleEscapeOamFrames[24] = baseTile + gEscapeTimerDigits.hundredths;
|
||||
gParticleEscapeOamFrames[21] = baseTile + gEscapeTimerDigits.tenths;
|
||||
gParticleEscapeOamFrames[15] = baseTile + gEscapeTimerDigits.secondsOnes;
|
||||
gParticleEscapeOamFrames[12] = baseTile + gEscapeTimerDigits.secondsTens;
|
||||
gParticleEscapeOamFrames[6] = baseTile + gEscapeTimerDigits.minutesOnes;
|
||||
gParticleEscapeOamFrames[3] = baseTile + gEscapeTimerDigits.minutesTens;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -84,7 +90,7 @@ void EscapeCheckReloadGraphics(void)
|
||||
{
|
||||
if (EscapeDetermineTimer() != ESCAPE_NONE)
|
||||
{
|
||||
DMA_SET(3, sEscapeTimerDigitsGfx, VRAM_BASE + 0x17800, DMA_ENABLE << 16 | sizeof(sEscapeTimerDigitsGfx) / 2);
|
||||
DMA_SET(3, sEscapeTimerDigitsGfx, VRAM_BASE + 0x17800, C_32_2_16(DMA_ENABLE, sizeof(sEscapeTimerDigitsGfx) / 2));
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,10 +100,16 @@ void EscapeCheckReloadGraphics(void)
|
||||
*/
|
||||
void EscapeStart(void)
|
||||
{
|
||||
DMA_SET(3, sEscapeTimerDigitsGfx, VRAM_BASE + 0x17800, DMA_ENABLE << 16 | 0xB0);
|
||||
DMA_SET(3, sEscapeTimerDigitsGfx + 1024, VRAM_BASE + 0x17c00, DMA_ENABLE << 16 | 0xB0);
|
||||
DMA_SET(3, sParticleEscapeOAM, gParticleEscapeOamFrames, DMA_ENABLE << 16 | sizeof(gParticleEscapeOamFrames) / 2);
|
||||
ParticleSet(2, 141, PE_ESCAPE);
|
||||
DMA_SET(3, sEscapeTimerDigitsGfx, VRAM_BASE + 0x17800, C_32_2_16(DMA_ENABLE, 0xB0));
|
||||
DMA_SET(3, sEscapeTimerDigitsGfx + 1024, VRAM_BASE + 0x17c00, C_32_2_16(DMA_ENABLE, 0xB0));
|
||||
|
||||
// Setup oam
|
||||
DMA_SET(3, sParticleEscapeOam, gParticleEscapeOamFrames, C_32_2_16(DMA_ENABLE, ARRAY_SIZE(gParticleEscapeOamFrames)));
|
||||
|
||||
// Escape timer uses absolute position, which isn't converted to pixel coordinates when drawing,
|
||||
// hence pixel coordinates are used when creating it
|
||||
ParticleSet(SUB_PIXEL_TO_PIXEL(PIXEL_SIZE * 2),
|
||||
SUB_PIXEL_TO_PIXEL(BLOCK_SIZE * 9 - QUARTER_BLOCK_SIZE + PIXEL_SIZE), PE_ESCAPE);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,66 +121,38 @@ void EscapeSetTimer(void)
|
||||
u8 escape;
|
||||
|
||||
escape = EscapeDetermineTimer();
|
||||
gEscapeTimerCounter = 0xFF;
|
||||
|
||||
gEscapeTimerCounter = UCHAR_MAX;
|
||||
|
||||
if (escape == ESCAPE_MOTHER_BRAIN)
|
||||
{
|
||||
if (gDifficulty == DIFF_EASY)
|
||||
{
|
||||
gEscapeTimerDigits.hundredths = 0x0;
|
||||
gEscapeTimerDigits.tenths = 0x0;
|
||||
gEscapeTimerDigits.secondsOnes = 0x0;
|
||||
gEscapeTimerDigits.secondsTens = 0x0;
|
||||
gEscapeTimerDigits.minutesOnes = 0x3;
|
||||
gEscapeTimerDigits.minutesTens = 0x0;
|
||||
CREATE_ESCAPE_TIMER(3, 0, 0);
|
||||
}
|
||||
else if (gDifficulty == DIFF_HARD)
|
||||
{
|
||||
gEscapeTimerDigits.hundredths = 0x0;
|
||||
gEscapeTimerDigits.tenths = 0x0;
|
||||
gEscapeTimerDigits.secondsOnes = 0x0;
|
||||
gEscapeTimerDigits.secondsTens = 0x0;
|
||||
gEscapeTimerDigits.minutesOnes = 0x1;
|
||||
gEscapeTimerDigits.minutesTens = 0x0;
|
||||
CREATE_ESCAPE_TIMER(1, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
gEscapeTimerDigits.hundredths = 0x0;
|
||||
gEscapeTimerDigits.tenths = 0x0;
|
||||
gEscapeTimerDigits.secondsOnes = 0x0;
|
||||
gEscapeTimerDigits.secondsTens = 0x0;
|
||||
gEscapeTimerDigits.minutesOnes = 0x2;
|
||||
gEscapeTimerDigits.minutesTens = 0x0;
|
||||
CREATE_ESCAPE_TIMER(2, 0, 0);
|
||||
}
|
||||
}
|
||||
else if (escape == ESCAPE_MECHA_RIDLEY)
|
||||
{
|
||||
if (gDifficulty == DIFF_HARD)
|
||||
{
|
||||
gEscapeTimerDigits.hundredths = 0x0;
|
||||
gEscapeTimerDigits.tenths = 0x0;
|
||||
gEscapeTimerDigits.secondsOnes = 0x0;
|
||||
gEscapeTimerDigits.secondsTens = 0x0;
|
||||
gEscapeTimerDigits.minutesOnes = 0x3;
|
||||
gEscapeTimerDigits.minutesTens = 0x0;
|
||||
CREATE_ESCAPE_TIMER(3, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
gEscapeTimerDigits.hundredths = 0x0;
|
||||
gEscapeTimerDigits.tenths = 0x0;
|
||||
gEscapeTimerDigits.secondsOnes = 0x0;
|
||||
gEscapeTimerDigits.secondsTens = 0x0;
|
||||
gEscapeTimerDigits.minutesOnes = 0x5;
|
||||
gEscapeTimerDigits.minutesTens = 0x0;
|
||||
CREATE_ESCAPE_TIMER(5, 0, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gEscapeTimerDigits.hundredths = 0x9;
|
||||
gEscapeTimerDigits.tenths = 0x9;
|
||||
gEscapeTimerDigits.secondsOnes = 0x9;
|
||||
gEscapeTimerDigits.secondsTens = 0x9;
|
||||
gEscapeTimerDigits.minutesOnes = 0x9;
|
||||
gEscapeTimerDigits.minutesTens = 0x9;
|
||||
CREATE_ESCAPE_TIMER(99, 99, 99);
|
||||
}
|
||||
}
|
||||
|
||||
@ -189,71 +173,78 @@ void EscaepUpdateTimer(void)
|
||||
if (gGameModeSub1 != SUB_GAME_MODE_PLAYING)
|
||||
return;
|
||||
|
||||
if (gPreventMovementTimer != 0x0)
|
||||
if (gPreventMovementTimer != 0)
|
||||
return;
|
||||
|
||||
counter = ++gEscapeTimerCounter;
|
||||
|
||||
if (counter & 0x1)
|
||||
if (counter % 2)
|
||||
{
|
||||
if (gEscapeTimerDigits.hundredths > 0x1)
|
||||
gEscapeTimerDigits.hundredths -= 0x2;
|
||||
if (gEscapeTimerDigits.hundredths > 1)
|
||||
{
|
||||
gEscapeTimerDigits.hundredths -= 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
gEscapeTimerDigits.hundredths += 0x8;
|
||||
if (gEscapeTimerDigits.tenths != 0x0)
|
||||
gEscapeTimerDigits.hundredths += 8;
|
||||
|
||||
if (gEscapeTimerDigits.tenths != 0)
|
||||
gEscapeTimerDigits.tenths--;
|
||||
else
|
||||
gEscapeTimerDigits.tenths = 0x9;
|
||||
gEscapeTimerDigits.tenths = 9;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gEscapeTimerDigits.hundredths != 0x0)
|
||||
if (gEscapeTimerDigits.hundredths != 0)
|
||||
{
|
||||
gEscapeTimerDigits.hundredths--;
|
||||
}
|
||||
else
|
||||
{
|
||||
gEscapeTimerDigits.hundredths = 0x9;
|
||||
if (gEscapeTimerDigits.tenths != 0x0)
|
||||
gEscapeTimerDigits.hundredths = 9;
|
||||
|
||||
if (gEscapeTimerDigits.tenths != 0)
|
||||
gEscapeTimerDigits.tenths--;
|
||||
else
|
||||
gEscapeTimerDigits.tenths = 0x9;
|
||||
gEscapeTimerDigits.tenths = 9;
|
||||
}
|
||||
}
|
||||
|
||||
if ((counter & 0x3F) == 0x0)
|
||||
if (counter % 64 == 0)
|
||||
{
|
||||
gEscapeTimerDigits.hundredths = 0x9;
|
||||
gEscapeTimerDigits.tenths = 0x9;
|
||||
if (gEscapeTimerDigits.secondsOnes != 0x0)
|
||||
gEscapeTimerDigits.secondsOnes--;
|
||||
else
|
||||
gEscapeTimerDigits.hundredths = 99 / 10;
|
||||
gEscapeTimerDigits.tenths = 99 % 10;
|
||||
|
||||
if (gEscapeTimerDigits.secondsOnes != 0)
|
||||
{
|
||||
gEscapeTimerDigits.secondsOnes = 0x9;
|
||||
if (gEscapeTimerDigits.secondsTens != 0x0)
|
||||
gEscapeTimerDigits.secondsTens--;
|
||||
else
|
||||
{
|
||||
gEscapeTimerDigits.secondsTens = 0x5;
|
||||
if (gEscapeTimerDigits.minutesOnes != 0x0)
|
||||
gEscapeTimerDigits.minutesOnes--;
|
||||
else
|
||||
{
|
||||
gEscapeTimerDigits.minutesOnes = 0x9;
|
||||
if (gEscapeTimerDigits.minutesTens != 0x0)
|
||||
gEscapeTimerDigits.minutesTens--;
|
||||
else
|
||||
{
|
||||
gEscapeTimerDigits.hundredths = 0x0;
|
||||
gEscapeTimerDigits.tenths = 0x0;
|
||||
gEscapeTimerDigits.secondsOnes = 0x0;
|
||||
gEscapeTimerDigits.secondsTens = 0x0;
|
||||
gEscapeTimerDigits.minutesOnes = 0x0;
|
||||
gEscapeTimerDigits.minutesTens = 0x0;
|
||||
gCurrentEscapeStatus = ESCAPE_STATUS_FAILED;
|
||||
}
|
||||
}
|
||||
}
|
||||
gEscapeTimerDigits.secondsOnes--;
|
||||
return;
|
||||
}
|
||||
|
||||
gEscapeTimerDigits.secondsOnes = 9;
|
||||
|
||||
if (gEscapeTimerDigits.secondsTens != 0)
|
||||
{
|
||||
gEscapeTimerDigits.secondsTens--;
|
||||
return;
|
||||
}
|
||||
|
||||
gEscapeTimerDigits.secondsTens = 5;
|
||||
if (gEscapeTimerDigits.minutesOnes != 0)
|
||||
{
|
||||
gEscapeTimerDigits.minutesOnes--;
|
||||
return;
|
||||
}
|
||||
|
||||
gEscapeTimerDigits.minutesOnes = 9;
|
||||
if (gEscapeTimerDigits.minutesTens != 0)
|
||||
{
|
||||
gEscapeTimerDigits.minutesTens--;
|
||||
return;
|
||||
}
|
||||
|
||||
CREATE_ESCAPE_TIMER(0, 0, 0);
|
||||
gCurrentEscapeStatus = ESCAPE_STATUS_FAILED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
38
src/hud.c
38
src/hud.c
@ -1,5 +1,6 @@
|
||||
#include "gba.h"
|
||||
#include "hud.h"
|
||||
#include "gba.h"
|
||||
#include "macros.h"
|
||||
#include "oam.h"
|
||||
|
||||
#include "data/hud_data.h"
|
||||
@ -1208,17 +1209,28 @@ void HUDUpdateGfx(void)
|
||||
*/
|
||||
void HudDrawSuitless(void)
|
||||
{
|
||||
u32 chargeCounter;
|
||||
u8 chargeCounter;
|
||||
u8 normalized;
|
||||
|
||||
chargeCounter = gSamusWeaponInfo.chargeCounter;
|
||||
if (chargeCounter >= 0x70)
|
||||
chargeCounter = (u8)(gSamusWeaponInfo.chargeCounter - 0x70) / 4 + 0x34;
|
||||
else
|
||||
chargeCounter /= 2;
|
||||
|
||||
if (chargeCounter < 0x38)
|
||||
if (chargeCounter >= SUITLESS_BAR_NBR_ELEMS * 2)
|
||||
{
|
||||
DMA_SET(3, sSuitlessHUDChargeBarGfx + chargeCounter * 256, VRAM_BASE + 0x11100, (DMA_ENABLE << 16) | 0x80);
|
||||
// Normalize to 0
|
||||
normalized = gSamusWeaponInfo.chargeCounter - SUITLESS_BAR_NBR_ELEMS * 2;
|
||||
|
||||
// Switch between the last 4 graphics
|
||||
chargeCounter = normalized / 4 + SUITLESS_BAR_NBR_ELEMS - 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
chargeCounter /= 2;
|
||||
}
|
||||
|
||||
// Transfer graphics
|
||||
if (chargeCounter < SUITLESS_BAR_NBR_ELEMS)
|
||||
{
|
||||
DMA_SET(3, &sSuitlessHUDChargeBarGfx[chargeCounter * SUITLESS_BAR_SIZE], VRAM_BASE + 0x11100,
|
||||
C_32_2_16(DMA_ENABLE, SUITLESS_BAR_SIZE / 2));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1228,12 +1240,16 @@ void HudDrawSuitless(void)
|
||||
*/
|
||||
void HudDraw(void)
|
||||
{
|
||||
HudDrawEnergy(0x0);
|
||||
HudDrawEnergy(0);
|
||||
|
||||
HudDrawMissiles(FALSE);
|
||||
HudDrawPowerBomb(FALSE);
|
||||
HudDrawSuperMissiles(FALSE);
|
||||
|
||||
HUDUpdateGfx();
|
||||
|
||||
if (gEquipment.suitType == SUIT_SUITLESS)
|
||||
HudDrawSuitless();
|
||||
|
||||
HUDUpdateOAM();
|
||||
}
|
||||
}
|
||||
|
@ -19,76 +19,77 @@
|
||||
* @brief 53c68 | 24 | Loads the common sprites graphics
|
||||
*
|
||||
*/
|
||||
void HUDGenericLoadCommonSpriteGfx(void)
|
||||
void HudGenericLoadCommonSpriteGfx(void)
|
||||
{
|
||||
DMA_SET(3, sCommonSpritesGfx, VRAM_BASE + 0x10800, DMA_ENABLE << 16 | 0x1C00);
|
||||
DMA_SET(3, sCommonSpritesGfx, VRAM_BASE + 0x10800, C_32_2_16(DMA_ENABLE, 0x1C00));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 53c8c | 24 | Resets the refill animations
|
||||
*
|
||||
*/
|
||||
void HUDGenericResetRefillAnimations(void)
|
||||
void HudGenericResetRefillAnimations(void)
|
||||
{
|
||||
gEnergyRefillAnimation = 0x0;
|
||||
gMissileRefillAnimation = 0x0;
|
||||
gSuperMissileRefillAnimation = 0x0;
|
||||
gPowerBombRefillAnimation = 0x0;
|
||||
gEnergyRefillAnimation = 0;
|
||||
gMissileRefillAnimation = 0;
|
||||
gSuperMissileRefillAnimation = 0;
|
||||
gPowerBombRefillAnimation = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 53cb0 | 120 | Resets the HUD data and the particles
|
||||
*
|
||||
*/
|
||||
void HUDGenericResetHUDData(void)
|
||||
void HudGenericResetHUDData(void)
|
||||
{
|
||||
struct ParticleEffect* pParticle;
|
||||
|
||||
if (gGameModeSub3 == 0x0 || gTourianEscapeCutsceneStage != 0x0)
|
||||
if (gGameModeSub3 == 0 || gTourianEscapeCutsceneStage != 0)
|
||||
{
|
||||
for (pParticle = gParticleEffects; pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES; pParticle++)
|
||||
pParticle->status = 0x0;
|
||||
pParticle->status = 0;
|
||||
|
||||
gEnergyDigits.ones = 0xF;
|
||||
gEnergyDigits.tens = 0xF;
|
||||
gEnergyDigits.hundreds = 0xF;
|
||||
gEnergyDigits.thousands = 0xF;
|
||||
gEnergyDigits.ones = 15;
|
||||
gEnergyDigits.tens = 15;
|
||||
gEnergyDigits.hundreds = 15;
|
||||
gEnergyDigits.thousands = 15;
|
||||
|
||||
gMaxEnergyDigits.ones = 0xF;
|
||||
gMaxEnergyDigits.tens = 0xF;
|
||||
gMaxEnergyDigits.hundreds = 0xF;
|
||||
gMaxEnergyDigits.thousands = 0xF;
|
||||
gMaxEnergyDigits.ones = 15;
|
||||
gMaxEnergyDigits.tens = 15;
|
||||
gMaxEnergyDigits.hundreds = 15;
|
||||
gMaxEnergyDigits.thousands = 15;
|
||||
|
||||
gMissileDigits.ones = 0xF;
|
||||
gMissileDigits.tens = 0xF;
|
||||
gMissileDigits.hundreds = 0xF;
|
||||
gMissileDigits.ones = 15;
|
||||
gMissileDigits.tens = 15;
|
||||
gMissileDigits.hundreds = 15;
|
||||
|
||||
gPowerBombDigits.ones = 0xF;
|
||||
gPowerBombDigits.tens = 0xF;
|
||||
gPowerBombDigits.hundreds = 0xF;
|
||||
gPowerBombDigits.ones = 15;
|
||||
gPowerBombDigits.tens = 15;
|
||||
gPowerBombDigits.hundreds = 15;
|
||||
|
||||
gSuperMissileDigits.ones = 0xF;
|
||||
gSuperMissileDigits.tens = 0xF;
|
||||
gSuperMissileDigits.hundreds = 0xF;
|
||||
gSuperMissileDigits.ones = 15;
|
||||
gSuperMissileDigits.tens = 15;
|
||||
gSuperMissileDigits.hundreds = 15;
|
||||
|
||||
gMissileHighlightStatus = 0x0;
|
||||
gPowerBombHighlightStatus = 0x0;
|
||||
gSuperMissileHighlightStatus = 0x0;
|
||||
gMissileHighlightStatus = 0;
|
||||
gPowerBombHighlightStatus = 0;
|
||||
gSuperMissileHighlightStatus = 0;
|
||||
|
||||
gUpdateMinimapFlag = MINIMAP_UPDATE_FLAG_LOWER_LINE;
|
||||
gCurrentEscapeStatus = ESCAPE_STATUS_NONE;
|
||||
|
||||
HUDGenericResetRefillAnimations();
|
||||
HudGenericResetRefillAnimations();
|
||||
}
|
||||
else if (gPauseScreenFlag == PAUSE_SCREEN_NONE)
|
||||
{
|
||||
HUDGenericResetRefillAnimations();
|
||||
HudGenericResetRefillAnimations();
|
||||
|
||||
for (pParticle = gParticleEffects; pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES; pParticle++)
|
||||
{
|
||||
if (pParticle->effect < PE_CHARGING_BEAM)
|
||||
pParticle->status = 0x0;
|
||||
pParticle->status = 0;
|
||||
else if (pParticle->effect == PE_ESCAPE && EscapeDetermineTimer() == ESCAPE_NONE)
|
||||
pParticle->status = 0x0;
|
||||
pParticle->status = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -372,7 +372,7 @@ void InitAndLoadGenerics(void)
|
||||
if (gGameModeSub3 == 0 || gTourianEscapeCutsceneStage != 0)
|
||||
{
|
||||
ClearGfxRam();
|
||||
HUDGenericLoadCommonSpriteGfx();
|
||||
HudGenericLoadCommonSpriteGfx();
|
||||
}
|
||||
|
||||
gWrittenToBLDY_NonGameplay = 0x10;
|
||||
@ -408,7 +408,7 @@ void InitAndLoadGenerics(void)
|
||||
do {
|
||||
} while ((u16)(read16(REG_VCOUNT) - 0x15) < 0x8C);
|
||||
|
||||
HUDGenericResetHUDData();
|
||||
HudGenericResetHUDData();
|
||||
SpriteLoadAllData();
|
||||
ProjectileCallLoadGraphicsAndClearProjectiles();
|
||||
|
||||
|
@ -196,11 +196,11 @@ void unk_5fd58(void)
|
||||
{
|
||||
for (j = 0; j < 10; j++)
|
||||
{
|
||||
value = src[i * 0x20 + j] & 0xFFF;
|
||||
value = src[i * 32 + j] & 0xFFF;
|
||||
|
||||
dst[i * 0x20 + j] = (dst[i * 0x20 + j] & 0xF000) | value;
|
||||
dst[i * 0x20 + j + 10] = (dst[i * 0x20 + j + 10] & 0xF000) | value;
|
||||
dst[i * 0x20 + j + 20] = (dst[i * 0x20 + j + 20] & 0xF000) | value;
|
||||
dst[i * 32 + j] = (dst[i * 32 + j] & 0xF000) | value;
|
||||
dst[i * 32 + j + 10] = (dst[i * 32 + j + 10] & 0xF000) | value;
|
||||
dst[i * 32 + j + 20] = (dst[i * 32 + j + 20] & 0xF000) | value;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -284,7 +284,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (gInGameCutscene.timer & 1)
|
||||
if (MOD_AND(gInGameCutscene.timer, 2))
|
||||
break;
|
||||
|
||||
if (gWrittenToBLDALPHA_H != 16)
|
||||
@ -307,21 +307,21 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
changeStage++;
|
||||
|
||||
gWrittenToBLDALPHA = gWrittenToBLDALPHA_H << 8 | gWrittenToBLDALPHA_L;
|
||||
changeStage >>= 1;
|
||||
changeStage = DIV_SHIFT(changeStage, 2);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
// Hide BG0, and backup its tilemap
|
||||
gWrittenToDISPCNT = gIoRegistersBackup.DISPCNT_NonGameplay & ~DCNT_BG0;
|
||||
DMA_SET(3, VRAM_BASE + 0x800, EWRAM_BASE + 0x1E000, DMA_ENABLE << 16 | 0x400);
|
||||
DMA_SET(3, VRAM_BASE + (1 * BGCNT_VRAM_TILE_SIZE), EWRAM_BASE + 0x1E000, C_32_2_16(DMA_ENABLE, BGCNT_VRAM_TILE_SIZE / 2));
|
||||
|
||||
changeStage = TRUE;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
// Fill BG0 tilemap with tile 0xC0, palette 9
|
||||
BitFill(3, (9 << 0xC) | 0xC0, VRAM_BASE + 0x800, 0x800, 16);
|
||||
write16(REG_BG0CNT, 0x104);
|
||||
BitFill(3, (9 << 12) | 0xC0, VRAM_BASE + (1 * BGCNT_VRAM_TILE_SIZE), 0x800, 16);
|
||||
write16(REG_BG0CNT, CREATE_BGCNT(1, 1, BGCNT_HIGH_PRIORITY, BGCNT_SIZE_256x256));
|
||||
|
||||
changeStage = TRUE;
|
||||
break;
|
||||
@ -338,14 +338,14 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
gWrittenToDISPCNT = gIoRegistersBackup.DISPCNT_NonGameplay;
|
||||
gWrittenToWININ_H = 0x3F;
|
||||
gWrittenToWINOUT_L = 0x1E;
|
||||
gWrittenToBLDALPHA = 0x100D;
|
||||
gWrittenToBLDCNT = 0x3F41;
|
||||
gWrittenToBLDALPHA = C_16_2_8(16, 13);
|
||||
gWrittenToBLDCNT = BLDCNT_BG0_FIRST_TARGET_PIXEL | BLDCNT_ALPHA_BLENDING_EFFECT | BLDCNT_SCREEN_SECOND_TARGET;
|
||||
|
||||
gSuitFlashEffect.left = left;
|
||||
gSuitFlashEffect.right = right;
|
||||
gSuitFlashEffect.top = top;
|
||||
gSuitFlashEffect.bottom = bottom;
|
||||
gSuitFlashEffect.timer = 0x0;
|
||||
gSuitFlashEffect.timer = 0;
|
||||
|
||||
if (gCurrentItemBeingAcquired == ITEM_ACQUISITION_VARIA)
|
||||
SoundPlay(0x222); // Varia upgrade sound
|
||||
@ -378,7 +378,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
else
|
||||
changeStage++;
|
||||
|
||||
changeStage >>= 1;
|
||||
changeStage = DIV_SHIFT(changeStage, 2);
|
||||
break;
|
||||
|
||||
case 9:
|
||||
@ -404,7 +404,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
else
|
||||
changeStage++;
|
||||
|
||||
changeStage >>= 1;
|
||||
changeStage = DIV_SHIFT(changeStage, 2);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
@ -430,8 +430,8 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
case 13:
|
||||
// Handle suit flash shrinking vertically
|
||||
result = InGameCutsceneCalculateSuitFlashOffset(3, top - gSuitFlashEffect.top, gSuitFlashEffect.bottom - bottom);
|
||||
res_1 = result & 0xFF;
|
||||
res_2 = (result & 0xFF00) >> 8;
|
||||
res_1 = LOW_BYTE(result);
|
||||
res_2 = HIGH_BYTE(result);
|
||||
|
||||
if (gSuitFlashEffect.top < top)
|
||||
{
|
||||
@ -451,14 +451,14 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
else
|
||||
changeStage++;
|
||||
|
||||
changeStage >>= 1;
|
||||
changeStage = DIV_SHIFT(changeStage, 2);
|
||||
break;
|
||||
|
||||
case 14:
|
||||
// Handle suit flash shrinking horizontally
|
||||
result = InGameCutsceneCalculateSuitFlashOffset(9, left - gSuitFlashEffect.left, gSuitFlashEffect.right - right);
|
||||
res_1 = result & 0xFF;
|
||||
res_2 = (result & 0xFF00) >> 8;
|
||||
res_1 = LOW_BYTE(result);
|
||||
res_2 = HIGH_BYTE(result);
|
||||
|
||||
if (gSuitFlashEffect.left < left)
|
||||
{
|
||||
@ -478,7 +478,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
else
|
||||
changeStage++;
|
||||
|
||||
changeStage >>= 1;
|
||||
changeStage = DIV_SHIFT(changeStage, 2);
|
||||
break;
|
||||
|
||||
case 15:
|
||||
@ -498,7 +498,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
|
||||
case 16:
|
||||
// Put BG0 in the state it was before the cutscene
|
||||
DMA_SET(3, EWRAM_BASE + 0x1E000, VRAM_BASE + 0x800, DMA_ENABLE << 16 | 0x400);
|
||||
DMA_SET(3, EWRAM_BASE + 0x1E000, VRAM_BASE + (1 * BGCNT_VRAM_TILE_SIZE), C_32_2_16(DMA_ENABLE, BGCNT_VRAM_TILE_SIZE / 2));
|
||||
write16(REG_BG0CNT, gIoRegistersBackup.BG0CNT);
|
||||
|
||||
changeStage = TRUE;
|
||||
@ -533,8 +533,8 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
else
|
||||
changeStage++;
|
||||
|
||||
gWrittenToBLDALPHA = gWrittenToBLDALPHA_H << 8 | gWrittenToBLDALPHA_L;
|
||||
changeStage >>= 1;
|
||||
gWrittenToBLDALPHA = C_16_2_8(gWrittenToBLDALPHA_H, gWrittenToBLDALPHA_L);
|
||||
changeStage = DIV_SHIFT(changeStage, 2);
|
||||
break;
|
||||
|
||||
case 19:
|
||||
@ -559,8 +559,8 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
|
||||
}
|
||||
|
||||
// Update window 1
|
||||
gWrittenToWIN1H = gSuitFlashEffect.left << 8 | gSuitFlashEffect.right;
|
||||
gWrittenToWIN1V = gSuitFlashEffect.top << 8 | gSuitFlashEffect.bottom;
|
||||
gWrittenToWIN1H = C_16_2_8(gSuitFlashEffect.left, gSuitFlashEffect.right);
|
||||
gWrittenToWIN1V = C_16_2_8(gSuitFlashEffect.top, gSuitFlashEffect.bottom);
|
||||
|
||||
return ended;
|
||||
}
|
||||
@ -601,7 +601,7 @@ u16 InGameCutsceneCalculateSuitFlashOffset(u8 intensity, u8 start, u8 end)
|
||||
newEnd = intensity;
|
||||
}
|
||||
|
||||
return newEnd << 8 | newStart;
|
||||
return C_16_2_8(newEnd, newStart);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -756,7 +756,7 @@ void InGameCutsceneCheckPlayOnTransition(void)
|
||||
for (i = 0; i < ARRAY_SIZE(sInGameCutsceneData); i++)
|
||||
{
|
||||
// ?
|
||||
if (i % 32 == 0 && gInGameCutscenesTriggered[i >> 5] == -1)
|
||||
if (i % 32 == 0 && gInGameCutscenesTriggered[DIV_SHIFT(i, 32)] == -1)
|
||||
{
|
||||
i += 32;
|
||||
continue;
|
||||
@ -794,7 +794,7 @@ void InGameCutsceneCheckPlayOnTransition(void)
|
||||
CallLZ77UncompVRAM(sSamusCloseUpGfx, VRAM_BASE + 0x9000);
|
||||
CallLZ77UncompWRAM(sSamusCloseUpBackgroundMap, gDecompBG0Map);
|
||||
CallLZ77UncompWRAM(sSamusCloseUpEyesTiletable, EWRAM_BASE + 0x2B000);
|
||||
DMA_SET(3, sSamusCloseUpPAL, PALRAM_BASE + 0xE0, DMA_ENABLE << 16 | 0x60);
|
||||
DMA_SET(3, sSamusCloseUpPal, PALRAM_BASE + 0xE0, C_32_2_16(DMA_ENABLE, ARRAY_SIZE(sSamusCloseUpPal)));
|
||||
|
||||
unk_5fd58();
|
||||
|
||||
@ -900,13 +900,13 @@ void UpdateAnimatedPaletteAfterTransitionOrReload(void)
|
||||
if (gPauseScreenFlag)
|
||||
{
|
||||
if (gAnimatedGraphicsEntry.palette != 0) // FIXME add symbol for ewram address
|
||||
DMA_SET(3, ANIMATED_PALETTE_EWRAM, ANIMATED_PALETTE_PALRAM, DMA_ENABLE << 16 | 16);
|
||||
DMA_SET(3, ANIMATED_PALETTE_EWRAM, ANIMATED_PALETTE_PALRAM, C_32_2_16(DMA_ENABLE, 16));
|
||||
}
|
||||
else
|
||||
{
|
||||
gInGameCutscene.stage = 0;
|
||||
gInGameCutscene.timer = 0;
|
||||
AnimatedPaletteCheckDisableOnTransition(); // Undefined
|
||||
AnimatedPaletteCheckDisableOnTransition();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1869,7 +1869,7 @@ void ParticleEscape(struct ParticleEffect* pParticle)
|
||||
pParticle->status = 0;
|
||||
}
|
||||
|
||||
EscapeUpdateOAM();
|
||||
EscapeUpdateOam();
|
||||
|
||||
gCurrentParticleEffectOamFramePointer = gParticleEscapeOamFrames;
|
||||
}
|
||||
|
492
src/samus.c
492
src/samus.c
File diff suppressed because it is too large
Load Diff
@ -557,7 +557,7 @@ u32 SramProcessEndingSave_Unused(void)
|
||||
// 0 | 0 | Hard hiragana | Normal hiragana | Easy hiragana | Hard english | Normal english | Easy english
|
||||
bit = 1;
|
||||
if (gLanguage == LANGUAGE_HIRAGANA)
|
||||
bit = 8;
|
||||
bit = 1 << 3;
|
||||
|
||||
gGameCompletion.completedGame |= bit << gDifficulty;
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,11 @@
|
||||
#include "sprites_AI/area_banner.h"
|
||||
#include "macros.h"
|
||||
|
||||
#include "data/sprites/area_banner.h"
|
||||
|
||||
#include "constants/sprite.h"
|
||||
|
||||
#include "structs/sprite.h"
|
||||
#include "globals.h"
|
||||
|
||||
/**
|
||||
* @brief 3c704 | a4 | Initializes an area banner sprite
|
||||
@ -13,37 +16,39 @@ void AreaBannerInit(void)
|
||||
gCurrentSprite.samusCollision = SSC_NONE;
|
||||
gCurrentSprite.properties |= SP_ALWAYS_ACTIVE;
|
||||
|
||||
gCurrentSprite.drawDistanceTopOffset = 0x10;
|
||||
gCurrentSprite.drawDistanceBottomOffset = 0x10,
|
||||
gCurrentSprite.drawDistanceHorizontalOffset = 0x80;
|
||||
gCurrentSprite.drawDistanceTopOffset = SUB_PIXEL_TO_PIXEL(BLOCK_SIZE);
|
||||
gCurrentSprite.drawDistanceBottomOffset = SUB_PIXEL_TO_PIXEL(BLOCK_SIZE);
|
||||
gCurrentSprite.drawDistanceHorizontalOffset = SUB_PIXEL_TO_PIXEL(BLOCK_SIZE * 8);
|
||||
|
||||
gCurrentSprite.hitboxTopOffset = -0x4;
|
||||
gCurrentSprite.hitboxBottomOffset = 0x4;
|
||||
gCurrentSprite.hitboxLeftOffset = -0x4;
|
||||
gCurrentSprite.hitboxRightOffset = 0x4;
|
||||
gCurrentSprite.hitboxTopOffset = -PIXEL_SIZE;
|
||||
gCurrentSprite.hitboxBottomOffset = PIXEL_SIZE;
|
||||
gCurrentSprite.hitboxLeftOffset = -PIXEL_SIZE;
|
||||
gCurrentSprite.hitboxRightOffset = PIXEL_SIZE;
|
||||
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
gCurrentSprite.animationDurationCounter = 0;
|
||||
gCurrentSprite.currentAnimationFrame = 0;
|
||||
|
||||
gCurrentSprite.pose = AREA_BANNER_POSE_SPAWN;
|
||||
|
||||
if (gCurrentSprite.roomSlot < LT_MOTHERSHIP)
|
||||
{
|
||||
// Area name, spawn at bottom
|
||||
gCurrentSprite.pOam = sAreaBannerOAM_SpawnBottom;
|
||||
gCurrentSprite.pOam = sAreaBannerOam_SpawnBottom;
|
||||
gCurrentSprite.workVariable = TRUE;
|
||||
gCurrentSprite.yPosition = 0x98;
|
||||
gCurrentSprite.xPosition = 0x78;
|
||||
gCurrentSprite.xPosition = SCREEN_SIZE_X / 2;
|
||||
}
|
||||
else if ((gCurrentSprite.roomSlot == LT_SAVE_ROOM || gCurrentSprite.roomSlot == LT_MAP_ROOM) && gAlarmTimer != 0)
|
||||
{
|
||||
gCurrentSprite.status = 0; // Don't spawn save/map if alarm is active
|
||||
}
|
||||
else if ((gCurrentSprite.roomSlot == LT_SAVE_ROOM || gCurrentSprite.roomSlot == LT_MAP_ROOM) && gAlarmTimer != 0x0)
|
||||
gCurrentSprite.status = 0x0; // Don't spawn save/map if alarm is active
|
||||
else
|
||||
{
|
||||
// Spawn in middle
|
||||
gCurrentSprite.pOam = sAreaBannerOAM_SpawnMiddle;
|
||||
gCurrentSprite.pOam = sAreaBannerOam_SpawnMiddle;
|
||||
gCurrentSprite.workVariable = FALSE;
|
||||
gCurrentSprite.yPosition = 0x36;
|
||||
gCurrentSprite.xPosition = 0x78;
|
||||
gCurrentSprite.xPosition = SCREEN_SIZE_X / 2;
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,23 +71,23 @@ void AreaBannerScrollingUp(void)
|
||||
{
|
||||
if (SpriteUtilCheckEndCurrentSpriteAnim())
|
||||
{
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
gCurrentSprite.animationDurationCounter = 0;
|
||||
gCurrentSprite.currentAnimationFrame = 0;
|
||||
gCurrentSprite.pose = AREA_BANNER_POSE_STATIC;
|
||||
|
||||
// Set OAM and timer for how long the message stays
|
||||
if (gCurrentSprite.workVariable) // Position flag, 1 = on bottom, 0 = in middle
|
||||
{
|
||||
gCurrentSprite.pOam = sAreaBannerOAM_StaticBottom;
|
||||
gCurrentSprite.timer = 0x78;
|
||||
gCurrentSprite.pOam = sAreaBannerOam_StaticBottom;
|
||||
gCurrentSprite.timer = 120;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentSprite.pOam = sAreaBannerOAM_StaticMiddle;
|
||||
gCurrentSprite.pOam = sAreaBannerOam_StaticMiddle;
|
||||
if (gCurrentSprite.roomSlot == LT_SAVE_ROOM || gCurrentSprite.roomSlot == LT_MAP_ROOM)
|
||||
gCurrentSprite.timer = 0x32;
|
||||
gCurrentSprite.timer = 50;
|
||||
else
|
||||
gCurrentSprite.timer = 0x5A;
|
||||
gCurrentSprite.timer = 90;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -94,17 +99,17 @@ void AreaBannerScrollingUp(void)
|
||||
void AreaBannerStatic(void)
|
||||
{
|
||||
gCurrentSprite.timer--; // Timer for how long it stays
|
||||
if (gCurrentSprite.timer == 0x0)
|
||||
if (gCurrentSprite.timer == 0)
|
||||
{
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
gCurrentSprite.animationDurationCounter = 0;
|
||||
gCurrentSprite.currentAnimationFrame = 0;
|
||||
gCurrentSprite.pose = AREA_BANNER_POSE_REMOVING;
|
||||
|
||||
// Set OAM
|
||||
if (gCurrentSprite.workVariable)
|
||||
gCurrentSprite.pOam = sAreaBannerOAM_RemovingBottom;
|
||||
gCurrentSprite.pOam = sAreaBannerOam_RemovingBottom;
|
||||
else
|
||||
gCurrentSprite.pOam = sAreaBannerOAM_RemovingMiddle;
|
||||
gCurrentSprite.pOam = sAreaBannerOam_RemovingMiddle;
|
||||
}
|
||||
}
|
||||
|
||||
@ -115,7 +120,7 @@ void AreaBannerStatic(void)
|
||||
void AreaBannerCheckRemovingAnimEnded(void)
|
||||
{
|
||||
if (SpriteUtilCheckEndCurrentSpriteAnim())
|
||||
gCurrentSprite.status = 0x0; // Kill sprite
|
||||
gCurrentSprite.status = 0; // Kill sprite
|
||||
}
|
||||
|
||||
/**
|
||||
@ -124,10 +129,11 @@ void AreaBannerCheckRemovingAnimEnded(void)
|
||||
*/
|
||||
void AreaBanner(void)
|
||||
{
|
||||
gCurrentSprite.ignoreSamusCollisionTimer = 0x1;
|
||||
gCurrentSprite.ignoreSamusCollisionTimer = 1;
|
||||
|
||||
switch (gCurrentSprite.pose)
|
||||
{
|
||||
case 0x0:
|
||||
case SPRITE_POSE_UNINITIALIZED:
|
||||
AreaBannerInit();
|
||||
break;
|
||||
|
||||
@ -147,4 +153,4 @@ void AreaBanner(void)
|
||||
AreaBannerCheckRemovingAnimEnded();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -183,11 +183,12 @@ void WorkerRobotWalkingDetectProjectile(void)
|
||||
if (!SpriteUtilCheckObjectsTouching(spriteTop, spriteBottom, spriteLeft, spriteRight, projTop, projBottom, projLeft, projRight))
|
||||
continue;
|
||||
|
||||
if (pProj->direction == ACD_FORWARD ||
|
||||
((pProj->direction == ACD_DIAGONALLY_UP || pProj->direction == ACD_DIAGONALLY_DOWN) &&
|
||||
projY > spriteTop && projY < spriteBottom))
|
||||
{
|
||||
if (pProj->direction == ACD_FORWARD)
|
||||
onSide++;
|
||||
else if (pProj->direction == ACD_DIAGONALLY_UP || pProj->direction == ACD_DIAGONALLY_DOWN)
|
||||
{
|
||||
if (projY > spriteTop && projY < spriteBottom)
|
||||
onSide++;
|
||||
}
|
||||
|
||||
if (onSide)
|
||||
@ -196,21 +197,23 @@ void WorkerRobotWalkingDetectProjectile(void)
|
||||
{
|
||||
projX = spriteLeft;
|
||||
gCurrentSprite.status |= SPRITE_STATUS_FACING_RIGHT;
|
||||
if (!(gCurrentSprite.status & SPRITE_STATUS_XFLIP))
|
||||
{
|
||||
if (gCurrentSprite.pOam != sWorkerRobotOAM_WalkingBackwards)
|
||||
gCurrentSprite.pOam = sWorkerRobotOAM_WalkingBackwards;
|
||||
}
|
||||
else
|
||||
|
||||
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
|
||||
{
|
||||
if (gCurrentSprite.pOam != sWorkerRobotOAM_Walking)
|
||||
gCurrentSprite.pOam = sWorkerRobotOAM_Walking;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentSprite.pOam != sWorkerRobotOAM_WalkingBackwards)
|
||||
gCurrentSprite.pOam = sWorkerRobotOAM_WalkingBackwards;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
projX = spriteRight;
|
||||
gCurrentSprite.status &= ~SPRITE_STATUS_FACING_RIGHT;
|
||||
|
||||
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
|
||||
{
|
||||
if (gCurrentSprite.pOam != sWorkerRobotOAM_WalkingBackwards)
|
||||
@ -222,6 +225,7 @@ void WorkerRobotWalkingDetectProjectile(void)
|
||||
gCurrentSprite.pOam = sWorkerRobotOAM_Walking;
|
||||
}
|
||||
}
|
||||
|
||||
gCurrentSprite.animationDurationCounter = 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user