mirror of
https://github.com/YohannDR/mzm.git
synced 2024-10-07 02:23:20 +00:00
Start entire codebase refactoring
This commit is contained in:
parent
6102222968
commit
bcf82a15fb
@ -2,63 +2,6 @@
|
||||
#define BG_CLIP_H
|
||||
|
||||
#include "types.h"
|
||||
#include "connection.h"
|
||||
|
||||
// Structs
|
||||
|
||||
struct BackgroundPointersAndDimensions {
|
||||
struct {
|
||||
u16* pDecomp;
|
||||
u16 width;
|
||||
u16 height;
|
||||
} backgrounds[3];
|
||||
u16* pClipDecomp;
|
||||
u16 clipdataWidth;
|
||||
u16 clipdataHeight;
|
||||
};
|
||||
|
||||
struct BG2Movement {
|
||||
i16 xOffset;
|
||||
i16 yOffset;
|
||||
};
|
||||
|
||||
struct LastTank {
|
||||
u16 behavior;
|
||||
u8 xPosition;
|
||||
u8 yPosition;
|
||||
};
|
||||
|
||||
struct ItemInfo {
|
||||
u8 room;
|
||||
i8 type;
|
||||
u8 xPosition;
|
||||
u8 yPosition;
|
||||
};
|
||||
|
||||
struct TankCollectionData {
|
||||
u16 behaviors[4];
|
||||
u16 yPositions[3];
|
||||
u16 xPositions[3];
|
||||
};
|
||||
|
||||
// Globals
|
||||
|
||||
#define MAX_AMOUNT_OF_ITEMS_PER_AREA 64
|
||||
|
||||
extern struct ItemInfo gItemsCollected[MAX_AMOUNT_OF_AREAS][MAX_AMOUNT_OF_ITEMS_PER_AREA];
|
||||
extern u8 gNeverReformBlocks[MAX_AMOUNT_OF_AREAS][512];
|
||||
extern u8 gNumberOfNeverReformBlocks[MAX_AMOUNT_OF_AREAS];
|
||||
extern u8 gNumberOfItemsCollected[MAX_AMOUNT_OF_AREAS];
|
||||
extern struct LastTank gLastTankCollected;
|
||||
|
||||
extern u16 gBG0XPosition;
|
||||
extern u16 gBG0YPosition;
|
||||
extern u16 gBG1XPosition;
|
||||
extern u16 gBG1YPosition;
|
||||
extern u16 gBG2XPosition;
|
||||
extern u16 gBG2YPosition;
|
||||
extern u16 gBG3XPosition;
|
||||
extern u16 gBG3YPosition;
|
||||
|
||||
// Functions
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define CLIPDATA_H
|
||||
|
||||
#include "types.h"
|
||||
#include "block.h"
|
||||
#include "structs/clipdata.h"
|
||||
#include "gba.h"
|
||||
|
||||
#define behavior_to_block(behavior) (behavior - 0x10)
|
||||
@ -10,189 +10,6 @@
|
||||
#define behavior_to_bldalpha(behavior) (behavior - 0x44)
|
||||
#define behavior_to_door(behavior) (behavior - 0x7F)
|
||||
|
||||
// Globals
|
||||
|
||||
extern struct CurrentAffectingClip gCurrentAffectingClipdata;
|
||||
extern struct TilemapAndClipPointers gTilemapAndClipPointers;
|
||||
|
||||
// Defines
|
||||
|
||||
#define MAX_AMOUNT_OF_CAA 16
|
||||
|
||||
#define CAA_NONE 0x0
|
||||
#define CAA_REMOVE_SOLID 0x1
|
||||
#define CAA_MAKE_SOLID_GRIPPABLE 0x2
|
||||
#define CAA_MAKE_SOLID2 0x3
|
||||
#define CAA_MAKE_SOLID3 0x4
|
||||
#define CAA_BOMB_CHAIN_UNUSED 0x5
|
||||
#define CAA_UNUSED 0x6
|
||||
#define CAA_BEAM 0x7
|
||||
#define CAA_BOMB_PISTOL 0x8
|
||||
#define CAA_MISSILE 0x9
|
||||
#define CAA_SUPER_MISSILE 0xA
|
||||
#define CAA_POWER_BOMB 0xB
|
||||
#define CAA_SPEEDBOOSTER 0xC
|
||||
#define CAA_SPEEDBOOSTER_ON_GROUND 0xD
|
||||
#define CAA_SCREW_ATTACK 0xE
|
||||
#define CAA_BOMB_CHAIN 0xF
|
||||
|
||||
#define COLLISION_AIR 0x0
|
||||
#define COLLISION_LEFT_SLIGHT_FLOOR_SLOPE 0x2
|
||||
#define COLLISION_RIGHT_SLIGHT_FLOOR_SLOPE 0x3
|
||||
#define COLLISION_LEFT_STEEP_FLOOR_SLOPE 0x4
|
||||
#define COLLISION_RIGHT_STEEP_FLOOR_SLOPE 0x5
|
||||
#define COLLISION_PASS_THROUGH_BOTTOM 0x10
|
||||
#define COLLISION_SOLID 0x11
|
||||
|
||||
#define CLIPDATA_MOVEMENT_NONE 0x0
|
||||
#define CLIPDATA_MOVEMENT_ELEVATOR_DOWN_BLOCK 0x1
|
||||
#define CLIPDATA_MOVEMENT_ELEVATOR_UP_BLOCK 0x2
|
||||
#define CLIPDATA_MOVEMENT_NON_POWER_GRIP 0x6
|
||||
#define CLIPDATA_MOVEMENT_STOP_ENEMY_BLOCK_SOLID 0x7
|
||||
#define CLIPDATA_MOVEMENT_SPACE_PIRATE_ZONELINE 0x8
|
||||
#define CLIPDATA_MOVEMENT_SPACE_PIRATE_WALLJUMP_POINT 0x9
|
||||
|
||||
#define HAZARD_TYPE_NONE 0x0
|
||||
#define HAZARD_TYPE_WATER 0x1
|
||||
#define HAZARD_TYPE_STRONG_LAVA 0x2
|
||||
#define HAZARD_TYPE_WEAK_LAVA 0x3
|
||||
#define HAZARD_TYPE_ACID 0x4
|
||||
#define HAZARD_TYPE_HEAT 0x5
|
||||
#define HAZARD_TYPE_SNOWFLAKES_KNOCKBACK 0x6
|
||||
#define HAZARD_TYPE_COLD 0x7
|
||||
|
||||
#define GROUND_EFFECT_NONE 0x0
|
||||
#define GROUND_EFFECT_WET_GROUND 0x1
|
||||
#define GROUND_EFFECT_DUSTY_GROUND 0x2
|
||||
#define GROUND_EFFECT_VERY_DUSTY_GROUND 0x3
|
||||
#define GROUND_EFFECT_UNKNOWN 0x4
|
||||
#define GROUND_EFFECT_BUBBLY_GROUND 0x5
|
||||
|
||||
#define CLIPDATA_ACTOR_SAMUS 0x0
|
||||
#define CLIPDATA_ACTOR_NON_SPRITE 0x1
|
||||
#define CLIPDATA_ACTOR_SPRITE 0x2
|
||||
|
||||
#define CLIPDATA_TYPE_AIR 0x0
|
||||
#define CLIPDATA_TYPE_SOLID 0x1
|
||||
#define CLIPDATA_TYPE_LEFT_STEEP_FLOOR_SLOPE 0x2
|
||||
#define CLIPDATA_TYPE_RIGHT_STEEP_FLOOR_SLOPE 0x3
|
||||
#define CLIPDATA_TYPE_LEFT_UPPER_SLIGHT_FLOOR_SLOPE 0x4
|
||||
#define CLIPDATA_TYPE_LEFT_LOWER_SLIGHT_FLOOR_SLOPE 0x5
|
||||
#define CLIPDATA_TYPE_RIGHT_LOWER_SLIGHT_FLOOR_SLOPE 0x6
|
||||
#define CLIPDATA_TYPE_RIGHT_UPPER_SLIGHT_FLOOR_SLOPE 0x7
|
||||
#define CLIPDATA_TYPE_ENEMY_ONLY 0x8
|
||||
#define CLIPDATA_TYPE_STOP_ENEMY 0x9
|
||||
#define CLIPDATA_TYPE_TANK 0xA
|
||||
#define CLIPDATA_TYPE_DOOR 0xB
|
||||
#define CLIPDATA_TYPE_PASS_THROUGH_BOTTOM 0xC
|
||||
#define CLIPDATA_TYPE_SOLID_FLAG 0x1000000
|
||||
|
||||
#define CLIP_BEHAVIOR_AIR_SOLID 0x0
|
||||
#define CLIP_BEHAVIOR_ELEVATOR_DOWN 0x1
|
||||
#define CLIP_BEHAVIOR_ELEVATOR_UP 0x2
|
||||
#define CLIP_BEHAVIOR_DOOR_TRANSITION 0x3
|
||||
#define CLIP_BEHAVIOR_VERTICAL_UP_TRANSITION 0x4
|
||||
#define CLIP_BEHAVIOR_VERTICAL_DOWN_TRANSITION 0x5
|
||||
#define CLIP_BEHAVIOR_NON_POWER_GRIP 0x6
|
||||
#define CLIP_BEHAVIOR_STOP_ENEMY_SOLID 0x7
|
||||
#define CLIP_BEHAVIOR_SPACE_PIRATE_ZONELINE 0x8
|
||||
#define CLIP_BEHAVIOR_SPACE_PIRATE_WALLJUMP_POINT 0x9
|
||||
#define CLIP_BEHAVIOR_SHOT_BLOCK_NEVER_REFORM 0x10
|
||||
#define CLIP_BEHAVIOR_TOP_LEFT_SHOT_BLOCK_NEVER_REFORM 0x11
|
||||
#define CLIP_BEHAVIOR_TOP_RIGHT_SHOT_BLOCK_NEVER_REFORM 0x12
|
||||
#define CLIP_BEHAVIOR_BOTTOM_LEFT_SHOT_BLOCK_NEVER_REFORM 0x13
|
||||
#define CLIP_BEHAVIOR_BOTTOM_RIGHT_SHOT_BLOCK_NEVER_REFORM 0x14
|
||||
#define CLIP_BEHAVIOR_SHOT_BLOCK_NO_REFORM 0x15
|
||||
#define CLIP_BEHAVIOR_TOP_LEFT_SHOT_BLOCK_NO_REFORM 0x16
|
||||
#define CLIP_BEHAVIOR_TOP_RIGHT_SHOT_BLOCK_NO_REFORM 0x17
|
||||
#define CLIP_BEHAVIOR_BOTTOM_LEFT_SHOT_BLOCK_NO_REFORM 0x18
|
||||
#define CLIP_BEHAVIOR_BOTTOM_RIGHT_SHOT_BLOCK_NO_REFORM 0x19
|
||||
#define CLIP_BEHAVIOR_SHOT_BLOCK_REFORM 0x1A
|
||||
#define CLIP_BEHAVIOR_BOMB_BLOCK_NEVER_REFORM 0x1B
|
||||
#define CLIP_BEHAVIOR_BOMB_BLOCK_REFORM 0x1C
|
||||
#define CLIP_BEHAVIOR_MISSILE_BLOCK_NEVER_REFORM 0x1D
|
||||
#define CLIP_BEHAVIOR_MISSILE_BLOCK_NO_REFORM 0x1E
|
||||
#define CLIP_BEHAVIOR_SUPER_MISSILE_BLOCK_NEVER_REFORM 0x1F
|
||||
#define CLIP_BEHAVIOR_SUPER_MISSILE_BLOCK_NO_REFORM 0x20
|
||||
#define CLIP_BEHAVIOR_SPEEDBOOST_BLOCK_NO_REFORM 0x21
|
||||
#define CLIP_BEHAVIOR_SPEEDBOOST_BLOCK_REFORM 0x22
|
||||
#define CLIP_BEHAVIOR_CRUMBLE_BLOCK 0x23
|
||||
#define CLIP_BEHAVIOR_POWER_BOMB_BLOCK_NEVER_REFORM 0x24
|
||||
#define CLIP_BEHAVIOR_SCREW_ATTACK_BLOCK_NO_REFORM 0x25
|
||||
#define CLIP_BEHAVIOR_VERTICAL_BOMB_CHAIN1 0x26
|
||||
#define CLIP_BEHAVIOR_VERTICAL_BOMB_CHAIN2 0x27
|
||||
#define CLIP_BEHAVIOR_VERTICAL_BOMB_CHAIN3 0x28
|
||||
#define CLIP_BEHAVIOR_VERTICAL_BOMB_CHAIN4 0x29
|
||||
#define CLIP_BEHAVIOR_HORIZONTAL_BOMB_CHAIN1 0x2A
|
||||
#define CLIP_BEHAVIOR_HORIZONTAL_BOMB_CHAIN2 0x2B
|
||||
#define CLIP_BEHAVIOR_HORIZONTAL_BOMB_CHAIN3 0x2C
|
||||
#define CLIP_BEHAVIOR_HORIZONTAL_BOMB_CHAIN4 0x2D
|
||||
#define CLIP_BEHAVIOR_SLOW_CRUMBLE_BLOCK 0x2E
|
||||
#define CLIP_BEHAVIOR_HIDDEN_ENERGY_TANK 0x34
|
||||
#define CLIP_BEHAVIOR_HIDDEN_MISSILE_TANK 0x35
|
||||
#define CLIP_BEHAVIOR_HIDDEN_SUPER_MISSILE_TANK 0x36
|
||||
#define CLIP_BEHAVIOR_HIDDEN_POWER_BOMB_TANK 0x37
|
||||
#define CLIP_BEHAVIOR_ENERGY_TANK 0x38
|
||||
#define CLIP_BEHAVIOR_MISSILE_TANK 0x39
|
||||
#define CLIP_BEHAVIOR_SUPER_MISSILE_TANK 0x3A
|
||||
#define CLIP_BEHAVIOR_POWER_BOMB_TANK 0x3B
|
||||
#define CLIP_BEHAVIOR_UNDERWATER_ENERGY_TANK 0x3C
|
||||
#define CLIP_BEHAVIOR_UNDERWATER_MISSILE_TANK 0x3D
|
||||
#define CLIP_BEHAVIOR_UNDERWATER_SUPER_MISSILE_TANK 0x3E
|
||||
#define CLIP_BEHAVIOR_UNDERWATER_POWER_BOMB_TANK 0x3F
|
||||
#define CLIP_BEHAVIOR_WATER 0x40
|
||||
#define CLIP_BEHAVIOR_STRONG_LAVA 0x41
|
||||
#define CLIP_BEHAVIOR_WEAK_LAVA 0x42
|
||||
#define CLIP_BEHAVIOR_ACID 0x43
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_OPAQUE 0x44
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL1 0x45
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL2 0x46
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL3 0x47
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL4 0x48
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL5 0x49
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_FULL 0x4A
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_BRIGHTER_LEVEL1 0x4B
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_BRIGHTER_LEVEL2 0x4C
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_BRIGHTER_LEVEL3 0x4D
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_BRIGHTER_LEVEL4 0x4E
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_DEFAULT_TRANSPARENCY 0x4F
|
||||
#define CLIP_BEHAVIOR_WET_GROUND 0x50
|
||||
#define CLIP_BEHAVIOR_DUSTY_GROUND 0x51
|
||||
#define CLIP_BEHAVIOR_GROUND_EFFECT_UNUSED 0x52
|
||||
#define CLIP_BEHAVIOR_BUBBLY_GROUND 0x53
|
||||
#define CLIP_BEHAVIOR_VERY_DUSTY_GROUND 0x54
|
||||
#define CLIP_BEHAVIOR_GRAY_DOOR 0x80
|
||||
#define CLIP_BEHAVIOR_REGULAR_DOOR 0x81
|
||||
#define CLIP_BEHAVIOR_MISSILE_DOOR 0x82
|
||||
#define CLIP_BEHAVIOR_SUPER_MISSILE_DOOR 0x83
|
||||
#define CLIP_BEHAVIOR_POWER_BOMB_DOOR 0x84
|
||||
|
||||
// Structs
|
||||
|
||||
struct CurrentAffectingClip {
|
||||
u16 movement;
|
||||
u16 hazard;
|
||||
};
|
||||
|
||||
struct CollisionData {
|
||||
i32 clipdataType;
|
||||
i32 subPixelX;
|
||||
i32 subPixelY;
|
||||
i32 actorType;
|
||||
u16 tileX;
|
||||
u16 tileY;
|
||||
};
|
||||
|
||||
struct TilemapAndClipPointers {
|
||||
u16* pTilemap;
|
||||
u8* pClipCollisions;
|
||||
u16* pClipBehaviors;
|
||||
};
|
||||
|
||||
// Typedef
|
||||
|
||||
typedef u32 (*ClipFunc_T)(struct CollisionData*);
|
||||
|
||||
// Functions
|
||||
|
||||
void ClipdataSetupCode(void);
|
||||
|
@ -2,154 +2,6 @@
|
||||
#define CONNECTION_H
|
||||
|
||||
#include "types.h"
|
||||
#include "event.h"
|
||||
#include "music.h"
|
||||
|
||||
// Globals
|
||||
|
||||
#define MAX_AMOUNT_OF_HATCHES 16
|
||||
#define MAX_AMOUNT_OF_AREAS 8
|
||||
#define MAX_AMOUNT_OF_HATCH_TYPES 8
|
||||
#define MAX_AMOUNT_OF_EVENT_BASED_CONNECTIONS 41
|
||||
|
||||
extern u32 gHatchesOpened[MAX_AMOUNT_OF_AREAS][8];
|
||||
|
||||
extern struct HatchesState gHatchesState;
|
||||
extern struct HatchData gHatchData[MAX_AMOUNT_OF_HATCHES];
|
||||
extern u8 gNumberOfValidHatchesInRoom;
|
||||
|
||||
// Defines
|
||||
|
||||
#define AREA_BRINSTAR 0x0
|
||||
#define AREA_KRAID 0x1
|
||||
#define AREA_NORFAIR 0x2
|
||||
#define AREA_RIDLEY 0x3
|
||||
#define AREA_TOURIAN 0x4
|
||||
#define AREA_CRATERIA 0x5
|
||||
#define AREA_CHOZODIA 0x6
|
||||
#define AREA_INVALID 0x7
|
||||
#define AREA_NONE 0xFF
|
||||
|
||||
#define DOOR_TYPE_NONE 0x0
|
||||
#define DOOR_TYPE_AREA_CONNECTION 0x1
|
||||
#define DOOR_TYPE_NO_HATCH 0x2
|
||||
#define DOOR_TYPE_OPEN_HATCH 0x3
|
||||
#define DOOR_TYPE_CLOSED_HATCH 0x4
|
||||
#define DOOR_TYPE_REMOVE_MOTHER_SHIP 0x5
|
||||
#define DOOR_TYPE_SET_MOTHER_SHIP 0x6
|
||||
#define DOOR_TYPE_NO_FLAGS 0xF
|
||||
#define DOOR_TYPE_EXISTS 0x10
|
||||
#define DOOR_TYPE_LOAD_EVENT_BASED_ROOM 0x20
|
||||
#define DOOR_TYPE_DISPLAYS_ROOM_LOCATION 0x40
|
||||
|
||||
#define HATCH_NONE 0x0
|
||||
#define HATCH_UNUSED 0x1
|
||||
#define HATCH_NORMAL 0x2
|
||||
#define HATCH_MISSILE 0x3
|
||||
#define HATCH_SUPER_MISSILE 0x4
|
||||
#define HATCH_POWER_BOMB 0x5
|
||||
#define HATCH_LOCKED 0x6
|
||||
#define HATCH_LOCKED_AND_LOCK_DESTINATION 0x7
|
||||
|
||||
#define HATCH_ACTION_CHECKING_OPENED 0x0
|
||||
#define HATCH_ACTION_SETTING_SOURCE_AND_DESTINATION 0x1
|
||||
#define HATCH_ACTION_SETTING_SOURCE 0x2
|
||||
|
||||
#define HATCH_OPENING_ACTION_NOT_OPENING 0x0
|
||||
#define HATCH_OPENING_ACTION_OPENING 0x1
|
||||
#define HATCH_OPENING_ACTION_LOCKED 0x2
|
||||
|
||||
#define HATCH_VERTICAL_SIZE 4
|
||||
|
||||
#define ELEVATOR_ROUTE_NONE 0x0
|
||||
#define ELEVATOR_ROUTE_CRATERIA_TO_BRINSTAR 0x1
|
||||
#define ELEVATOR_ROUTE_BRINSTAR_TO_NORFAIR 0x2
|
||||
#define ELEVATOR_ROUTE_BRINSTAR_TO_KRAID 0x3
|
||||
#define ELEVATOR_ROUTE_NORFAIR_TO_RIDLEY 0x4
|
||||
#define ELEVATOR_ROUTE_BRINSTAR_TO_TOURIAN 0x5
|
||||
#define ELEVATOR_ROUTE_CRATERIA_TO_TOURIAN 0x6
|
||||
#define ELEVATOR_ROUTE_CRATERIA_TO_NORFAIR 0x7
|
||||
|
||||
#define ELEVATOR_DIRECTION_DOWN 0x1
|
||||
#define ELEVATOR_DIRECTION_UP -0x1
|
||||
|
||||
// Structs
|
||||
|
||||
struct Door {
|
||||
u8 type;
|
||||
u8 sourceRoom;
|
||||
u8 xStart;
|
||||
u8 xEnd;
|
||||
u8 yStart;
|
||||
u8 yEnd;
|
||||
u8 destinationDoor;
|
||||
i8 xExit;
|
||||
i8 yExit;
|
||||
};
|
||||
|
||||
struct EventBasedConnection {
|
||||
u8 sourceArea;
|
||||
u8 sourceDoor;
|
||||
u8 event;
|
||||
u8 destinationDoor;
|
||||
};
|
||||
|
||||
struct HatchLockEvent {
|
||||
u8 room;
|
||||
u8 event;
|
||||
u8 isBefore;
|
||||
u8 hatchesToLock1:1;
|
||||
u8 hatchesToLock2:1;
|
||||
u8 hatchesToLock3:1;
|
||||
u8 hatchesToLock4:1;
|
||||
u8 hatchesToLock5:1;
|
||||
u8 hatchesToLock6:1;
|
||||
u8 hatchesToLock7:1;
|
||||
u8 hatchesToLock8:1;
|
||||
u8 hatchesToLockPart2_1:1;
|
||||
u8 hatchesToLockPart2_2:1;
|
||||
u8 hatchesToLockPart2_3:1;
|
||||
u8 hatchesToLockPart2_4:1;
|
||||
u8 hatchesToLockPart2_5:1;
|
||||
u8 hatchesToLockPart2_6:1;
|
||||
u8 hatchesToLockPart2_7:1;
|
||||
u8 hatchesToLockPart2_8:1;
|
||||
};
|
||||
|
||||
struct HatchData {
|
||||
/* 0 */
|
||||
u8 exists:1;
|
||||
u8 currentAnimationFrame:3;
|
||||
u8 facingRight:1;
|
||||
u8 padding:3;
|
||||
/* 1 */
|
||||
u8 opening:2;
|
||||
u8 locked:2;
|
||||
u8 flashingTimer:4;
|
||||
/* 2 */
|
||||
u8 hitTimer:4;
|
||||
u8 hits:4;
|
||||
/* 3 */
|
||||
u8 type;
|
||||
u8 animationDurationCounter;
|
||||
u8 xPosition;
|
||||
u8 yPosition;
|
||||
u8 sourceDoor;
|
||||
};
|
||||
|
||||
struct LastElevatorUsed {
|
||||
u16 unused;
|
||||
u8 route;
|
||||
i8 direction;
|
||||
};
|
||||
|
||||
struct HatchesState {
|
||||
i8 unlocking;
|
||||
i8 unk;
|
||||
u16 hatchesLockedWithTimer;
|
||||
u16 hatchesLockedWithEvent;
|
||||
u16 unk2;
|
||||
};
|
||||
|
||||
// Functions
|
||||
|
||||
|
64
include/constants/audio.h
Normal file
64
include/constants/audio.h
Normal file
@ -0,0 +1,64 @@
|
||||
#define MUSIC_NONE 0x0
|
||||
#define MUSIC_BRINSTAR 0x1
|
||||
#define MUSIC_TITLE_SCREEN 0x2
|
||||
#define MUSIC_SAVE_ELEVATOR_ROOM 0x3
|
||||
#define MUSIC_INTRO 0x4
|
||||
#define MUSIC_CHOZO_STATUE_HINT 0x5
|
||||
#define MUSIC_NORFAIR 0x6
|
||||
#define MUSIC_KRAID 0x7
|
||||
#define MUSIC_ESCAPE 0x8
|
||||
#define MUSIC_FILE_SELECT 0x9
|
||||
#define MUSIC_STATUE_ROOM 0xA
|
||||
#define MUSIC_BOSS_KILLED 0xB
|
||||
#define MUSIC_MAP_ROOM 0xC
|
||||
#define MUSIC_CHOZO_RUINS_DEPTH 0xD
|
||||
#define MUSIC_CHOZO_RUINS 0xE
|
||||
#define MUSIC_CHOZO_RUINS_LIGHT 0xF
|
||||
#define MUSIC_RIDLEY_IN_SPACE 0x10
|
||||
#define MUSIC_RIDLEY_LANDING 0x11
|
||||
#define MUSIC_CHOZO_STATUE_HINT_DELAY 0x12
|
||||
#define MUSIC_GETTING_FULLY_POWERED_SUIT_CUTSCENE 0x13
|
||||
#define MUSIC_ESCAPING_ZEBES_CUTSCENE 0x14
|
||||
#define MUSIC_CHOZO_VOICE_1 0x15
|
||||
#define MUSIC_CHOZO_VOICE_2 0x16
|
||||
#define MUSIC_BEFORE_RUINS_TEST_UNUSED 0x17
|
||||
#define MUSIC_ELEVATOR_ROOM 0x18
|
||||
#define MUSIC_BRINSTAR_REMIX 0x19
|
||||
#define MUSIC_ESCAPE_SUCCESFUL 0x1A
|
||||
#define MUSIC_CREDITS 0x1B
|
||||
#define MUSIC_STATUE_ROOM_OPENED 0x1C
|
||||
#define MUSIC_RIDLEY 0x32
|
||||
#define MUSIC_KRAID_BATTLE_WITH_INTRO 0x34
|
||||
#define MUSIC_RIDLEY_BATTLE 0x35
|
||||
#define MUSIC_LOADING_JINGLE 0x36
|
||||
#define MUSIC_GETTING_ITEM_JINGLE 0x37
|
||||
#define MUSIC_UNUSED 0x39
|
||||
#define MUSIC_GETTING_TANK_JINGLE 0x3A
|
||||
#define MUSIC_TOURIAN 0x3B
|
||||
#define MUSIC_WORMS_BATTLE 0x3C
|
||||
#define MUSIC_MOTHER_BRAIN_BATTLE 0x3D
|
||||
#define MUSIC_CATTERPILLARS_BATTLE 0x3E
|
||||
#define MUSIC_IMAGO_COCOON_BATTLE 0x3F
|
||||
#define MUSIC_IMAGO_BATTLE 0x40
|
||||
#define MUSIC_MECHA_RIDLEY_BATTLE 0x41
|
||||
#define MUSIC_GETTING_UNKNOWN_ITEM_JINGLE 0x42
|
||||
#define MUSIC_RUINS_TEST_BATTLE_WITH_INTRO 0x43
|
||||
#define MUSIC_ENTERING_TOURIAN_CUTSCENE 0x44
|
||||
#define MUSIC_ALARM_ACTIVATED 0x45
|
||||
#define MUSIC_STEALTH 0x46
|
||||
#define MUSIC_ENTERING_NORFAIR_CUTSCENE 0x48
|
||||
#define MUSIC_CHOZODIA_DETECTED 0x49
|
||||
#define MUSIC_GETTING_FULLY_POWERED_SUIT_JINGLE 0x4A
|
||||
#define MUSIC_KRAID_BATTLE 0x4B
|
||||
#define MUSIC_RIDLEY_BATTLE_2 0x4C
|
||||
#define MUSIC_MECHA_RIDLEY_BATTLE_2 0x4D
|
||||
#define MUSIC_RUINS_TEST_BATTLE 0x4E
|
||||
#define MUSIC_CATTERPILLARS_BATTLE_2 0x4F
|
||||
#define MUSIC_CRATERIA 0x50
|
||||
#define MUSIC_GAME_OVER 0x53
|
||||
#define MUSIC_UNKNOWN 0x54
|
||||
#define MUSIC_CHOZODIA_SURFACE 0x5A
|
||||
#define MUSIC_MAP_ROOM_2 0x5B
|
||||
#define MUSIC_SAVE_ELEVATOR_ROOM_2 0x5C
|
||||
#define MUSIC_BEFORE_RUINS_TEST_ROOM 0x5D
|
||||
#define MUSIC_STEALTH_2 0x5E
|
149
include/constants/clipdata.h
Normal file
149
include/constants/clipdata.h
Normal file
@ -0,0 +1,149 @@
|
||||
#define MAX_AMOUNT_OF_CAA 16
|
||||
|
||||
#define CAA_NONE 0x0
|
||||
#define CAA_REMOVE_SOLID 0x1
|
||||
#define CAA_MAKE_SOLID_GRIPPABLE 0x2
|
||||
#define CAA_MAKE_SOLID2 0x3
|
||||
#define CAA_MAKE_SOLID3 0x4
|
||||
#define CAA_BOMB_CHAIN_UNUSED 0x5
|
||||
#define CAA_UNUSED 0x6
|
||||
#define CAA_BEAM 0x7
|
||||
#define CAA_BOMB_PISTOL 0x8
|
||||
#define CAA_MISSILE 0x9
|
||||
#define CAA_SUPER_MISSILE 0xA
|
||||
#define CAA_POWER_BOMB 0xB
|
||||
#define CAA_SPEEDBOOSTER 0xC
|
||||
#define CAA_SPEEDBOOSTER_ON_GROUND 0xD
|
||||
#define CAA_SCREW_ATTACK 0xE
|
||||
#define CAA_BOMB_CHAIN 0xF
|
||||
|
||||
#define COLLISION_AIR 0x0
|
||||
#define COLLISION_LEFT_SLIGHT_FLOOR_SLOPE 0x2
|
||||
#define COLLISION_RIGHT_SLIGHT_FLOOR_SLOPE 0x3
|
||||
#define COLLISION_LEFT_STEEP_FLOOR_SLOPE 0x4
|
||||
#define COLLISION_RIGHT_STEEP_FLOOR_SLOPE 0x5
|
||||
#define COLLISION_PASS_THROUGH_BOTTOM 0x10
|
||||
#define COLLISION_SOLID 0x11
|
||||
|
||||
#define CLIPDATA_MOVEMENT_NONE 0x0
|
||||
#define CLIPDATA_MOVEMENT_ELEVATOR_DOWN_BLOCK 0x1
|
||||
#define CLIPDATA_MOVEMENT_ELEVATOR_UP_BLOCK 0x2
|
||||
#define CLIPDATA_MOVEMENT_NON_POWER_GRIP 0x6
|
||||
#define CLIPDATA_MOVEMENT_STOP_ENEMY_BLOCK_SOLID 0x7
|
||||
#define CLIPDATA_MOVEMENT_SPACE_PIRATE_ZONELINE 0x8
|
||||
#define CLIPDATA_MOVEMENT_SPACE_PIRATE_WALLJUMP_POINT 0x9
|
||||
|
||||
#define HAZARD_TYPE_NONE 0x0
|
||||
#define HAZARD_TYPE_WATER 0x1
|
||||
#define HAZARD_TYPE_STRONG_LAVA 0x2
|
||||
#define HAZARD_TYPE_WEAK_LAVA 0x3
|
||||
#define HAZARD_TYPE_ACID 0x4
|
||||
#define HAZARD_TYPE_HEAT 0x5
|
||||
#define HAZARD_TYPE_SNOWFLAKES_KNOCKBACK 0x6
|
||||
#define HAZARD_TYPE_COLD 0x7
|
||||
|
||||
#define GROUND_EFFECT_NONE 0x0
|
||||
#define GROUND_EFFECT_WET_GROUND 0x1
|
||||
#define GROUND_EFFECT_DUSTY_GROUND 0x2
|
||||
#define GROUND_EFFECT_VERY_DUSTY_GROUND 0x3
|
||||
#define GROUND_EFFECT_UNKNOWN 0x4
|
||||
#define GROUND_EFFECT_BUBBLY_GROUND 0x5
|
||||
|
||||
#define CLIPDATA_ACTOR_SAMUS 0x0
|
||||
#define CLIPDATA_ACTOR_NON_SPRITE 0x1
|
||||
#define CLIPDATA_ACTOR_SPRITE 0x2
|
||||
|
||||
#define CLIPDATA_TYPE_AIR 0x0
|
||||
#define CLIPDATA_TYPE_SOLID 0x1
|
||||
#define CLIPDATA_TYPE_LEFT_STEEP_FLOOR_SLOPE 0x2
|
||||
#define CLIPDATA_TYPE_RIGHT_STEEP_FLOOR_SLOPE 0x3
|
||||
#define CLIPDATA_TYPE_LEFT_UPPER_SLIGHT_FLOOR_SLOPE 0x4
|
||||
#define CLIPDATA_TYPE_LEFT_LOWER_SLIGHT_FLOOR_SLOPE 0x5
|
||||
#define CLIPDATA_TYPE_RIGHT_LOWER_SLIGHT_FLOOR_SLOPE 0x6
|
||||
#define CLIPDATA_TYPE_RIGHT_UPPER_SLIGHT_FLOOR_SLOPE 0x7
|
||||
#define CLIPDATA_TYPE_ENEMY_ONLY 0x8
|
||||
#define CLIPDATA_TYPE_STOP_ENEMY 0x9
|
||||
#define CLIPDATA_TYPE_TANK 0xA
|
||||
#define CLIPDATA_TYPE_DOOR 0xB
|
||||
#define CLIPDATA_TYPE_PASS_THROUGH_BOTTOM 0xC
|
||||
#define CLIPDATA_TYPE_SOLID_FLAG 0x1000000
|
||||
|
||||
#define CLIP_BEHAVIOR_AIR_SOLID 0x0
|
||||
#define CLIP_BEHAVIOR_ELEVATOR_DOWN 0x1
|
||||
#define CLIP_BEHAVIOR_ELEVATOR_UP 0x2
|
||||
#define CLIP_BEHAVIOR_DOOR_TRANSITION 0x3
|
||||
#define CLIP_BEHAVIOR_VERTICAL_UP_TRANSITION 0x4
|
||||
#define CLIP_BEHAVIOR_VERTICAL_DOWN_TRANSITION 0x5
|
||||
#define CLIP_BEHAVIOR_NON_POWER_GRIP 0x6
|
||||
#define CLIP_BEHAVIOR_STOP_ENEMY_SOLID 0x7
|
||||
#define CLIP_BEHAVIOR_SPACE_PIRATE_ZONELINE 0x8
|
||||
#define CLIP_BEHAVIOR_SPACE_PIRATE_WALLJUMP_POINT 0x9
|
||||
#define CLIP_BEHAVIOR_SHOT_BLOCK_NEVER_REFORM 0x10
|
||||
#define CLIP_BEHAVIOR_TOP_LEFT_SHOT_BLOCK_NEVER_REFORM 0x11
|
||||
#define CLIP_BEHAVIOR_TOP_RIGHT_SHOT_BLOCK_NEVER_REFORM 0x12
|
||||
#define CLIP_BEHAVIOR_BOTTOM_LEFT_SHOT_BLOCK_NEVER_REFORM 0x13
|
||||
#define CLIP_BEHAVIOR_BOTTOM_RIGHT_SHOT_BLOCK_NEVER_REFORM 0x14
|
||||
#define CLIP_BEHAVIOR_SHOT_BLOCK_NO_REFORM 0x15
|
||||
#define CLIP_BEHAVIOR_TOP_LEFT_SHOT_BLOCK_NO_REFORM 0x16
|
||||
#define CLIP_BEHAVIOR_TOP_RIGHT_SHOT_BLOCK_NO_REFORM 0x17
|
||||
#define CLIP_BEHAVIOR_BOTTOM_LEFT_SHOT_BLOCK_NO_REFORM 0x18
|
||||
#define CLIP_BEHAVIOR_BOTTOM_RIGHT_SHOT_BLOCK_NO_REFORM 0x19
|
||||
#define CLIP_BEHAVIOR_SHOT_BLOCK_REFORM 0x1A
|
||||
#define CLIP_BEHAVIOR_BOMB_BLOCK_NEVER_REFORM 0x1B
|
||||
#define CLIP_BEHAVIOR_BOMB_BLOCK_REFORM 0x1C
|
||||
#define CLIP_BEHAVIOR_MISSILE_BLOCK_NEVER_REFORM 0x1D
|
||||
#define CLIP_BEHAVIOR_MISSILE_BLOCK_NO_REFORM 0x1E
|
||||
#define CLIP_BEHAVIOR_SUPER_MISSILE_BLOCK_NEVER_REFORM 0x1F
|
||||
#define CLIP_BEHAVIOR_SUPER_MISSILE_BLOCK_NO_REFORM 0x20
|
||||
#define CLIP_BEHAVIOR_SPEEDBOOST_BLOCK_NO_REFORM 0x21
|
||||
#define CLIP_BEHAVIOR_SPEEDBOOST_BLOCK_REFORM 0x22
|
||||
#define CLIP_BEHAVIOR_CRUMBLE_BLOCK 0x23
|
||||
#define CLIP_BEHAVIOR_POWER_BOMB_BLOCK_NEVER_REFORM 0x24
|
||||
#define CLIP_BEHAVIOR_SCREW_ATTACK_BLOCK_NO_REFORM 0x25
|
||||
#define CLIP_BEHAVIOR_VERTICAL_BOMB_CHAIN1 0x26
|
||||
#define CLIP_BEHAVIOR_VERTICAL_BOMB_CHAIN2 0x27
|
||||
#define CLIP_BEHAVIOR_VERTICAL_BOMB_CHAIN3 0x28
|
||||
#define CLIP_BEHAVIOR_VERTICAL_BOMB_CHAIN4 0x29
|
||||
#define CLIP_BEHAVIOR_HORIZONTAL_BOMB_CHAIN1 0x2A
|
||||
#define CLIP_BEHAVIOR_HORIZONTAL_BOMB_CHAIN2 0x2B
|
||||
#define CLIP_BEHAVIOR_HORIZONTAL_BOMB_CHAIN3 0x2C
|
||||
#define CLIP_BEHAVIOR_HORIZONTAL_BOMB_CHAIN4 0x2D
|
||||
#define CLIP_BEHAVIOR_SLOW_CRUMBLE_BLOCK 0x2E
|
||||
#define CLIP_BEHAVIOR_HIDDEN_ENERGY_TANK 0x34
|
||||
#define CLIP_BEHAVIOR_HIDDEN_MISSILE_TANK 0x35
|
||||
#define CLIP_BEHAVIOR_HIDDEN_SUPER_MISSILE_TANK 0x36
|
||||
#define CLIP_BEHAVIOR_HIDDEN_POWER_BOMB_TANK 0x37
|
||||
#define CLIP_BEHAVIOR_ENERGY_TANK 0x38
|
||||
#define CLIP_BEHAVIOR_MISSILE_TANK 0x39
|
||||
#define CLIP_BEHAVIOR_SUPER_MISSILE_TANK 0x3A
|
||||
#define CLIP_BEHAVIOR_POWER_BOMB_TANK 0x3B
|
||||
#define CLIP_BEHAVIOR_UNDERWATER_ENERGY_TANK 0x3C
|
||||
#define CLIP_BEHAVIOR_UNDERWATER_MISSILE_TANK 0x3D
|
||||
#define CLIP_BEHAVIOR_UNDERWATER_SUPER_MISSILE_TANK 0x3E
|
||||
#define CLIP_BEHAVIOR_UNDERWATER_POWER_BOMB_TANK 0x3F
|
||||
#define CLIP_BEHAVIOR_WATER 0x40
|
||||
#define CLIP_BEHAVIOR_STRONG_LAVA 0x41
|
||||
#define CLIP_BEHAVIOR_WEAK_LAVA 0x42
|
||||
#define CLIP_BEHAVIOR_ACID 0x43
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_OPAQUE 0x44
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL1 0x45
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL2 0x46
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL3 0x47
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL4 0x48
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_LEVEL5 0x49
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_TRANSPARENT_FULL 0x4A
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_BRIGHTER_LEVEL1 0x4B
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_BRIGHTER_LEVEL2 0x4C
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_BRIGHTER_LEVEL3 0x4D
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_BRIGHTER_LEVEL4 0x4E
|
||||
#define CLIP_BEHAVIOR_BG0_TRIGGER_DEFAULT_TRANSPARENCY 0x4F
|
||||
#define CLIP_BEHAVIOR_WET_GROUND 0x50
|
||||
#define CLIP_BEHAVIOR_DUSTY_GROUND 0x51
|
||||
#define CLIP_BEHAVIOR_GROUND_EFFECT_UNUSED 0x52
|
||||
#define CLIP_BEHAVIOR_BUBBLY_GROUND 0x53
|
||||
#define CLIP_BEHAVIOR_VERY_DUSTY_GROUND 0x54
|
||||
#define CLIP_BEHAVIOR_GRAY_DOOR 0x80
|
||||
#define CLIP_BEHAVIOR_REGULAR_DOOR 0x81
|
||||
#define CLIP_BEHAVIOR_MISSILE_DOOR 0x82
|
||||
#define CLIP_BEHAVIOR_SUPER_MISSILE_DOOR 0x83
|
||||
#define CLIP_BEHAVIOR_POWER_BOMB_DOOR 0x84
|
56
include/constants/connection.h
Normal file
56
include/constants/connection.h
Normal file
@ -0,0 +1,56 @@
|
||||
|
||||
|
||||
// Defines
|
||||
|
||||
#define AREA_BRINSTAR 0x0
|
||||
#define AREA_KRAID 0x1
|
||||
#define AREA_NORFAIR 0x2
|
||||
#define AREA_RIDLEY 0x3
|
||||
#define AREA_TOURIAN 0x4
|
||||
#define AREA_CRATERIA 0x5
|
||||
#define AREA_CHOZODIA 0x6
|
||||
#define AREA_INVALID 0x7
|
||||
#define AREA_NONE 0xFF
|
||||
|
||||
#define DOOR_TYPE_NONE 0x0
|
||||
#define DOOR_TYPE_AREA_CONNECTION 0x1
|
||||
#define DOOR_TYPE_NO_HATCH 0x2
|
||||
#define DOOR_TYPE_OPEN_HATCH 0x3
|
||||
#define DOOR_TYPE_CLOSED_HATCH 0x4
|
||||
#define DOOR_TYPE_REMOVE_MOTHER_SHIP 0x5
|
||||
#define DOOR_TYPE_SET_MOTHER_SHIP 0x6
|
||||
#define DOOR_TYPE_NO_FLAGS 0xF
|
||||
#define DOOR_TYPE_EXISTS 0x10
|
||||
#define DOOR_TYPE_LOAD_EVENT_BASED_ROOM 0x20
|
||||
#define DOOR_TYPE_DISPLAYS_ROOM_LOCATION 0x40
|
||||
|
||||
#define HATCH_NONE 0x0
|
||||
#define HATCH_UNUSED 0x1
|
||||
#define HATCH_NORMAL 0x2
|
||||
#define HATCH_MISSILE 0x3
|
||||
#define HATCH_SUPER_MISSILE 0x4
|
||||
#define HATCH_POWER_BOMB 0x5
|
||||
#define HATCH_LOCKED 0x6
|
||||
#define HATCH_LOCKED_AND_LOCK_DESTINATION 0x7
|
||||
|
||||
#define HATCH_ACTION_CHECKING_OPENED 0x0
|
||||
#define HATCH_ACTION_SETTING_SOURCE_AND_DESTINATION 0x1
|
||||
#define HATCH_ACTION_SETTING_SOURCE 0x2
|
||||
|
||||
#define HATCH_OPENING_ACTION_NOT_OPENING 0x0
|
||||
#define HATCH_OPENING_ACTION_OPENING 0x1
|
||||
#define HATCH_OPENING_ACTION_LOCKED 0x2
|
||||
|
||||
#define HATCH_VERTICAL_SIZE 4
|
||||
|
||||
#define ELEVATOR_ROUTE_NONE 0x0
|
||||
#define ELEVATOR_ROUTE_CRATERIA_TO_BRINSTAR 0x1
|
||||
#define ELEVATOR_ROUTE_BRINSTAR_TO_NORFAIR 0x2
|
||||
#define ELEVATOR_ROUTE_BRINSTAR_TO_KRAID 0x3
|
||||
#define ELEVATOR_ROUTE_NORFAIR_TO_RIDLEY 0x4
|
||||
#define ELEVATOR_ROUTE_BRINSTAR_TO_TOURIAN 0x5
|
||||
#define ELEVATOR_ROUTE_CRATERIA_TO_TOURIAN 0x6
|
||||
#define ELEVATOR_ROUTE_CRATERIA_TO_NORFAIR 0x7
|
||||
|
||||
#define ELEVATOR_DIRECTION_DOWN 0x1
|
||||
#define ELEVATOR_DIRECTION_UP -0x1
|
7
include/constants/escape.h
Normal file
7
include/constants/escape.h
Normal file
@ -0,0 +1,7 @@
|
||||
#define ESCAPE_NONE 0
|
||||
#define ESCAPE_MOTHER_BRAIN 1
|
||||
#define ESCAPE_MECHA_RIDLEY 2
|
||||
|
||||
#define ESCAPE_STATUS_NONE 0
|
||||
#define ESCAPE_STATUS_HAPPENNING 1
|
||||
#define ESCAPE_STATUS_FAILED 2
|
87
include/constants/event.h
Normal file
87
include/constants/event.h
Normal file
@ -0,0 +1,87 @@
|
||||
|
||||
// Defines
|
||||
|
||||
#define EVENT_ACTION_CLEARING 0x0
|
||||
#define EVENT_ACTION_SETTING 0x1
|
||||
#define EVENT_ACTION_TOGGLING 0x2
|
||||
#define EVENT_ACTION_CHECKING 0x3
|
||||
|
||||
#define EVENT_NONE 0x0
|
||||
#define EVENT_EASY 0x1
|
||||
#define EVENT_HARD 0x2
|
||||
#define EVENT_ENTER_NORFAIR_DEMO_PLAYED 0x3
|
||||
#define EVENT_EXIT_KRAID_DEMO_PLAYED 0x4
|
||||
#define EVENT_ENTER_RIDLEY_DEMO_PLAYED 0x5
|
||||
#define EVENT_ENTER_MOTHERSHIP_DEMO_PLAYED 0x6
|
||||
#define EVENT_ENTER_TOURIAN_DEMO_PLAYED 0x7
|
||||
#define EVENT_STATUE_LONG_BEAM_GRABBED 0x8
|
||||
#define EVENT_STATUE_BOMBS_GRABBED 0x9
|
||||
#define EVENT_STATUE_ICE_BEAM_GRABBED 0xA
|
||||
#define EVENT_STATUE_SPEEDBOOSTER_GRABBED 0xB
|
||||
#define EVENT_STATUE_HIGH_JUMP_GRABBED 0xC
|
||||
#define EVENT_STATUE_VARIA_SUIT_GRABBED 0xD
|
||||
#define EVENT_STATUE_WAVE_BEAM_GRABBED 0xE
|
||||
#define EVENT_STATUE_SCREW_ATTACK_GRABBED 0xF
|
||||
#define EVENT_POWER_GRIP_OBTAINED 0x10
|
||||
#define EVENT_CHOZO_PILLAR_FULLY_EXTENDED 0x11
|
||||
#define EVENT_HIGH_JUMP_OBTAINED 0x12
|
||||
#define EVENT_VARIA_SUIT_OBTAINED 0x13
|
||||
#define EVENT_CHARGE_BEAM_OBTAINED 0x14
|
||||
#define EVENT_SCREW_ATTACK_OBTAINED 0x15
|
||||
#define EVENT_SPACE_JUMP_OBTAINED 0x16
|
||||
#define EVENT_GRAVITY_SUIT_OBTAINED 0x17
|
||||
#define EVENT_PLASMA_BEAM_OBTAINED 0x18
|
||||
#define EVENT_DEOREM_ENCOUNTERED_AT_FIRST_LOCATION_OR_KILLED 0x19
|
||||
#define EVENT_DEOREM_ENCOUNTERED_AT_SECOND_LOCATION_OR_KILLED 0x1A
|
||||
#define EVENT_DEOREM_KILLED_AT_SECOND_LOCATION 0x1B
|
||||
#define EVENT_ACID_WORM_KILLED 0x1C
|
||||
#define EVENT_KRAID_GADORA_KILLED 0x1D
|
||||
#define EVENT_KRAID_KILLED 0x1E
|
||||
#define EVENT_KRAID_ELEVATOR_STATUE_DESTROYED 0x1F
|
||||
#define EVENT_CATERPILLAR_KILLED 0x20
|
||||
#define EVENT_IMAGO_TUNNEL_DISCOVERED 0x21
|
||||
#define EVENT_IMAGO_COCOON_KILLED 0x22
|
||||
#define EVENT_IMAGO_KILLED 0x23
|
||||
#define EVENT_RIDLEY_GADORA_KILLED 0x24
|
||||
#define EVENT_RIDLEY_KILLED 0x25
|
||||
#define EVENT_RIDLEY_ELEVATOR_STATUE_DESTROYED 0x26
|
||||
#define EVENT_MOTHER_BRAIN_KILLED 0x27
|
||||
#define EVENT_CROCOMIRE_KILLED 0x28
|
||||
#define EVENT_REPEL_MACHINE_KILLED 0x29
|
||||
#define EVENT_VIEWED_STATUE_ROOM 0x2A
|
||||
#define EVENT_LONG_BEAM_DESSGEEGA_KILLED 0x2B
|
||||
#define EVENT_THREE_HIVES_DESTROYED 0x2C
|
||||
#define EVENT_BUGS_KILLED 0x2D
|
||||
#define EVENT_ZIPLINES_ACTIVATED 0x2E
|
||||
#define EVENT_PLANT_DESTROYED_LAVA 0x2F
|
||||
#define EVENT_PLANT_DESTROYED_POST_VARIA 0x30
|
||||
#define EVENT_PLANT_DESTROYED_VARIA2 0x31
|
||||
#define EVENT_PLANT_DESTROYED_VARIA3 0x32
|
||||
#define EVENT_PLANT_DESTROYED_VARIA1 0x33
|
||||
#define EVENT_KRAID_BARISTUTES_KILLED 0x34
|
||||
#define EVENT_KRAID_STATUE_OPENED 0x35
|
||||
#define EVENT_RIDLEY_STATUE_OPENED 0x36
|
||||
#define EVENT_FIRST_METROID_ROOM_CLEARED 0x37
|
||||
#define EVENT_THIRD_METROID_ROOM_CLEARED 0x38
|
||||
#define EVENT_FIFTH_METROID_ROOM_CLEARED 0x39
|
||||
#define EVENT_SECOND_METROID_ROOM_CLEARED 0x3A
|
||||
#define EVENT_SIXTH_METROID_ROOM_CLEARED 0x3B
|
||||
#define EVENT_FOURTH_METROID_ROOM_CLEARED 0x3C
|
||||
#define EVENT_ZEBETITE_ONE_DESTROYED 0x3D
|
||||
#define EVENT_ZEBETITE_TWO_DESTROYED 0x3E
|
||||
#define EVENT_ZEBETITE_THREE_DESTROYED 0x3F
|
||||
#define EVENT_ZEBETITE_FOUR_DESTROYED 0x40
|
||||
#define EVENT_ESCAPED_ZEBES 0x41
|
||||
#define EVENT_MARKER_BETWEEN_ZEBES_AND_MOTHERSHIP 0x42
|
||||
#define EVENT_FULLY_POWERED_SUIT_OBTAINED 0x43
|
||||
#define EVENT_SKIPPED_VARIA_SUIT 0x44
|
||||
#define EVENT_CHOZOBLOCK 0x45
|
||||
#define EVENT_POWER_BOMB_STOLEN 0x46
|
||||
#define EVENT_SPACE_PIRATE_WITH_POWER_BOMB_ONE 0x47
|
||||
#define EVENT_SPACE_PIRATE_WITH_POWER_BOMB_TWO 0x48
|
||||
#define EVENT_GLASS_TUBE_BROKEN 0x49
|
||||
#define EVENT_MECHA_RIDLEY_KILLED 0x4A
|
||||
#define EVENT_ESCAPED_CHOZODIA 0x4B
|
||||
#define EVENT_AKI 0x4C
|
||||
#define EVENT_BOMBATE 0x4D
|
||||
#define EVENT_END_UNUSED 0x4E
|
44
include/constants/game_state.h
Normal file
44
include/constants/game_state.h
Normal file
@ -0,0 +1,44 @@
|
||||
#define PAUSE_SCREEN_NONE 0
|
||||
#define PAUSE_SCREEN_UNKNOWN_1 1
|
||||
#define PAUSE_SCREEN_PAUSE_OR_CUTSCENE 2
|
||||
#define PAUSE_SCREEN_UNKNOWN_3 3
|
||||
#define PAUSE_SCREEN_CHOZO_HINT 4
|
||||
#define PAUSE_SCREEN_MAP_DOWNLOAD 5
|
||||
#define PAUSE_SCREEN_ITEM_ACQUISITION 6
|
||||
#define PAUSE_SCREEN_SUITLESS_ITEMS 7
|
||||
#define PAUSE_SCREEN_FULLY_POWERED_SUIT_ITEMS 8
|
||||
#define PAUSE_SCREEN_UNKNOWN_9 9
|
||||
|
||||
#define MAX_AMOUNT_OF_DIFFICULTIES 3
|
||||
|
||||
#define DIFF_EASY 0
|
||||
#define DIFF_NORMAL 2
|
||||
#define DIFF_HARD 3
|
||||
|
||||
#define LANGUAGE_JAPANESE 0
|
||||
#define LANGUAGE_HIRAGANA 1
|
||||
#define LANGUAGE_ENGLISH 2
|
||||
|
||||
|
||||
#define GM_SOFTRESET 0
|
||||
#define GM_INTRO 1
|
||||
#define GM_TITLE 2
|
||||
#define GM_FILESELECT 3
|
||||
#define GM_INGAME 4
|
||||
#define GM_MAP_SCREEN 5
|
||||
#define GM_GAMEOVER 6
|
||||
#define GM_CHOZODIA_ESCAPE 7
|
||||
#define GM_CREDITS 8
|
||||
#define GM_TOURIAN_ESCAPE 9
|
||||
#define GM_CUTSCENE 10
|
||||
#define GM_DEMO 11
|
||||
#define GM_GALLERY 12
|
||||
#define GM_FUSION_GALLERY 13
|
||||
#define GM_START_SOFTRESET 14
|
||||
#define GM_ERASE_SRAM 15
|
||||
#define GM_DEBUG_MENU 16
|
||||
|
||||
// For in game
|
||||
|
||||
#define SUB_GAME_MODE_PLAYING 0x2
|
||||
#define SUB_GAME_MODE_LOADING_ROOM 0x3
|
44
include/constants/projectile.h
Normal file
44
include/constants/projectile.h
Normal file
@ -0,0 +1,44 @@
|
||||
#define PROJECTILE_NONE 0x0
|
||||
#define PROJECTILE_BEAM 0x1
|
||||
#define PROJECTILE_MISSILE 0x2
|
||||
#define PROJECTILE_SUPER_MISSILE 0x3
|
||||
#define PROJECTILE_BOMB 0x4
|
||||
#define PROJECTILE_POWER_BOMB 0x5
|
||||
#define PROJECTILE_CHARGED_BEAM 0x6
|
||||
|
||||
#define PROJ_STATUS_NONE 0x0
|
||||
#define PROJ_STATUS_EXISTS 0x1
|
||||
#define PROJ_STATUS_ON_SCREEN 0x2
|
||||
#define PROJ_STATUS_NOT_DRAWN 0x4
|
||||
#define PROJ_STATUS_HIGH_PRIORITY 0x8
|
||||
#define PROJ_STATUS_CAN_AFFECT_ENVIRONMENT 0x10
|
||||
#define PROJ_STATUS_YFLIP 0x20
|
||||
#define PROJ_STATUS_XFLIP 0x40
|
||||
#define PROJ_STATUS_UNKNOWN 0x80
|
||||
|
||||
#define PROJ_TYPE_BEAM 0x0
|
||||
#define PROJ_TYPE_LONG_BEAM 0x1
|
||||
#define PROJ_TYPE_ICE_BEAM 0x2
|
||||
#define PROJ_TYPE_WAVE_BEAM 0x3
|
||||
#define PROJ_TYPE_PLASMA_BEAM 0x4
|
||||
#define PROJ_TYPE_PISTOL 0x5
|
||||
#define PROJ_TYPE_CHARGED_BEAM 0x6
|
||||
#define PROJ_TYPE_CHARGED_LONG_BEAM 0x7
|
||||
#define PROJ_TYPE_CHARGED_ICE_BEAM 0x8
|
||||
#define PROJ_TYPE_CHARGED_WAVE_BEAM 0x9
|
||||
#define PROJ_TYPE_CHARGED_PLASMA_BEAM 0xA
|
||||
#define PROJ_TYPE_CHARGED_PISTOL 0xB
|
||||
#define PROJ_TYPE_MISSILE 0xC
|
||||
#define PROJ_TYPE_SUPER_MISSILE 0xD
|
||||
#define PROJ_TYPE_BOMB 0xE
|
||||
#define PROJ_TYPE_POWER_BOMB 0xF
|
||||
|
||||
|
||||
#define BOMB_STAGE_INIT 0x0
|
||||
#define BOMB_STAGE_FIRST_SPIN 0x1
|
||||
#define BOMB_STAGE_FAST_SPIN 0x2
|
||||
#define BOMB_STAGE_EXPLODING 0x3
|
||||
#define BOMB_STAGE_PLACED_ON_LAUNCHER 0x4
|
||||
#define BOMB_STAGE_FIRST_SPIN_ON_LAUNCHER 0x5
|
||||
#define BOMB_STAGE_FAST_SPIN_ON_LAUNCHER 0x6
|
||||
#define BOMB_STAGE_EXPLODING_ON_LAUNCHER 0x7
|
199
include/constants/samus.h
Normal file
199
include/constants/samus.h
Normal file
@ -0,0 +1,199 @@
|
||||
#define BBF_NONE 0x0
|
||||
#define BBF_LONG_BEAM 0x1
|
||||
#define BBF_ICE_BEAM 0x2
|
||||
#define BBF_WAVE_BEAM 0x4
|
||||
#define BBF_PLASMA_BEAM 0x8
|
||||
#define BBF_CHARGE_BEAM 0x10
|
||||
#define BBF_BOMBS 0x80
|
||||
|
||||
#define SMF_NONE 0x0
|
||||
#define SMF_HIGH_JUMP 0x1
|
||||
#define SMF_SPEEDBOOSTER 0x2
|
||||
#define SMF_SPACE_JUMP 0x4
|
||||
#define SMF_SCREW_ATTACK 0x8
|
||||
#define SMF_VARIA_SUIT 0x10
|
||||
#define SMF_GRAVITY_SUIT 0x20
|
||||
#define SMF_MORPH_BALL 0x40
|
||||
#define SMF_POWER_GRIP 0x80
|
||||
|
||||
#define SUIT_NORMAL 0x0
|
||||
#define SUIT_FULLY_POWERED 0x1
|
||||
#define SUIT_SUITLESS 0x2
|
||||
|
||||
#define DIAG_AIM_NONE 0x0
|
||||
#define DIAG_AIM_UP 0x1
|
||||
#define DIAG_AIM_DOWN 0x2
|
||||
|
||||
#define WH_NONE 0x0
|
||||
#define WH_MISSILE 0x1
|
||||
#define WH_SUPER_MISSILE 0x2
|
||||
#define WH_POWER_BOMB 0x4
|
||||
|
||||
#define SPOSE_RUNNING 0x0
|
||||
#define SPOSE_STANDING 0x1
|
||||
#define SPOSE_TURNING_AROUND 0x2
|
||||
#define SPOSE_SHOOTING 0x3
|
||||
#define SPOSE_CROUCHING 0x4
|
||||
#define SPOSE_TURNING_AROUND_AND_CROUCHING 0x5
|
||||
#define SPOSE_SHOOTING_AND_CROUCHING 0x6
|
||||
#define SPOSE_SKIDDING 0x7
|
||||
#define SPOSE_MIDAIR 0x8
|
||||
#define SPOSE_TURNING_AROUND_MIDAIR 0x9
|
||||
#define SPOSE_LANDING 0xA
|
||||
#define SPOSE_STARTING_SPIN_JUMP 0xB
|
||||
#define SPOSE_SPINNING 0xC
|
||||
#define SPOSE_STARTING_WALL_JUMP 0xD
|
||||
#define SPOSE_SPACE_JUMPING 0xE
|
||||
#define SPOSE_SCREW_ATTACKING 0xF
|
||||
#define SPOSE_MORPHING 0x10
|
||||
#define SPOSE_MORPH_BALL 0x11
|
||||
#define SPOSE_ROLLING 0x12
|
||||
#define SPOSE_UNMORPHING 0x13
|
||||
#define SPOSE_MORPH_BALL_MIDAIR 0x14
|
||||
#define SPOSE_HANGING_ON_LEDGE 0x15
|
||||
#define SPOSE_TURNING_TO_AIM_WHILE_HANGING 0x16
|
||||
#define SPOSE_HIDING_ARM_CANNON_WHILE_HANGING 0x17
|
||||
#define SPOSE_AIMING_WHILE_HANGING 0x18
|
||||
#define SPOSE_SHOOTING_WHILE_HANGING 0x19
|
||||
#define SPOSE_PULLING_YOURSELF_UP_FROM_HANGING 0x1A
|
||||
#define SPOSE_PULLING_YOURSELF_FORWARD_FROM_HANGING 0x1B
|
||||
#define SPOSE_PULLING_YOURSELF_INTO_A_MORPH_BALL_TUNNEL 0x1C
|
||||
#define SPOSE_USING_AN_ELEVATOR 0x1D
|
||||
#define SPOSE_FACING_THE_FOREGROUND 0x1E
|
||||
#define SPOSE_TURNING_FROM_FACING_THE_FOREGROUND 0x1F
|
||||
#define SPOSE_GRABBED_BY_CHOZO_STATUE 0x20
|
||||
#define SPOSE_DELAY_BEFORE_SHINESPARKING 0x21
|
||||
#define SPOSE_SHINESPARKING 0x22
|
||||
#define SPOSE_SHINESPARK_COLLISION 0x23
|
||||
#define SPOSE_DELAY_AFTER_SHINESPARKING 0x24
|
||||
#define SPOSE_DELAY_BEFORE_BALLSPARKING 0x25
|
||||
#define SPOSE_BALLSPARKING 0x26
|
||||
#define SPOSE_BALLSPARK_COLLISION 0x27
|
||||
#define SPOSE_ON_ZIPLINE 0x28
|
||||
#define SPOSE_SHOOTING_ON_ZIPLINE 0x29
|
||||
#define SPOSE_TURNING_ON_ZIPLINE 0x2A
|
||||
#define SPOSE_MORPH_BALL_ON_ZIPLINE 0x2B
|
||||
#define SPOSE_SAVING_LOADING_GAME 0x2C
|
||||
#define SPOSE_DOWNLOADING_MAP_DATA 0x2D
|
||||
#define SPOSE_TURNING_AROUND_TO_DOWNLOAD_MAP_DATA 0x2E
|
||||
#define SPOSE_GETTING_HURT 0x2F
|
||||
#define SPOSE_GETTING_KNOCKED_BACK 0x30
|
||||
#define SPOSE_GETTING_HURT_IN_MORPH_BALL 0x31
|
||||
#define SPOSE_GETTING_KNOCKED_BACK_IN_MORPH_BALL 0x32
|
||||
#define SPOSE_DYING 0x33
|
||||
#define SPOSE_CROUCHING_TO_CRAWL 0x34
|
||||
#define SPOSE_CRAWLING_STOPPED 0x35
|
||||
#define SPOSE_STARTING_TO_CRAWL 0x36
|
||||
#define SPOSE_CRAWLING 0x37
|
||||
#define SPOSE_UNCROUCHING_FROM_CRAWLING 0x38
|
||||
#define SPOSE_TURNING_AROUND_WHILE_CRAWLING 0x39
|
||||
#define SPOSE_SHOOTING_WHILE_CRAWLING 0x3A
|
||||
#define SPOSE_UNCROUCHING_SUITLESS 0x3B
|
||||
#define SPOSE_CROUCHING_SUITLESS 0x3C
|
||||
#define SPOSE_GRABBING_A_LEDGE_SUITLESS 0x3D
|
||||
#define SPOSE_FACING_THE_BACKGROUND_SUITLESS 0x3E
|
||||
#define SPOSE_TURNING_FROM_FACING_THE_BACKGROUND_SUITLESS 0x3F
|
||||
#define SPOSE_ACTIVATING_ZIPLINES 0x40
|
||||
#define SPOSE_IN_ESCAPE_SHIP 0x41
|
||||
#define SPOSE_TURNING_TO_ENTER_ESCAPE_SHIP 0x42
|
||||
#define SPOSE_KNOCKBACK_REQUEST 0xF9
|
||||
#define SPOSE_HURT_REQUEST 0xFA
|
||||
#define SPOSE_LANDING_REQUEST 0xFD
|
||||
#define SPOSE_UPDATE_JUMP_VELOCITY_REQUEST 0xFE
|
||||
#define SPOSE_NONE 0xFF
|
||||
|
||||
#define STANDING_GROUND 0x0
|
||||
#define STANDING_ENEMY 0x1
|
||||
#define STANDING_MIDAIR 0x2
|
||||
#define STANDING_NOT_IN_CONTROL 0x3
|
||||
#define STANDING_FORCED_POSE 0x4
|
||||
#define STANDING_HANGING 0x5
|
||||
#define STANDING_INVALID 0xFF
|
||||
|
||||
#define ACD_FORWARD 0x0
|
||||
#define ACD_DIAGONALLY_UP 0x1
|
||||
#define ACD_DIAGONALLY_DOWN 0x2
|
||||
#define ACD_UP 0x3
|
||||
#define ACD_DOWN 0x4
|
||||
#define ACD_NONE 0x5
|
||||
|
||||
#define SLOPE_NONE 0x0
|
||||
#define SLOPE_STEEP 0x1
|
||||
#define SLOPE_SLIGHT 0x2
|
||||
#define SLOPE_LEFT 0x10
|
||||
#define SLOPE_RIGHT 0x20
|
||||
|
||||
#define HDMOVING_NONE 0x0
|
||||
#define HDMOVING_LEFT 0x1
|
||||
#define HDMOVING_RIGHT 0x2
|
||||
|
||||
#define VDMOVING_NONE 0x0
|
||||
#define VDMOVING_UP 0x1
|
||||
#define VDMOVING_DOWN 0x2
|
||||
|
||||
#define ENV_EFFECT_NONE 0x0
|
||||
#define ENV_EFFECT_RUNNING_ON_WET_GROUND 0x1
|
||||
#define ENV_EFFECT_RUNNING_ON_DUSTY_GROUND 0x2
|
||||
#define ENV_EFFECT_RUNNING_ON_VERY_DUSTY_GROUND 0x3
|
||||
#define ENV_EFFECT_GOING_OUT_OF_WATER 0x4
|
||||
#define ENV_EFFECT_RUNNING_INTO_WATER 0x5
|
||||
#define ENV_EFFECT_GOING_OUT_OF_LAVA 0x6
|
||||
#define ENV_EFFECT_RUNNING_INTO_LAVA 0x7
|
||||
#define ENV_EFFECT_GOING_OUT_OF_ACID 0x8
|
||||
#define ENV_EFFECT_RUNNING_INTO_ACID 0x9
|
||||
#define ENV_EFFECT_TAKING_DAMAGE_IN_LAVA 0xA
|
||||
#define ENV_EFFECT_TAKING_DAMAGE_IN_ACID 0xB
|
||||
#define ENV_EFFECT_LANDING_ON_WET_GROUND 0xC
|
||||
#define ENV_EFFECT_LANDING_ON_BUBBLY_GROUND 0xD
|
||||
#define ENV_EFFECT_LANDING_ON_DUSTY_GROUND 0xE
|
||||
#define ENV_EFFECT_LANDING_ON_VERY_DUSTY_GROUND 0xF
|
||||
#define ENV_EFFECT_SKIDDING_ON_WET_GROUND 0x10
|
||||
#define ENV_EFFECT_SKIDDING_ON_DUSTY_GROUND 0x11
|
||||
#define ENV_EFFECT_BREATHING_BUBBLES 0x12
|
||||
|
||||
#define WANTING_RUNNING_EFFECT 0x0
|
||||
#define WANTING_RUNNING_EFFECT_ 0x1
|
||||
#define WANTING_LANDING_EFFECT 0x2
|
||||
#define WANTING_GOING_OUT_OF_LIQUID_EFFECT 0x3
|
||||
#define WANTING_RUNNING_OUT_OF_LIQUID_EFFECT 0x4
|
||||
#define WANTING_BREATHING_BUBBLES 0x5
|
||||
#define WANTING_SKIDDING_EFFECT 0x6
|
||||
#define WANTING_RUNNING_ON_WET_GROUND 0x7
|
||||
|
||||
#define DESTRUCTING_ACTION_NONE 0x0
|
||||
#define DESTRUCTING_ACTION_SPEED 0x1
|
||||
#define DESTRUCTING_ACTION_SCREW 0x2
|
||||
#define DESTRUCTING_ACTION_SPEED_SCREW 0x3
|
||||
#define DESTRUCTING_ACTION_SPEED_ON_GROUND 0x4
|
||||
|
||||
#define SAMUS_ANIM_STATE_NONE 0x0
|
||||
#define SAMUS_ANIM_STATE_SUB_ENDED 0x1
|
||||
#define SAMUS_ANIM_STATE_ENDED 0x2
|
||||
|
||||
// Probably not 100% true
|
||||
#define SAMUS_COLLISION_DETECTION_NONE 0x0
|
||||
#define SAMUS_COLLISION_DETECTION_LEFT_MOST 0x1
|
||||
#define SAMUS_COLLISION_DETECTION_MIDDLE_LEFT 0x2
|
||||
#define SAMUS_COLLISION_DETECTION_MIDDLE_RIGHT 0x4
|
||||
#define SAMUS_COLLISION_DETECTION_RIGHT_MOST 0x8
|
||||
#define SAMUS_COLLISION_DETECTION_SLOPE 0x80
|
||||
|
||||
|
||||
#define FORCED_MOVEMENT_UPWARDS_SHINESPARK 0x0
|
||||
#define FORCED_MOVEMENT_SIDEWARDS_SHINESPARK 0x1
|
||||
#define FORCED_MOVEMENT_CROUCHING_ARM_CANNON_UP 0x1
|
||||
#define FORCED_MOVEMENT_DIAGONAL_SHINESPARK 0x2
|
||||
#define FORCED_MOVEMENT_LAUNCHED_BY_CANNON 0xF0
|
||||
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP 0x0
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP_RIGHT 0xA
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP_UP 0xB
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP_LEFT 0xC
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP_ABOVE 0x80
|
||||
|
||||
|
||||
#define SCREW_SPEED_FLAG_NONE 0x0
|
||||
#define SCREW_SPEED_FLAG_SHINESPARKING 0x1
|
||||
#define SCREW_SPEED_FLAG_SPEEDBOOSTING 0x1
|
||||
#define SCREW_SPEED_FLAG_SCREW_ATTACKING 0x1
|
||||
#define SCREW_SPEED_FLAG_STORING_SHINESPARK 0x8
|
362
include/constants/sprite.h
Normal file
362
include/constants/sprite.h
Normal file
@ -0,0 +1,362 @@
|
||||
|
||||
|
||||
// Defines
|
||||
|
||||
#define SPRITE_STATUS_NONE 0x0
|
||||
#define SPRITE_STATUS_EXISTS 0x1
|
||||
#define SPRITE_STATUS_ONSCREEN 0x2
|
||||
#define SPRITE_STATUS_NOT_DRAWN 0x4
|
||||
#define SPRITE_STATUS_ROTATION_SCALING 0x8
|
||||
#define SPRITE_STATUS_UNKNOWN 0x10
|
||||
#define SPRITE_STATUS_MOSAIC 0x20
|
||||
#define SPRITE_STATUS_XFLIP 0x40
|
||||
#define SPRITE_STATUS_YFLIP 0x80
|
||||
#define SPRITE_STATUS_FACING_DOWN 0x100
|
||||
#define SPRITE_STATUS_FACING_RIGHT 0x200
|
||||
#define SPRITE_STATUS_UNKNOWN2 0x400
|
||||
#define SPRITE_STATUS_SAMUS_COLLIDING 0x800
|
||||
#define SPRITE_STATUS_SAMUS_ON_TOP 0x1000
|
||||
#define SPRITE_STATUS_ALPHA_BLENDING 0x2000
|
||||
#define SPRITE_STATUS_DOUBLE_SIZE 0x4000
|
||||
#define SPRITE_STATUS_IGNORE_PROJECTILES 0x8000
|
||||
|
||||
#define PSPRITE_UNUSED0 0x0
|
||||
#define PSPRITE_UNUSED1 0x1
|
||||
#define PSPRITE_UNUSED2 0x2
|
||||
#define PSPRITE_UNUSED3 0x3
|
||||
#define PSPRITE_UNUSED4 0x4
|
||||
#define PSPRITE_UNUSED5 0x5
|
||||
#define PSPRITE_UNUSED6 0x6
|
||||
#define PSPRITE_UNUSED7 0x7
|
||||
#define PSPRITE_UNUSED8 0x8
|
||||
#define PSPRITE_UNUSED9 0x9
|
||||
#define PSPRITE_UNUSED10 0xA
|
||||
#define PSPRITE_UNUSED11 0xB
|
||||
#define PSPRITE_UNUSED12 0xC
|
||||
#define PSPRITE_UNUSED13 0xD
|
||||
#define PSPRITE_UNUSED14 0xE
|
||||
#define PSPRITE_UNUSED15 0xF
|
||||
#define PSPRITE_UNUSED16 0x10
|
||||
#define PSPRITE_ITEM_BANNER 0x11
|
||||
#define PSPRITE_ZOOMER_YELLOW 0x12
|
||||
#define PSPRITE_ZOOMER_RED 0x13
|
||||
#define PSPRITE_ZEELA 0x14
|
||||
#define PSPRITE_ZEELA_RED 0x15
|
||||
#define PSPRITE_RIPPER_BROWN 0x16
|
||||
#define PSPRITE_RIPPER_PURPLE 0x17
|
||||
#define PSPRITE_ZEB 0x18
|
||||
#define PSPRITE_ZEB_BLUE 0x19
|
||||
#define PSPRITE_LARGE_ENERGY_DROP 0x1A
|
||||
#define PSPRITE_SMALL_ENERGY_DROP 0x1B
|
||||
#define PSPRITE_MISSILE_DROP 0x1C
|
||||
#define PSPRITE_SUPER_MISSILE_DROP 0x1D
|
||||
#define PSPRITE_POWER_BOMB_DROP 0x1E
|
||||
#define PSPRITE_SKREE_GREEN 0x1F
|
||||
#define PSPRITE_SKREE_BLUE 0x20
|
||||
#define PSPRITE_MORPH_BALL 0x21
|
||||
#define PSPRITE_CHOZO_STATUE_LONG_HINT 0x22
|
||||
#define PSPRITE_CHOZO_STATUE_LONG 0x23
|
||||
#define PSPRITE_CHOZO_STATUE_ICE_HINT 0x24
|
||||
#define PSPRITE_CHOZO_STATUE_ICE 0x25
|
||||
#define PSPRITE_CHOZO_STATUE_WAVE_HINT 0x26
|
||||
#define PSPRITE_CHOZO_STATUE_WAVE 0x27
|
||||
#define PSPRITE_CHOZO_STATUE_BOMB_HINT 0x28
|
||||
#define PSPRITE_CHOZO_STATUE_BOMB 0x29
|
||||
#define PSPRITE_CHOZO_STATUE_SPEEDBOOSTER_HINT 0x2A
|
||||
#define PSPRITE_CHOZO_STATUE_SPEEDBOOSTER 0x2B
|
||||
#define PSPRITE_CHOZO_STATUE_HIGH_JUMP_HINT 0x2C
|
||||
#define PSPRITE_CHOZO_STATUE_HIGH_JUMP 0x2D
|
||||
#define PSPRITE_CHOZO_STATUE_SCREW_HINT 0x2E
|
||||
#define PSPRITE_CHOZO_STATUE_SCREW 0x2F
|
||||
#define PSPRITE_CHOZO_STATUE_VARIA_HINT 0x30
|
||||
#define PSPRITE_CHOZO_STATUE_VARIA 0x31
|
||||
#define PSPRITE_SOVA_PURPLE 0x32
|
||||
#define PSPRITE_SOVA_ORANGE 0x33
|
||||
#define PSPRITE_MULTIVIOLA 0x34
|
||||
#define PSPRITE_MULTIPLE_LARGE_ENERGY 0x35
|
||||
#define PSPRITE_GERUTA_RED 0x36
|
||||
#define PSPRITE_GERUTA_GREEN 0x37
|
||||
#define PSPRITE_SQUEEPT 0x38
|
||||
#define PSPRITE_SQUEEPT_UNUSED 0x39
|
||||
#define PSPRITE_MAP_STATION 0x3A
|
||||
#define PSPRITE_DRAGON 0x3B
|
||||
#define PSPRITE_DRAGON_UNUSED 0x3C
|
||||
#define PSPRITE_ZIPLINE 0x3D
|
||||
#define PSPRITE_ZIPLINE_BUTTON 0x3E
|
||||
#define PSPRITE_REO_GREEN_WINGS 0x3F
|
||||
#define PSPRITE_REO_PURPLE_WINGS 0x40
|
||||
#define PSPRITE_GUNSHIP 0x41
|
||||
#define PSPRITE_DEOREM 0x42
|
||||
#define PSPRITE_DEOREM_SECOND_LOCATION 0x43
|
||||
#define PSPRITE_CHARGE_BEAM 0x44
|
||||
#define PSPRITE_SKULTERA 0x45
|
||||
#define PSPRITE_DESSGEEGA 0x46
|
||||
#define PSPRITE_DESSGEEGA_AFTER_LONG_BEAM 0x47
|
||||
#define PSPRITE_WAVER 0x48
|
||||
#define PSPRITE_WAVER_UNUSED 0x49
|
||||
#define PSPRITE_MELLOW 0x4A
|
||||
#define PSPRITE_HIVE 0x4B
|
||||
#define PSPRITE_POWER_GRIP 0x4C
|
||||
#define PSPRITE_IMAGO_LARVA_RIGHT 0x4D
|
||||
#define PSPRITE_MORPH_BALL_LAUNCHER 0x4E
|
||||
#define PSPRITE_IMAGO_COCOON 0x4F
|
||||
#define PSPRITE_ELEVATOR_PAD 0x50
|
||||
#define PSPRITE_SPACE_PIRATE 0x51
|
||||
#define PSPRITE_SPACE_PIRATE_WAITING1 0x52
|
||||
#define PSPRITE_SPACE_PIRATE_WAITING2 0x53
|
||||
#define PSPRITE_SPACE_PIRATE_WAITING3 0x54
|
||||
#define PSPRITE_SPACE_PIRATE2 0x55
|
||||
#define PSPRITE_GAMET_BLUE_SINGLE 0x56
|
||||
#define PSPRITE_GAMET_RED_SINGLE 0x57
|
||||
#define PSPRITE_CHOZO_STATUE_GRAVITY 0x58
|
||||
#define PSPRITE_CHOZO_STATUE_SPACE_JUMP 0x59
|
||||
#define PSPRITE_SECURITY_GATE_DEFAULT_OPEN 0x5A
|
||||
#define PSPRITE_ZEBBO_GREEN 0x5B
|
||||
#define PSPRITE_ZEBBO_YELLOW 0x5C
|
||||
#define PSPRITE_WORKER_ROBOT 0x5D
|
||||
#define PSPRITE_PARASITE_MULTIPLE 0x5E
|
||||
#define PSPRITE_PARASITE 0x5F
|
||||
#define PSPRITE_PISTON 0x60
|
||||
#define PSPRITE_RIDLEY 0x61
|
||||
#define PSPRITE_SECURITY_GATE_DEFAULT_CLOSED 0x62
|
||||
#define PSPRITE_ZIPLINE_GENERATOR 0x63
|
||||
#define PSPRITE_METROID 0x64
|
||||
#define PSPRITE_FROZEN_METROID 0x65
|
||||
#define PSPRITE_RINKA_ORANGE 0x66
|
||||
#define PSPRITE_POLYP 0x67
|
||||
#define PSPRITE_VIOLA_BLUE 0x68
|
||||
#define PSPRITE_VIOLA_ORANGE 0x69
|
||||
#define PSPRITE_GERON_NORFAIR 0x6A
|
||||
#define PSPRITE_HOLTZ 0x6B
|
||||
#define PSPRITE_GEKITAI_MACHINE 0x6C
|
||||
#define PSPRITE_RUINS_TEST 0x6D
|
||||
#define PSPRITE_SAVE_PLATFORM 0x6E
|
||||
#define PSPRITE_KRAID 0x6F
|
||||
#define PSPRITE_IMAGO_COCOON_AFTER_FIGHT 0x70
|
||||
#define PSPRITE_RIPPERII 0x71
|
||||
#define PSPRITE_MELLA 0x72
|
||||
#define PSPRITE_ATOMIC 0x73
|
||||
#define PSPRITE_AREA_BANNER 0x74
|
||||
#define PSPRITE_MOTHER_BRAIN 0x75
|
||||
#define PSPRITE_FAKE_POWER_BOMB_EVENT_TRIGGER 0x76
|
||||
#define PSPRITE_ACID_WORM 0x77
|
||||
#define PSPRITE_ESCAPE_SHIP 0x78
|
||||
#define PSPRITE_SIDEHOPPER 0x79
|
||||
#define PSPRITE_GEEGA 0x7A
|
||||
#define PSPRITE_GEEGA_WHITE 0x7B
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN 0x7C
|
||||
#define PSPRITE_ZEBETITE_ONE_AND_THREE 0x7D
|
||||
#define PSPRITE_CANNON 0x7E
|
||||
#define PSPRITE_IMAGO_LARVA_RIGHT_SIDE 0x7F
|
||||
#define PSPRITE_TANGLE_VINE_TALL 0x80
|
||||
#define PSPRITE_TANGLE_VINE_MEDIUM 0x81
|
||||
#define PSPRITE_TANGLE_VINE_CURVED 0x82
|
||||
#define PSPRITE_TANGLE_VINE_SHORT 0x83
|
||||
#define PSPRITE_MELLOW_SWARM 0x84
|
||||
#define PSPRITE_MELLOW_SWARM_HEALTH_BASED 0x85
|
||||
#define PSPRITE_IMAGO 0x86
|
||||
#define PSPRITE_ZEBITITE_TWO_AND_FOUR 0x87
|
||||
#define PSPRITE_CANNON2 0x88
|
||||
#define PSPRITE_CANNON3 0x89
|
||||
#define PSPRITE_CROCOMIRE 0x8A
|
||||
#define PSPRITE_IMAGO_LARVA_LEFT 0x8B
|
||||
#define PSPRITE_GERON_BRINSTAR_ROOM_15 0x8C
|
||||
#define PSPRITE_GERON_BRINSTAR_ROOM_1C 0x8D
|
||||
#define PSPRITE_GERON_VARIA1 0x8E
|
||||
#define PSPRITE_GERON_VARIA2 0x8F
|
||||
#define PSPRITE_GERON_VARIA3 0x90
|
||||
#define PSPRITE_GLASS_TUBE 0x91
|
||||
#define PSPRITE_SAVE_PLATFORM_CHOZODIA 0x92
|
||||
#define PSPRITE_BARISTUTE 0x93
|
||||
#define PSPRITE_CHOZO_STATUE_PLASMA_BEAM 0x94
|
||||
#define PSPRITE_KRAID_ELEVATOR_STATUE 0x95
|
||||
#define PSPRITE_RIDLEY_ELEVATOR_STATUE 0x96
|
||||
#define PSPRITE_RISING_CHOZO_PILLAR 0x97
|
||||
#define PSPRITE_SECURITY_LASER_VERTICAL 0x98
|
||||
#define PSPRITE_SECURITY_LASER_HORIZONTAL 0x99
|
||||
#define PSPRITE_SECURITY_LASER_VERTICAL2 0x9A
|
||||
#define PSPRITE_SECURITY_LASER_HORIZONTAL2 0x9B
|
||||
#define PSPRITE_LOCK_UNLOCK_METROID_DOORS_UNUSED 0x9C
|
||||
#define PSPRITE_GAMET_BLUE_LEADER 0x9D
|
||||
#define PSPRITE_GAMET_BLUE_FOLLOWER 0x9E
|
||||
#define PSPRITE_GEEGA_LEADER 0x9F
|
||||
#define PSPRITE_GEEGA_FOLLOWER 0xA0
|
||||
#define PSPRITE_ZEBBO_GREEN_LEADER 0xA1
|
||||
#define PSPRITE_ZEBBO_GREEN_FOLLOWER 0xA2
|
||||
#define PSPRITE_KRAID_STATUE 0xA3
|
||||
#define PSPRITE_RIDLEY_STATUE 0xA4
|
||||
#define PSPRITE_RINKA_GREEN 0xA5
|
||||
#define PSPRITE_SEARCHLIGHT_EYE 0xA6
|
||||
#define PSPRITE_SEARCHLIGHT_EYE2 0xA7
|
||||
#define PSPRITE_STEAM_LARGE 0xA8
|
||||
#define PSPRITE_STEAM_SMALL 0xA9
|
||||
#define PSPRITE_PLASMA_BEAM_BLOCK 0xAA
|
||||
#define PSPRITE_GRAVITY_SUIT_BLOCK 0xAB
|
||||
#define PSPRITE_SPACE_JUMP_BLOCK 0xAC
|
||||
#define PSPRITE_GADORA_KRAID 0xAD
|
||||
#define PSPRITE_GADORA_RIDLEY 0xAE
|
||||
#define PSPRITE_SEARCHLIGHT 0xAF
|
||||
#define PSPRITE_SEARCHLIGHT2 0xB0
|
||||
#define PSPRITE_SEARCHLIGHT3 0xB1
|
||||
#define PSPRITE_SEARCHLIGHT4 0xB2
|
||||
#define PSPRITE_MAYBE_SEARCHLIGHT_TRIGGER 0xB3
|
||||
#define PSPRITE_DISCOVERED_IMAGO_PASSAGE_EVENT_TRIGGER 0xB4
|
||||
#define PSPRITE_FAKE_POWER_BOMB 0xB5
|
||||
#define PSPRITE_SPACE_PIRATE_CARRYING_POWER_BOMB 0xB6
|
||||
#define PSPRITE_TANGLE_VINE_RED_GARUTA 0xB7
|
||||
#define PSPRITE_TANGLE_VINE_GERUTA 0xB8
|
||||
#define PSPRITE_TANGLE_VINE_LARVA_RIGHT 0xB9
|
||||
#define PSPRITE_TANGLE_VINE_LARVA_LEFT 0xBA
|
||||
#define PSPRITE_WATER_DROP 0xBB
|
||||
#define PSPRITE_FALLING_CHOZO_PILLAR 0xBC
|
||||
#define PSPRITE_MECHA_RIDLEY 0xBD
|
||||
#define PSPRITE_EXPLOSION_ZEBES_ESCAPE 0xBE
|
||||
#define PSPRITE_STEAM_LARGE_DIAGONAL_UP 0xBF
|
||||
#define PSPRITE_STEAM_SMALL_DIAGONAL_UP 0xC0
|
||||
#define PSPRITE_STEAM_LARGE_DIAGONAL_DOWN 0xC1
|
||||
#define PSPRITE_STEAM_SMALL_DIAGONAL_DOWN 0xC2
|
||||
#define PSPRITE_BARISTUTE_KRAID_UPPER 0xC3
|
||||
#define PSPRITE_ESCAPE_GATE1 0xC4
|
||||
#define PSPRITE_ESCAPE_GATE2 0xC5
|
||||
#define PSPRITE_BLACK_SPACE_PIRATE 0xC6
|
||||
#define PSPRITE_ESCAPE_SHIP_SPACE_PIRATE 0xC7
|
||||
#define PSPRITE_BARISTUTE_KRAID_LOWER 0xC8
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN2 0xC9
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN3 0xCA
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN4 0xCB
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN5 0xCC
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN6 0xCD
|
||||
|
||||
#define SSPRITE_CHOZO_BALL 0x0
|
||||
#define SSPRITE_CHOZO_STATUE_PART 0x1
|
||||
#define SSPRITE_CHOZO_STATUE_REFILL 0x2
|
||||
#define SSPRITE_KRAID_PART 0x3
|
||||
#define SSPRITE_CHOZO_STATUE_MOVEMENT 0x4
|
||||
#define SSPRITE_CHARGE_BEAM_GLOW 0x5
|
||||
#define SSPRITE_WINGED_RIPPER 0x6
|
||||
#define SSPRITE_MULTIVIOLA_UNUSED 0x7
|
||||
#define SSPRITE_DRAGON_FIREBALL 0x8
|
||||
#define SSPRITE_DEOREM_SEGMENT 0x9
|
||||
#define SSPRITE_DEOREM_EYE 0xA
|
||||
#define SSPRITE_DEOREM_THORN 0xB
|
||||
#define SSPRITE_SKREE_EXPLOSION 0xC
|
||||
#define SSPRITE_SAVE_PLATFORM_PART 0xD
|
||||
#define SSPRITE_SAVE_YES_NO_CURSOR 0xE
|
||||
#define SSPRITE_BLUE_SKREE_EXPLOSION 0xF
|
||||
#define SSPRITE_ZEELA_EYES 0x10
|
||||
#define SSPRITE_HIVE_ROOTS 0x11
|
||||
#define SSPRITE_IMAGO_LARVA_PART 0x12
|
||||
#define SSPRITE_MORPH_BALL_OUTSIDE 0x13
|
||||
#define SSPRITE_IMAGO_COCOON_VINE 0x14
|
||||
#define SSPRITE_IMAGO_COCOON_SPORE 0x15
|
||||
#define SSPRITE_SPACE_PIRATE_LASER 0x16
|
||||
#define SSPRITE_RIDLEY_PART 0x17
|
||||
#define SSPRITE_RIDLEY_TAIL 0x18
|
||||
#define SSPRITE_SEARCHLIGHT_EYE_BEAM 0x19
|
||||
#define SSPRITE_METROID_SHELL 0x1A
|
||||
#define SSPRITE_POLYP_PROJECTILE 0x1B
|
||||
#define SSPRITE_KRAID_SPIKE 0x1C
|
||||
#define SSPRITE_KRAID_NAIL 0x1D
|
||||
#define SSPRITE_ZIPLINE_GENERATOR_PART 0x1E
|
||||
#define SSPRITE_ATOMIC_ELECTRICITY 0x1F
|
||||
#define SSPRITE_MOTHER_BRAIN_PART 0x20
|
||||
#define SSPRITE_RIDLEY_FIREBALL 0x21
|
||||
#define SSPRITE_UNKNOWN_ITEM_CHOZO_STATUE_PART 0x22
|
||||
#define SSPRITE_UNKNOWN_ITEM_CHOZO_STATUE_REFILL 0x23
|
||||
#define SSPRITE_MORPH_BALL_LAUNCHER_PART 0x24
|
||||
#define SSPRITE_ACID_WORM_BODY 0x25
|
||||
#define SSPRITE_ACID_WORM_SPIT 0x26
|
||||
#define SSPRITE_CANNON_BULLET 0x27
|
||||
#define SSPRITE_CROCOMIRE_PART 0x28
|
||||
#define SSPRITE_IMAGO_PART 0x29
|
||||
#define SSPRITE_DEFEATED_IMAGO_COCOON 0x2A
|
||||
#define SSPRITE_IMAGO_CEILING_VINE 0x2B
|
||||
#define SSPRITE_SEARCHLIGHT_EYE_BEAM2 0x2C
|
||||
#define SSPRITE_TANGLE_VINE_GERUTA_PART 0x2D
|
||||
#define SSPRITE_CHOZODIA_SAVE_PLATFORM_PART 0x2E
|
||||
#define SSPRITE_IMAGO_NEEDLE 0x2F
|
||||
#define SSPRITE_ELEVATOR_STATUE_DEBRIS 0x30
|
||||
#define SSPRITE_IMAGO_DAMAGED_STINGER 0x31
|
||||
#define SSPRITE_GUNSHIP_PART 0x32
|
||||
#define SSPRITE_IMAGO_EGG 0x33
|
||||
#define SSPRITE_MAP_STATION_PART 0x34
|
||||
#define SSPRITE_CHOZO_PILLAR_PLATFORM 0x35
|
||||
#define SSPRITE_GADORA_EYE 0x36
|
||||
#define SSPRITE_GADORA_BEAM 0x37
|
||||
#define SSPRITE_UNKNOWN_ITEM_BLOCK_LIGHT 0x38
|
||||
#define SSPRITE_SEARCHLIGHT_EYE_PROJECTILE 0x39
|
||||
#define SSPRITE_CHOZO_PILLAR_PLATFORM_SHADOW 0x3A
|
||||
#define SSPRITE_RUINS_TEST_SYMBOL 0x3B
|
||||
#define SSPRITE_RUINS_TEST_SAMUS_REFLECTION_START 0x3C
|
||||
#define SSPRITE_RUINS_TEST_REFLECTION_COVER 0x3D
|
||||
#define SSPRITE_RUINS_TEST_GHOST_OUTLINE 0x3E
|
||||
#define SSPRITE_RUINS_TEST_GHOST 0x3F
|
||||
#define SSPRITE_RUINS_TEST_SHOOTABLE_SYMBOL 0x40
|
||||
#define SSPRITE_RUINS_TEST_SAMUS_REFLECTION_END 0x41
|
||||
#define SSPRITE_RUINS_TEST_LIGHTNING 0x42
|
||||
#define SSPRITE_RIDLEY_BIG_FIREBALL 0x43
|
||||
#define SSPRITE_MECHA_RIDLEY_PART 0x44
|
||||
#define SSPRITE_ESCAPE_SHIP_PART 0x45
|
||||
#define SSPRITE_POWER_GRIP_GLOW 0x46
|
||||
#define SSPRITE_MECHA_RIDLEY_LASER 0x47
|
||||
#define SSPRITE_MECHA_RIDLEY_MISSILE 0x48
|
||||
#define SSPRITE_MECHA_RIDLEY_FIREBALL 0x49
|
||||
#define SSPRITE_MOTHER_BRAIN_BEAM 0x4A
|
||||
#define SSPRITE_MOTHER_BRAIN_BLOCK 0x4B
|
||||
#define SSPRITE_MOTHER_BRAIN_GLASS_BREAKING 0x4C
|
||||
|
||||
#define SSC_NONE 0x0
|
||||
#define SSC_SOLID 0x1
|
||||
#define SSC_ESCAPE_SHIP 0x2
|
||||
#define SSC_HURTS_SAMUS_CAN_STAND_ON_TOP 0x3
|
||||
#define SSC_HURTS_SAMUS 0x4
|
||||
#define SSC_ATOMIC_DISCHARGE 0x5
|
||||
#define SSC_HURTS_SAMUS_STOP_DIES_WHEN_HIT 0x6
|
||||
#define SSC_KNOCKS_BACK_SAMUS 0x7
|
||||
#define SSC_HURTS_SAMUS_NO_KNOCKBACK 0x9
|
||||
#define SSC_KRAID 0xA
|
||||
#define SSC_HURTS_SAMUS_NO_PASS_THROUGH 0xB
|
||||
#define SSC_ZEBETITE 0xC
|
||||
#define SSC_IMAGO_STINGER 0xD
|
||||
#define SSC_HURTS_SAMUS_STOP_DIES_WHEN_HIT_BIG_KNOCKBACK 0xE
|
||||
#define SSC_MOTHER_BRAIN_BEAM 0xF
|
||||
#define SSC_HURTS_SAMUS_STOP_DIES_WHEN_HIT_NO_KNOCKBACK 0x10
|
||||
#define SSC_HURTS_SAMUS_NO_KNOCKBACK_NO_CONTACT_DAMAGE 0x11
|
||||
#define SSC_MELLOW 0x12
|
||||
#define SSC_SPACE_PIRATE_LASER 0x13
|
||||
#define SSC_SPACE_PIRATE 0x14
|
||||
#define SSC_ACID_WORM 0x15
|
||||
#define SSC_ACID_WORM_MOUTH 0x16
|
||||
#define SSC_BUG 0x17
|
||||
#define SSC_METROID 0x18
|
||||
#define SSC_KRAID_SPIKE 0x19
|
||||
#define SSC_ZIPLINE 0x1A
|
||||
#define SSC_IMAGO_EGG 0x1B
|
||||
#define SSC_RIDLEY_CLAW 0x1C
|
||||
#define SSC_MECHA_RIDLEY 0x1D
|
||||
#define SSC_ABILITY_LASER_SEARCHLIGHT 0x1E
|
||||
#define SSC_SMALL_ENERGY_DROP 0x1F
|
||||
#define SSC_LARGE_ENERGY_DROP 0x20
|
||||
#define SSC_MISSILE_DROP 0x21
|
||||
#define SSC_SUPER_MISSILE_DROP 0x22
|
||||
#define SSC_POWER_BOMB_DROP 0x23
|
||||
#define SSC_MULTIPLE_LARGE_ENERGY_DROP 0x24
|
||||
|
||||
#define SP_NONE 0x0
|
||||
#define SP_ALWAYS_ACTIVE 0x1
|
||||
#define SP_DAMAGED 0x2
|
||||
#define SP_KILL_OFF_SCREEN 0x4
|
||||
#define SP_SOLID_FOR_PROJECTILES 0x8
|
||||
#define SP_DESTROYED 0x10
|
||||
#define SP_ABSOLUTE_POSITION 0x20
|
||||
#define SP_IMMUNE_TO_PROJECTILES 0x40
|
||||
#define SP_SECONDARY_SPRITE 0x80
|
||||
|
||||
#define WEAKNESS_NONE 0x0
|
||||
#define WEAKNESS_CHARGE_BEAM_PISTOL 0x1
|
||||
#define WEAKNESS_BEAM_BOMBS 0x2
|
||||
#define WEAKNESS_SUPER_MISSILES 0x4
|
||||
#define WEAKNESS_MISSILES 0x8
|
||||
#define WEAKNESS_POWER_BOMB 0x10
|
||||
#define WEAKNESS_SPEEDBOOSTER_SCREW_ATTACK 0x20
|
||||
#define WEAKNESS_CAN_BE_FROZEN 0x40
|
32
include/constants/sprite_util.h
Normal file
32
include/constants/sprite_util.h
Normal file
@ -0,0 +1,32 @@
|
||||
#define NSLR_OUT_OF_RANGE 0x0
|
||||
#define NSLR_LEFT 0x4
|
||||
#define NSLR_RIGHT 0x8
|
||||
|
||||
#define NSAB_OUT_OF_RANGE 0x0
|
||||
#define NSAB_ABOVE 0x1
|
||||
#define NSAB_BELOW 0x2
|
||||
|
||||
#define NSFB_OUT_OF_RANGE 0x0
|
||||
#define NSAB_IN_FRONT 0x3
|
||||
#define NSAB_BEHIND 0xC
|
||||
|
||||
#define DCT_NONE 0x0
|
||||
#define DCT_SHINESPARK 0x1
|
||||
#define DCT_SPEEDBOOSTER 0x2
|
||||
#define DCT_SCREW_ATTACK 0x3
|
||||
#define DCT_SUDO_SCREW 0x4
|
||||
|
||||
#define DEATH_NORMAL 0x0
|
||||
#define DEATH_RESPAWNING 0x1
|
||||
#define DEATH_NO_DEATH_OR_RESPAWNING_ALREADY_HAS_DROP 0x2
|
||||
|
||||
#define SPLASH_NONE 0x0
|
||||
#define SPLASH_SMALL 0x1
|
||||
#define SPLASH_BIG 0x2
|
||||
#define SPLASH_HUGE 0x3
|
||||
|
||||
#define SPRITE_COLLISION_FLAG_NONE 0x0
|
||||
#define SPRITE_COLLISION_FLAG_ON_TOP 0x1
|
||||
#define SPRITE_COLLISION_FLAG_ON_BOTTOM 0x2
|
||||
#define SPRITE_COLLISION_FLAG_ON_LEFT 0x4
|
||||
#define SPRITE_COLLISION_FLAG_ON_RIGHT 0x8
|
@ -60,7 +60,7 @@ static const u8 sRandomNumberTable[256] = {
|
||||
116, 180, 78, 153, 60, 7, 223, 175
|
||||
};
|
||||
|
||||
const Func_T sIntrTable[13] = {
|
||||
static const Func_T sIntrTable[13] = {
|
||||
sub_08003380,
|
||||
CallbackCallSerialCommunication,
|
||||
CallbackCallTimer3,
|
||||
|
@ -2,6 +2,8 @@
|
||||
#define HATCH_DATA_C
|
||||
|
||||
#include "types.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "connection.h"
|
||||
#include "clipdata.h"
|
||||
|
||||
|
@ -2,10 +2,12 @@
|
||||
#define POINTERS_DATA_C
|
||||
|
||||
#include "types.h"
|
||||
#include "samus.h"
|
||||
#include "projectile.h"
|
||||
#include "particle.h"
|
||||
#include "connection.h"
|
||||
#include "constants/samus.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/projectile.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
#include "sprites_AI/sprites.h"
|
||||
#include "sprites/chozo_statue.c"
|
||||
#include "sprites/crocomire.c"
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define SPRITE_DATA_C
|
||||
|
||||
#include "types.h"
|
||||
#include "sprite.h"
|
||||
#include "constants/sprite.h"
|
||||
|
||||
// 2b0c94
|
||||
|
||||
|
@ -8,19 +8,6 @@
|
||||
|
||||
// Structs
|
||||
|
||||
struct IORegistersBackup {
|
||||
u16 DISPCNT_NonGameplay;
|
||||
u16 BLDCNT_NonGameplay;
|
||||
u8 BLDALPHA_NonGameplay_EVA;
|
||||
u8 BLDALPHA_NonGameplay_EVB;
|
||||
u8 WININ_H_NonGameplay;
|
||||
u8 WINOUT_L_NonGameplay;
|
||||
u16 BG0CNT_WriteOnly;
|
||||
u16 BG0CNT;
|
||||
u16 BG1CNT;
|
||||
u16 BG2CNT;
|
||||
u16 BG3CNT;
|
||||
};
|
||||
|
||||
// Functions
|
||||
|
||||
|
@ -9,16 +9,6 @@ extern u8 gCurrentEscapeStatus;
|
||||
extern u8 gEscapeTimerCounter;
|
||||
extern struct EscapeDigits gEscapeTimerDigits;
|
||||
|
||||
// Defines
|
||||
|
||||
#define ESCAPE_NONE 0x0
|
||||
#define ESCAPE_MOTHER_BRAIN 0x1
|
||||
#define ESCAPE_MECHA_RIDLEY 0x2
|
||||
|
||||
#define ESCAPE_STATUS_NONE 0x0
|
||||
#define ESCAPE_STATUS_HAPPENNING 0x1
|
||||
#define ESCAPE_STATUS_FAILED 0x2
|
||||
|
||||
// Structs
|
||||
|
||||
struct __attribute__((packed)) EscapeDigits {
|
||||
|
@ -3,98 +3,6 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Globals
|
||||
|
||||
|
||||
// Defines
|
||||
|
||||
#define EVENT_ACTION_CLEARING 0x0
|
||||
#define EVENT_ACTION_SETTING 0x1
|
||||
#define EVENT_ACTION_TOGGLING 0x2
|
||||
#define EVENT_ACTION_CHECKING 0x3
|
||||
|
||||
#define EVENT_NONE 0x0
|
||||
#define EVENT_EASY 0x1
|
||||
#define EVENT_HARD 0x2
|
||||
#define EVENT_ENTER_NORFAIR_DEMO_PLAYED 0x3
|
||||
#define EVENT_EXIT_KRAID_DEMO_PLAYED 0x4
|
||||
#define EVENT_ENTER_RIDLEY_DEMO_PLAYED 0x5
|
||||
#define EVENT_ENTER_MOTHERSHIP_DEMO_PLAYED 0x6
|
||||
#define EVENT_ENTER_TOURIAN_DEMO_PLAYED 0x7
|
||||
#define EVENT_STATUE_LONG_BEAM_GRABBED 0x8
|
||||
#define EVENT_STATUE_BOMBS_GRABBED 0x9
|
||||
#define EVENT_STATUE_ICE_BEAM_GRABBED 0xA
|
||||
#define EVENT_STATUE_SPEEDBOOSTER_GRABBED 0xB
|
||||
#define EVENT_STATUE_HIGH_JUMP_GRABBED 0xC
|
||||
#define EVENT_STATUE_VARIA_SUIT_GRABBED 0xD
|
||||
#define EVENT_STATUE_WAVE_BEAM_GRABBED 0xE
|
||||
#define EVENT_STATUE_SCREW_ATTACK_GRABBED 0xF
|
||||
#define EVENT_POWER_GRIP_OBTAINED 0x10
|
||||
#define EVENT_CHOZO_PILLAR_FULLY_EXTENDED 0x11
|
||||
#define EVENT_HIGH_JUMP_OBTAINED 0x12
|
||||
#define EVENT_VARIA_SUIT_OBTAINED 0x13
|
||||
#define EVENT_CHARGE_BEAM_OBTAINED 0x14
|
||||
#define EVENT_SCREW_ATTACK_OBTAINED 0x15
|
||||
#define EVENT_SPACE_JUMP_OBTAINED 0x16
|
||||
#define EVENT_GRAVITY_SUIT_OBTAINED 0x17
|
||||
#define EVENT_PLASMA_BEAM_OBTAINED 0x18
|
||||
#define EVENT_DEOREM_ENCOUNTERED_AT_FIRST_LOCATION_OR_KILLED 0x19
|
||||
#define EVENT_DEOREM_ENCOUNTERED_AT_SECOND_LOCATION_OR_KILLED 0x1A
|
||||
#define EVENT_DEOREM_KILLED_AT_SECOND_LOCATION 0x1B
|
||||
#define EVENT_ACID_WORM_KILLED 0x1C
|
||||
#define EVENT_KRAID_GADORA_KILLED 0x1D
|
||||
#define EVENT_KRAID_KILLED 0x1E
|
||||
#define EVENT_KRAID_ELEVATOR_STATUE_DESTROYED 0x1F
|
||||
#define EVENT_CATERPILLAR_KILLED 0x20
|
||||
#define EVENT_IMAGO_TUNNEL_DISCOVERED 0x21
|
||||
#define EVENT_IMAGO_COCOON_KILLED 0x22
|
||||
#define EVENT_IMAGO_KILLED 0x23
|
||||
#define EVENT_RIDLEY_GADORA_KILLED 0x24
|
||||
#define EVENT_RIDLEY_KILLED 0x25
|
||||
#define EVENT_RIDLEY_ELEVATOR_STATUE_DESTROYED 0x26
|
||||
#define EVENT_MOTHER_BRAIN_KILLED 0x27
|
||||
#define EVENT_CROCOMIRE_KILLED 0x28
|
||||
#define EVENT_REPEL_MACHINE_KILLED 0x29
|
||||
#define EVENT_VIEWED_STATUE_ROOM 0x2A
|
||||
#define EVENT_LONG_BEAM_DESSGEEGA_KILLED 0x2B
|
||||
#define EVENT_THREE_HIVES_DESTROYED 0x2C
|
||||
#define EVENT_BUGS_KILLED 0x2D
|
||||
#define EVENT_ZIPLINES_ACTIVATED 0x2E
|
||||
#define EVENT_PLANT_DESTROYED_LAVA 0x2F
|
||||
#define EVENT_PLANT_DESTROYED_POST_VARIA 0x30
|
||||
#define EVENT_PLANT_DESTROYED_VARIA2 0x31
|
||||
#define EVENT_PLANT_DESTROYED_VARIA3 0x32
|
||||
#define EVENT_PLANT_DESTROYED_VARIA1 0x33
|
||||
#define EVENT_KRAID_BARISTUTES_KILLED 0x34
|
||||
#define EVENT_KRAID_STATUE_OPENED 0x35
|
||||
#define EVENT_RIDLEY_STATUE_OPENED 0x36
|
||||
#define EVENT_FIRST_METROID_ROOM_CLEARED 0x37
|
||||
#define EVENT_THIRD_METROID_ROOM_CLEARED 0x38
|
||||
#define EVENT_FIFTH_METROID_ROOM_CLEARED 0x39
|
||||
#define EVENT_SECOND_METROID_ROOM_CLEARED 0x3A
|
||||
#define EVENT_SIXTH_METROID_ROOM_CLEARED 0x3B
|
||||
#define EVENT_FOURTH_METROID_ROOM_CLEARED 0x3C
|
||||
#define EVENT_ZEBETITE_ONE_DESTROYED 0x3D
|
||||
#define EVENT_ZEBETITE_TWO_DESTROYED 0x3E
|
||||
#define EVENT_ZEBETITE_THREE_DESTROYED 0x3F
|
||||
#define EVENT_ZEBETITE_FOUR_DESTROYED 0x40
|
||||
#define EVENT_ESCAPED_ZEBES 0x41
|
||||
#define EVENT_MARKER_BETWEEN_ZEBES_AND_MOTHERSHIP 0x42
|
||||
#define EVENT_FULLY_POWERED_SUIT_OBTAINED 0x43
|
||||
#define EVENT_SKIPPED_VARIA_SUIT 0x44
|
||||
#define EVENT_CHOZOBLOCK 0x45
|
||||
#define EVENT_POWER_BOMB_STOLEN 0x46
|
||||
#define EVENT_SPACE_PIRATE_WITH_POWER_BOMB_ONE 0x47
|
||||
#define EVENT_SPACE_PIRATE_WITH_POWER_BOMB_TWO 0x48
|
||||
#define EVENT_GLASS_TUBE_BROKEN 0x49
|
||||
#define EVENT_MECHA_RIDLEY_KILLED 0x4A
|
||||
#define EVENT_ESCAPED_CHOZODIA 0x4B
|
||||
#define EVENT_AKI 0x4C
|
||||
#define EVENT_BOMBATE 0x4D
|
||||
#define EVENT_END_UNUSED 0x4E
|
||||
|
||||
// Functions
|
||||
|
||||
u32 EventFunction(u8 action, u8 event);
|
||||
|
||||
#endif /* EVENT_H */
|
@ -1,34 +0,0 @@
|
||||
#ifndef GAME_MODE_H
|
||||
#define GAME_MODE_H
|
||||
|
||||
enum MainGameMode {
|
||||
GM_SOFTRESET,
|
||||
GM_INTRO,
|
||||
GM_TITLE,
|
||||
GM_FILESELECT,
|
||||
GM_INGAME,
|
||||
GM_MAP_SCREEN,
|
||||
GM_GAMEOVER,
|
||||
GM_CHOZODIA_ESCAPE,
|
||||
GM_CREDITS,
|
||||
GM_TOURIAN_ESCAPE,
|
||||
GM_CUTSCENE,
|
||||
GM_DEMO,
|
||||
GM_GALLERY,
|
||||
GM_FUSION_GALLERY,
|
||||
GM_START_SOFTRESET, /* probably */
|
||||
GM_ERASE_SRAM,
|
||||
GM_DEBUG_MENU,
|
||||
};
|
||||
|
||||
// For in game
|
||||
|
||||
#define SUB_GAME_MODE_PLAYING 0x2
|
||||
#define SUB_GAME_MODE_LOADING_ROOM 0x3
|
||||
|
||||
extern i16 gMainGameMode;
|
||||
extern i16 gGameModeSub1;
|
||||
extern i8 gGameModeSub2;
|
||||
extern i8 gGameModeSub3;
|
||||
|
||||
#endif /* GAME_MODE_H */
|
@ -4,7 +4,6 @@
|
||||
#include "callbacks.h"
|
||||
#include "types.h"
|
||||
#include "sprite_debris.h"
|
||||
#include "sprite.h"
|
||||
#include "room.h"
|
||||
#include "particle.h"
|
||||
#include "oam.h"
|
||||
@ -28,31 +27,6 @@ extern u16 unk_02035400;
|
||||
|
||||
// IWRAM
|
||||
|
||||
enum PauseScreenFlags {
|
||||
PAUSE_SCREEN_NONE,
|
||||
PAUSE_SCREEN_UNKNOWN_1,
|
||||
PAUSE_SCREEN_PAUSE_OR_CUTSCENE,
|
||||
PAUSE_SCREEN_UNKNOWN_3,
|
||||
PAUSE_SCREEN_CHOZO_HINT,
|
||||
PAUSE_SCREEN_MAP_DOWNLOAD,
|
||||
PAUSE_SCREEN_ITEM_ACQUISITION,
|
||||
PAUSE_SCREEN_SUITLESS_ITEMS,
|
||||
PAUSE_SCREEN_FULLY_POWERED_SUIT_ITEMS,
|
||||
PAUSE_SCREEN_UNKNOWN_9,
|
||||
};
|
||||
|
||||
#define MAX_AMOUNT_OF_DIFFICULTIES 3
|
||||
|
||||
enum Difficulty {
|
||||
DIFF_EASY = 0x0,
|
||||
DIFF_NORMAL = 0x1,
|
||||
DIFF_HARD = 0x2
|
||||
};
|
||||
|
||||
#define LANGUAGE_JAPANESE 0x0
|
||||
#define LANGUAGE_HIRAGANA 0x1
|
||||
#define LANGUAGE_ENGLISH 0x2
|
||||
|
||||
// Temporary place
|
||||
|
||||
#define CUTSCENE_NONE 0x0
|
||||
@ -71,17 +45,6 @@ enum Difficulty {
|
||||
#define CUTSCENE_MECHA_RIDLEY_SEES_SAMUS 0xD
|
||||
#define CUTSCENE_SAMUS_IN_BLUE_SHIP 0xE
|
||||
|
||||
struct InGameTimer {
|
||||
u8 hours;
|
||||
u8 minutes;
|
||||
u8 seconds;
|
||||
u8 frames;
|
||||
};
|
||||
|
||||
extern u8 gMaxInGameTimerFlag;
|
||||
extern struct InGameTimer gInGameTimer;
|
||||
extern struct InGameTimer gInGameTimerAtBosses[5];
|
||||
|
||||
union TileData {
|
||||
struct {
|
||||
u32 tile:10;
|
||||
@ -96,70 +59,32 @@ union TileData {
|
||||
|
||||
extern u8 unk_02038000[];
|
||||
|
||||
extern u8 gDebugFlag;
|
||||
extern u16 gFrameCounter16Bit;
|
||||
extern u16 gWrittenToDISPCNT;
|
||||
extern u8 gStereoFlag;
|
||||
extern struct MusicTrackInfo gMusicTrackInfo;
|
||||
extern u32 gCurrentDemo; /* XXX: type */
|
||||
extern u8 gMonochromeBGFading;
|
||||
extern u8 gWhichBGPositionIsWrittenToBG3OFS;
|
||||
extern u8 gSamusOnTopOfBackgrounds;
|
||||
extern u8 gDifficulty;
|
||||
extern i8 gLanguage;
|
||||
extern u8 gUseMotherShip;
|
||||
extern u8 gResetGame;
|
||||
extern u8 gDisableScrolling;
|
||||
extern u16 gSlowScrollingTimer;
|
||||
extern u8 gSkipDoorTransition;
|
||||
extern u8 gDisableSoftreset;
|
||||
extern u8 gDisableDoorAndTanks;
|
||||
extern i8 gCollectingTank;
|
||||
extern u8 gDisablePause;
|
||||
extern u8 gShipLandingFlag;
|
||||
extern u8 gDisableClipdataChangingTransparency;
|
||||
extern i8 gDisableAnimatedPalette;
|
||||
extern u8 gCurrentArea;
|
||||
extern u8 gAreaBeforeTransition;
|
||||
extern u8 gCurrentRoom;
|
||||
extern u8 gLastDoorUsed;
|
||||
extern u8 gLastDoorProperties;
|
||||
extern u8 gDisplayLocationText;
|
||||
extern u16 gEffectYPosition;
|
||||
extern i16 gEffectYPositionOffset;
|
||||
extern u8 gScreenShakeXRelated;
|
||||
extern u8 gScreenShakeYRelated;
|
||||
extern u16 gScreenShakeRelated;
|
||||
extern u16 gDISPCNTBackup;
|
||||
extern u8 gSpriteset;
|
||||
extern u8 gCurrentClipdataAffectingAction;
|
||||
extern u8 gSpritesetEntryUsed;
|
||||
extern i8 gDoorUnlockTimer;
|
||||
extern i8 gCurrentCutscene;
|
||||
extern i8 gTourianEscapeCutsceneStage;
|
||||
extern struct IORegistersBackup gIORegistersBackup;
|
||||
extern struct BackgroundPointersAndDimensions gBGPointersAndDimensions;
|
||||
|
||||
extern u8 gEnergyRefillAnimation;
|
||||
extern u8 gMissileRefillAnimation;
|
||||
extern u8 gSuperMissileRefillAnimation;
|
||||
extern u8 gPowerBombRefillAnimation;
|
||||
|
||||
extern struct RawCoordsX gWaitingSpacePiratesPosition;
|
||||
extern struct BG2Movement gBG2Movement;
|
||||
extern struct ScreenShake gScreenShakeY;
|
||||
extern struct ScreenShake gScreenShakeX;
|
||||
extern struct LastElevatorUsed gLastElevatorUsed;
|
||||
extern i8 gIsLoadingFile;
|
||||
extern i8 gPauseScreenFlag;
|
||||
extern i8 gClearedEveryFrame;
|
||||
extern u8 gFrameCounter8Bit;
|
||||
extern vu16 gVBlankRequestFlag;
|
||||
extern u16 gInterruptCode[0x100];
|
||||
extern u8 gSRAMCorruptFlag;
|
||||
extern u16 gButtonInput;
|
||||
extern u16 gPreviousButtonInput;
|
||||
extern u16 gChangedInput;
|
||||
extern u8 gNextOAMSlot;
|
||||
extern u8 gDemoState;
|
||||
extern struct ButtonAssignments gButtonAssignments;
|
||||
@ -169,8 +94,6 @@ extern struct RawCoordsX gDoorPositionStart;
|
||||
extern struct BG3Movement gBG3Movement;
|
||||
extern struct BG0Movement gBG0Movement;
|
||||
extern u16 gRainSoundEffect;
|
||||
extern u8* gCurrentRoomScrollDataPointer;
|
||||
extern ClipFunc_T gClipdataCodePointer;
|
||||
|
||||
extern void *sp_sys;
|
||||
extern void *sp_irq;
|
||||
|
@ -9,30 +9,6 @@
|
||||
#define HIGHLIGHT_STATUS_SELECTED 1
|
||||
#define HIGHLIGHT_STATUS_HIGHLIGHTED 2
|
||||
|
||||
// Globals
|
||||
|
||||
extern u8 gHideHud;
|
||||
extern u8 gMissileHighlightStatus;
|
||||
extern u8 gPowerBombHighlightStatus;
|
||||
extern u8 gSuperMissileHighlightStatus;
|
||||
|
||||
extern struct HudDigits gEnergyDigits;
|
||||
extern struct HudDigits gMaxEnergyDigits;
|
||||
extern struct HudDigits gMissileDigits;
|
||||
extern struct HudDigits gPowerBombDigits;
|
||||
extern struct HudDigits gSuperMissileDigits;
|
||||
|
||||
extern u8 gAmmoDigitsGFX[64];
|
||||
|
||||
// Structs
|
||||
|
||||
struct HudDigits {
|
||||
u8 ones;
|
||||
u8 tens;
|
||||
u8 hundreds;
|
||||
u8 thousands;
|
||||
};
|
||||
|
||||
// Functions
|
||||
|
||||
void HUDUpdateOAM(void);
|
||||
|
@ -3,82 +3,6 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Defines
|
||||
|
||||
#define MUSIC_NONE 0x0
|
||||
#define MUSIC_BRINSTAR 0x1
|
||||
#define MUSIC_TITLE_SCREEN 0x2
|
||||
#define MUSIC_SAVE_ELEVATOR_ROOM 0x3
|
||||
#define MUSIC_INTRO 0x4
|
||||
#define MUSIC_CHOZO_STATUE_HINT 0x5
|
||||
#define MUSIC_NORFAIR 0x6
|
||||
#define MUSIC_KRAID 0x7
|
||||
#define MUSIC_ESCAPE 0x8
|
||||
#define MUSIC_FILE_SELECT 0x9
|
||||
#define MUSIC_STATUE_ROOM 0xA
|
||||
#define MUSIC_BOSS_KILLED 0xB
|
||||
#define MUSIC_MAP_ROOM 0xC
|
||||
#define MUSIC_CHOZO_RUINS_DEPTH 0xD
|
||||
#define MUSIC_CHOZO_RUINS 0xE
|
||||
#define MUSIC_CHOZO_RUINS_LIGHT 0xF
|
||||
#define MUSIC_RIDLEY_IN_SPACE 0x10
|
||||
#define MUSIC_RIDLEY_LANDING 0x11
|
||||
#define MUSIC_CHOZO_STATUE_HINT_DELAY 0x12
|
||||
#define MUSIC_GETTING_FULLY_POWERED_SUIT_CUTSCENE 0x13
|
||||
#define MUSIC_ESCAPING_ZEBES_CUTSCENE 0x14
|
||||
#define MUSIC_CHOZO_VOICE_1 0x15
|
||||
#define MUSIC_CHOZO_VOICE_2 0x16
|
||||
#define MUSIC_BEFORE_RUINS_TEST_UNUSED 0x17
|
||||
#define MUSIC_ELEVATOR_ROOM 0x18
|
||||
#define MUSIC_BRINSTAR_REMIX 0x19
|
||||
#define MUSIC_ESCAPE_SUCCESFUL 0x1A
|
||||
#define MUSIC_CREDITS 0x1B
|
||||
#define MUSIC_STATUE_ROOM_OPENED 0x1C
|
||||
#define MUSIC_RIDLEY 0x32
|
||||
#define MUSIC_KRAID_BATTLE_WITH_INTRO 0x34
|
||||
#define MUSIC_RIDLEY_BATTLE 0x35
|
||||
#define MUSIC_LOADING_JINGLE 0x36
|
||||
#define MUSIC_GETTING_ITEM_JINGLE 0x37
|
||||
#define MUSIC_UNUSED 0x39
|
||||
#define MUSIC_GETTING_TANK_JINGLE 0x3A
|
||||
#define MUSIC_TOURIAN 0x3B
|
||||
#define MUSIC_WORMS_BATTLE 0x3C
|
||||
#define MUSIC_MOTHER_BRAIN_BATTLE 0x3D
|
||||
#define MUSIC_CATTERPILLARS_BATTLE 0x3E
|
||||
#define MUSIC_IMAGO_COCOON_BATTLE 0x3F
|
||||
#define MUSIC_IMAGO_BATTLE 0x40
|
||||
#define MUSIC_MECHA_RIDLEY_BATTLE 0x41
|
||||
#define MUSIC_GETTING_UNKNOWN_ITEM_JINGLE 0x42
|
||||
#define MUSIC_RUINS_TEST_BATTLE_WITH_INTRO 0x43
|
||||
#define MUSIC_ENTERING_TOURIAN_CUTSCENE 0x44
|
||||
#define MUSIC_ALARM_ACTIVATED 0x45
|
||||
#define MUSIC_STEALTH 0x46
|
||||
#define MUSIC_ENTERING_NORFAIR_CUTSCENE 0x48
|
||||
#define MUSIC_CHOZODIA_DETECTED 0x49
|
||||
#define MUSIC_GETTING_FULLY_POWERED_SUIT_JINGLE 0x4A
|
||||
#define MUSIC_KRAID_BATTLE 0x4B
|
||||
#define MUSIC_RIDLEY_BATTLE_2 0x4C
|
||||
#define MUSIC_MECHA_RIDLEY_BATTLE_2 0x4D
|
||||
#define MUSIC_RUINS_TEST_BATTLE 0x4E
|
||||
#define MUSIC_CATTERPILLARS_BATTLE_2 0x4F
|
||||
#define MUSIC_CRATERIA 0x50
|
||||
#define MUSIC_GAME_OVER 0x53
|
||||
#define MUSIC_UNKNOWN 0x54
|
||||
#define MUSIC_CHOZODIA_SURFACE 0x5A
|
||||
#define MUSIC_MAP_ROOM_2 0x5B
|
||||
#define MUSIC_SAVE_ELEVATOR_ROOM_2 0x5C
|
||||
#define MUSIC_BEFORE_RUINS_TEST_ROOM 0x5D
|
||||
#define MUSIC_STEALTH_2 0x5E
|
||||
|
||||
// Structs
|
||||
|
||||
struct MusicTrackInfo {
|
||||
u16 currentRoomTrack;
|
||||
u8 pauseScreenFlag;
|
||||
u8 takingNormalTransition;
|
||||
i8 unk;
|
||||
};
|
||||
|
||||
// Functions
|
||||
|
||||
void SoundPlay(u16 sound);
|
||||
|
@ -3,91 +3,8 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "oam.h"
|
||||
#include "particle.h"
|
||||
#include "sprite.h"
|
||||
#include "clipdata.h"
|
||||
#include "samus.h"
|
||||
|
||||
// Defines
|
||||
|
||||
#define PROJECTILE_NONE 0x0
|
||||
#define PROJECTILE_BEAM 0x1
|
||||
#define PROJECTILE_MISSILE 0x2
|
||||
#define PROJECTILE_SUPER_MISSILE 0x3
|
||||
#define PROJECTILE_BOMB 0x4
|
||||
#define PROJECTILE_POWER_BOMB 0x5
|
||||
#define PROJECTILE_CHARGED_BEAM 0x6
|
||||
|
||||
#define PROJ_STATUS_NONE 0x0
|
||||
#define PROJ_STATUS_EXISTS 0x1
|
||||
#define PROJ_STATUS_ON_SCREEN 0x2
|
||||
#define PROJ_STATUS_NOT_DRAWN 0x4
|
||||
#define PROJ_STATUS_HIGH_PRIORITY 0x8
|
||||
#define PROJ_STATUS_CAN_AFFECT_ENVIRONMENT 0x10
|
||||
#define PROJ_STATUS_YFLIP 0x20
|
||||
#define PROJ_STATUS_XFLIP 0x40
|
||||
#define PROJ_STATUS_UNKNOWN 0x80
|
||||
|
||||
#define PROJ_TYPE_BEAM 0x0
|
||||
#define PROJ_TYPE_LONG_BEAM 0x1
|
||||
#define PROJ_TYPE_ICE_BEAM 0x2
|
||||
#define PROJ_TYPE_WAVE_BEAM 0x3
|
||||
#define PROJ_TYPE_PLASMA_BEAM 0x4
|
||||
#define PROJ_TYPE_PISTOL 0x5
|
||||
#define PROJ_TYPE_CHARGED_BEAM 0x6
|
||||
#define PROJ_TYPE_CHARGED_LONG_BEAM 0x7
|
||||
#define PROJ_TYPE_CHARGED_ICE_BEAM 0x8
|
||||
#define PROJ_TYPE_CHARGED_WAVE_BEAM 0x9
|
||||
#define PROJ_TYPE_CHARGED_PLASMA_BEAM 0xA
|
||||
#define PROJ_TYPE_CHARGED_PISTOL 0xB
|
||||
#define PROJ_TYPE_MISSILE 0xC
|
||||
#define PROJ_TYPE_SUPER_MISSILE 0xD
|
||||
#define PROJ_TYPE_BOMB 0xE
|
||||
#define PROJ_TYPE_POWER_BOMB 0xF
|
||||
|
||||
|
||||
#define BOMB_STAGE_INIT 0x0
|
||||
#define BOMB_STAGE_FIRST_SPIN 0x1
|
||||
#define BOMB_STAGE_FAST_SPIN 0x2
|
||||
#define BOMB_STAGE_EXPLODING 0x3
|
||||
#define BOMB_STAGE_PLACED_ON_LAUNCHER 0x4
|
||||
#define BOMB_STAGE_FIRST_SPIN_ON_LAUNCHER 0x5
|
||||
#define BOMB_STAGE_FAST_SPIN_ON_LAUNCHER 0x6
|
||||
#define BOMB_STAGE_EXPLODING_ON_LAUNCHER 0x7
|
||||
|
||||
// Structs
|
||||
|
||||
struct ProjectileData {
|
||||
u8 status;
|
||||
const struct FrameData* pOam;
|
||||
u16 yPosition;
|
||||
u16 xPosition;
|
||||
u16 currentAnimationFrame;
|
||||
u8 animationDurationCounter;
|
||||
u8 type;
|
||||
u8 direction;
|
||||
u8 movementStage;
|
||||
u8 drawDistanceOffset;
|
||||
u8 timer;
|
||||
i16 hitboxTopOffset;
|
||||
i16 hitboxBottomOffset;
|
||||
i16 hitboxLeftOffset;
|
||||
i16 hitboxRightOffset;
|
||||
};
|
||||
|
||||
// Typedef
|
||||
|
||||
typedef void (*ProjFunc_T)(struct ProjectileData*);
|
||||
|
||||
// Globals
|
||||
|
||||
#define MAX_AMOUNT_OF_PROJECTILES 16
|
||||
|
||||
extern struct ProjectileData gProjectileData[MAX_AMOUNT_OF_PROJECTILES];
|
||||
extern u16 gArmCannonY;
|
||||
extern u16 gArmCannonX;
|
||||
|
||||
// Functions
|
||||
#include "structs/projectile.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
void ProjectileSetBeamParticleEffect(void);
|
||||
u8 ProjectileCheckNumberOfProjectiles(u8 type, u8 limit);
|
||||
|
@ -2,7 +2,6 @@
|
||||
#define ROOM_H
|
||||
|
||||
#include "types.h"
|
||||
#include "sprite.h"
|
||||
#include "transparency.h"
|
||||
#include "block.h"
|
||||
#include "event.h"
|
||||
|
370
include/samus.h
370
include/samus.h
@ -3,375 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "oam.h"
|
||||
#include "game_modes.h"
|
||||
|
||||
#define MAX_AMOUNT_OF_SAMUS_POSES 67
|
||||
|
||||
// Globals
|
||||
|
||||
extern struct SamusData gSamusData;
|
||||
extern struct SamusData gSamusDataCopy;
|
||||
extern struct WeaponInfo gSamusWeaponInfo;
|
||||
extern struct SamusEcho gSamusEcho;
|
||||
extern struct ScrewSpeedAnimation gScrewSpeedAnimation;
|
||||
extern struct Equipment gEquipment;
|
||||
extern struct HazardDamage gSamusHazardDamage;
|
||||
extern struct EnvironmentalEffect gSamusEnvirnmentalEffects[5];
|
||||
extern struct SamusPhysics gSamusPhysics;
|
||||
extern u16 gPreviousXPosition;
|
||||
extern u16 gPreviousYPosition;
|
||||
extern u16 gPreventMovementTimer;
|
||||
|
||||
extern u16 gSamusPalette[32];
|
||||
extern i16 gSamusDoorPositionOffset;
|
||||
|
||||
// Defines
|
||||
|
||||
#define BBF_NONE 0x0
|
||||
#define BBF_LONG_BEAM 0x1
|
||||
#define BBF_ICE_BEAM 0x2
|
||||
#define BBF_WAVE_BEAM 0x4
|
||||
#define BBF_PLASMA_BEAM 0x8
|
||||
#define BBF_CHARGE_BEAM 0x10
|
||||
#define BBF_BOMBS 0x80
|
||||
|
||||
#define SMF_NONE 0x0
|
||||
#define SMF_HIGH_JUMP 0x1
|
||||
#define SMF_SPEEDBOOSTER 0x2
|
||||
#define SMF_SPACE_JUMP 0x4
|
||||
#define SMF_SCREW_ATTACK 0x8
|
||||
#define SMF_VARIA_SUIT 0x10
|
||||
#define SMF_GRAVITY_SUIT 0x20
|
||||
#define SMF_MORPH_BALL 0x40
|
||||
#define SMF_POWER_GRIP 0x80
|
||||
|
||||
#define SUIT_NORMAL 0x0
|
||||
#define SUIT_FULLY_POWERED 0x1
|
||||
#define SUIT_SUITLESS 0x2
|
||||
|
||||
#define DIAG_AIM_NONE 0x0
|
||||
#define DIAG_AIM_UP 0x1
|
||||
#define DIAG_AIM_DOWN 0x2
|
||||
|
||||
#define WH_NONE 0x0
|
||||
#define WH_MISSILE 0x1
|
||||
#define WH_SUPER_MISSILE 0x2
|
||||
#define WH_POWER_BOMB 0x4
|
||||
|
||||
#define SPOSE_RUNNING 0x0
|
||||
#define SPOSE_STANDING 0x1
|
||||
#define SPOSE_TURNING_AROUND 0x2
|
||||
#define SPOSE_SHOOTING 0x3
|
||||
#define SPOSE_CROUCHING 0x4
|
||||
#define SPOSE_TURNING_AROUND_AND_CROUCHING 0x5
|
||||
#define SPOSE_SHOOTING_AND_CROUCHING 0x6
|
||||
#define SPOSE_SKIDDING 0x7
|
||||
#define SPOSE_MIDAIR 0x8
|
||||
#define SPOSE_TURNING_AROUND_MIDAIR 0x9
|
||||
#define SPOSE_LANDING 0xA
|
||||
#define SPOSE_STARTING_SPIN_JUMP 0xB
|
||||
#define SPOSE_SPINNING 0xC
|
||||
#define SPOSE_STARTING_WALL_JUMP 0xD
|
||||
#define SPOSE_SPACE_JUMPING 0xE
|
||||
#define SPOSE_SCREW_ATTACKING 0xF
|
||||
#define SPOSE_MORPHING 0x10
|
||||
#define SPOSE_MORPH_BALL 0x11
|
||||
#define SPOSE_ROLLING 0x12
|
||||
#define SPOSE_UNMORPHING 0x13
|
||||
#define SPOSE_MORPH_BALL_MIDAIR 0x14
|
||||
#define SPOSE_HANGING_ON_LEDGE 0x15
|
||||
#define SPOSE_TURNING_TO_AIM_WHILE_HANGING 0x16
|
||||
#define SPOSE_HIDING_ARM_CANNON_WHILE_HANGING 0x17
|
||||
#define SPOSE_AIMING_WHILE_HANGING 0x18
|
||||
#define SPOSE_SHOOTING_WHILE_HANGING 0x19
|
||||
#define SPOSE_PULLING_YOURSELF_UP_FROM_HANGING 0x1A
|
||||
#define SPOSE_PULLING_YOURSELF_FORWARD_FROM_HANGING 0x1B
|
||||
#define SPOSE_PULLING_YOURSELF_INTO_A_MORPH_BALL_TUNNEL 0x1C
|
||||
#define SPOSE_USING_AN_ELEVATOR 0x1D
|
||||
#define SPOSE_FACING_THE_FOREGROUND 0x1E
|
||||
#define SPOSE_TURNING_FROM_FACING_THE_FOREGROUND 0x1F
|
||||
#define SPOSE_GRABBED_BY_CHOZO_STATUE 0x20
|
||||
#define SPOSE_DELAY_BEFORE_SHINESPARKING 0x21
|
||||
#define SPOSE_SHINESPARKING 0x22
|
||||
#define SPOSE_SHINESPARK_COLLISION 0x23
|
||||
#define SPOSE_DELAY_AFTER_SHINESPARKING 0x24
|
||||
#define SPOSE_DELAY_BEFORE_BALLSPARKING 0x25
|
||||
#define SPOSE_BALLSPARKING 0x26
|
||||
#define SPOSE_BALLSPARK_COLLISION 0x27
|
||||
#define SPOSE_ON_ZIPLINE 0x28
|
||||
#define SPOSE_SHOOTING_ON_ZIPLINE 0x29
|
||||
#define SPOSE_TURNING_ON_ZIPLINE 0x2A
|
||||
#define SPOSE_MORPH_BALL_ON_ZIPLINE 0x2B
|
||||
#define SPOSE_SAVING_LOADING_GAME 0x2C
|
||||
#define SPOSE_DOWNLOADING_MAP_DATA 0x2D
|
||||
#define SPOSE_TURNING_AROUND_TO_DOWNLOAD_MAP_DATA 0x2E
|
||||
#define SPOSE_GETTING_HURT 0x2F
|
||||
#define SPOSE_GETTING_KNOCKED_BACK 0x30
|
||||
#define SPOSE_GETTING_HURT_IN_MORPH_BALL 0x31
|
||||
#define SPOSE_GETTING_KNOCKED_BACK_IN_MORPH_BALL 0x32
|
||||
#define SPOSE_DYING 0x33
|
||||
#define SPOSE_CROUCHING_TO_CRAWL 0x34
|
||||
#define SPOSE_CRAWLING_STOPPED 0x35
|
||||
#define SPOSE_STARTING_TO_CRAWL 0x36
|
||||
#define SPOSE_CRAWLING 0x37
|
||||
#define SPOSE_UNCROUCHING_FROM_CRAWLING 0x38
|
||||
#define SPOSE_TURNING_AROUND_WHILE_CRAWLING 0x39
|
||||
#define SPOSE_SHOOTING_WHILE_CRAWLING 0x3A
|
||||
#define SPOSE_UNCROUCHING_SUITLESS 0x3B
|
||||
#define SPOSE_CROUCHING_SUITLESS 0x3C
|
||||
#define SPOSE_GRABBING_A_LEDGE_SUITLESS 0x3D
|
||||
#define SPOSE_FACING_THE_BACKGROUND_SUITLESS 0x3E
|
||||
#define SPOSE_TURNING_FROM_FACING_THE_BACKGROUND_SUITLESS 0x3F
|
||||
#define SPOSE_ACTIVATING_ZIPLINES 0x40
|
||||
#define SPOSE_IN_ESCAPE_SHIP 0x41
|
||||
#define SPOSE_TURNING_TO_ENTER_ESCAPE_SHIP 0x42
|
||||
#define SPOSE_KNOCKBACK_REQUEST 0xF9
|
||||
#define SPOSE_HURT_REQUEST 0xFA
|
||||
#define SPOSE_LANDING_REQUEST 0xFD
|
||||
#define SPOSE_UPDATE_JUMP_VELOCITY_REQUEST 0xFE
|
||||
#define SPOSE_NONE 0xFF
|
||||
|
||||
#define STANDING_GROUND 0x0
|
||||
#define STANDING_ENEMY 0x1
|
||||
#define STANDING_MIDAIR 0x2
|
||||
#define STANDING_NOT_IN_CONTROL 0x3
|
||||
#define STANDING_FORCED_POSE 0x4
|
||||
#define STANDING_HANGING 0x5
|
||||
#define STANDING_INVALID 0xFF
|
||||
|
||||
#define ACD_FORWARD 0x0
|
||||
#define ACD_DIAGONALLY_UP 0x1
|
||||
#define ACD_DIAGONALLY_DOWN 0x2
|
||||
#define ACD_UP 0x3
|
||||
#define ACD_DOWN 0x4
|
||||
#define ACD_NONE 0x5
|
||||
|
||||
#define SLOPE_NONE 0x0
|
||||
#define SLOPE_STEEP 0x1
|
||||
#define SLOPE_SLIGHT 0x2
|
||||
#define SLOPE_LEFT 0x10
|
||||
#define SLOPE_RIGHT 0x20
|
||||
|
||||
#define HDMOVING_NONE 0x0
|
||||
#define HDMOVING_LEFT 0x1
|
||||
#define HDMOVING_RIGHT 0x2
|
||||
|
||||
#define VDMOVING_NONE 0x0
|
||||
#define VDMOVING_UP 0x1
|
||||
#define VDMOVING_DOWN 0x2
|
||||
|
||||
#define ENV_EFFECT_NONE 0x0
|
||||
#define ENV_EFFECT_RUNNING_ON_WET_GROUND 0x1
|
||||
#define ENV_EFFECT_RUNNING_ON_DUSTY_GROUND 0x2
|
||||
#define ENV_EFFECT_RUNNING_ON_VERY_DUSTY_GROUND 0x3
|
||||
#define ENV_EFFECT_GOING_OUT_OF_WATER 0x4
|
||||
#define ENV_EFFECT_RUNNING_INTO_WATER 0x5
|
||||
#define ENV_EFFECT_GOING_OUT_OF_LAVA 0x6
|
||||
#define ENV_EFFECT_RUNNING_INTO_LAVA 0x7
|
||||
#define ENV_EFFECT_GOING_OUT_OF_ACID 0x8
|
||||
#define ENV_EFFECT_RUNNING_INTO_ACID 0x9
|
||||
#define ENV_EFFECT_TAKING_DAMAGE_IN_LAVA 0xA
|
||||
#define ENV_EFFECT_TAKING_DAMAGE_IN_ACID 0xB
|
||||
#define ENV_EFFECT_LANDING_ON_WET_GROUND 0xC
|
||||
#define ENV_EFFECT_LANDING_ON_BUBBLY_GROUND 0xD
|
||||
#define ENV_EFFECT_LANDING_ON_DUSTY_GROUND 0xE
|
||||
#define ENV_EFFECT_LANDING_ON_VERY_DUSTY_GROUND 0xF
|
||||
#define ENV_EFFECT_SKIDDING_ON_WET_GROUND 0x10
|
||||
#define ENV_EFFECT_SKIDDING_ON_DUSTY_GROUND 0x11
|
||||
#define ENV_EFFECT_BREATHING_BUBBLES 0x12
|
||||
|
||||
#define WANTING_RUNNING_EFFECT 0x0
|
||||
#define WANTING_RUNNING_EFFECT_ 0x1
|
||||
#define WANTING_LANDING_EFFECT 0x2
|
||||
#define WANTING_GOING_OUT_OF_LIQUID_EFFECT 0x3
|
||||
#define WANTING_RUNNING_OUT_OF_LIQUID_EFFECT 0x4
|
||||
#define WANTING_BREATHING_BUBBLES 0x5
|
||||
#define WANTING_SKIDDING_EFFECT 0x6
|
||||
#define WANTING_RUNNING_ON_WET_GROUND 0x7
|
||||
|
||||
#define DESTRUCTING_ACTION_NONE 0x0
|
||||
#define DESTRUCTING_ACTION_SPEED 0x1
|
||||
#define DESTRUCTING_ACTION_SCREW 0x2
|
||||
#define DESTRUCTING_ACTION_SPEED_SCREW 0x3
|
||||
#define DESTRUCTING_ACTION_SPEED_ON_GROUND 0x4
|
||||
|
||||
#define SAMUS_ANIM_STATE_NONE 0x0
|
||||
#define SAMUS_ANIM_STATE_SUB_ENDED 0x1
|
||||
#define SAMUS_ANIM_STATE_ENDED 0x2
|
||||
|
||||
// Probably not 100% true
|
||||
#define SAMUS_COLLISION_DETECTION_NONE 0x0
|
||||
#define SAMUS_COLLISION_DETECTION_LEFT_MOST 0x1
|
||||
#define SAMUS_COLLISION_DETECTION_MIDDLE_LEFT 0x2
|
||||
#define SAMUS_COLLISION_DETECTION_MIDDLE_RIGHT 0x4
|
||||
#define SAMUS_COLLISION_DETECTION_RIGHT_MOST 0x8
|
||||
#define SAMUS_COLLISION_DETECTION_SLOPE 0x80
|
||||
|
||||
|
||||
#define FORCED_MOVEMENT_UPWARDS_SHINESPARK 0x0
|
||||
#define FORCED_MOVEMENT_SIDEWARDS_SHINESPARK 0x1
|
||||
#define FORCED_MOVEMENT_CROUCHING_ARM_CANNON_UP 0x1
|
||||
#define FORCED_MOVEMENT_DIAGONAL_SHINESPARK 0x2
|
||||
#define FORCED_MOVEMENT_LAUNCHED_BY_CANNON 0xF0
|
||||
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP 0x0
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP_RIGHT 0xA
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP_UP 0xB
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP_LEFT 0xC
|
||||
#define FORCED_MOVEMENT_BOMB_JUMP_ABOVE 0x80
|
||||
|
||||
|
||||
#define SCREW_SPEED_FLAG_NONE 0x0
|
||||
#define SCREW_SPEED_FLAG_SHINESPARKING 0x1
|
||||
#define SCREW_SPEED_FLAG_SPEEDBOOSTING 0x1
|
||||
#define SCREW_SPEED_FLAG_SCREW_ATTACKING 0x1
|
||||
#define SCREW_SPEED_FLAG_STORING_SHINESPARK 0x8
|
||||
|
||||
// Structs
|
||||
|
||||
struct Equipment {
|
||||
u16 maxEnergy;
|
||||
u16 maxMissiles;
|
||||
u8 maxSuperMissiles;
|
||||
u8 maxPowerBombs;
|
||||
u16 currentEnergy;
|
||||
u16 currentMissiles;
|
||||
u8 currentSuperMissiles;
|
||||
u8 currentPowerBombs;
|
||||
u8 beamBombs;
|
||||
u8 beamBombsActivation;
|
||||
u8 suitMisc;
|
||||
u8 suitMiscActivation;
|
||||
u8 downloadedMapStatus;
|
||||
u8 lowHealth;
|
||||
u8 suitType;
|
||||
u8 grabbedByMetroid;
|
||||
};
|
||||
|
||||
|
||||
struct WeaponInfo {
|
||||
u8 diagonalAim;
|
||||
u8 newProjectile;
|
||||
u8 weaponHighlighted;
|
||||
u8 missilesSeleced;
|
||||
u8 cooldown;
|
||||
u8 chargeCounter;
|
||||
u8 beamReleasePaletteTimer;
|
||||
};
|
||||
|
||||
struct SamusData {
|
||||
u8 pose;
|
||||
u8 standingStatus;
|
||||
u8 armCannonDirection;
|
||||
u8 turning;
|
||||
u8 forcedMovement;
|
||||
u8 speedboostingShinesparking;
|
||||
u8 invincibilityTimer;
|
||||
u8 walljumpTimer;
|
||||
u8 shinesparkTimer;
|
||||
u8 unmorphPaletteTimer;
|
||||
u8 timer;
|
||||
u16 lastWallTouchedMidAir;
|
||||
u16 direction;
|
||||
u16 elevatorDirection;
|
||||
u16 xPosition;
|
||||
u16 yPosition;
|
||||
i16 xVelocity;
|
||||
i16 yVelocity;
|
||||
u16 currentSlope;
|
||||
u8 animationDurationCounter;
|
||||
u8 currentAnimationFrame;
|
||||
};
|
||||
|
||||
struct SamusPhysics {
|
||||
u16* pBodyOam;
|
||||
u8* pShouldersGFX;
|
||||
u16 shoulderGFXSize;
|
||||
u8* pTorsoGFX;
|
||||
u16 torsoGFXSize;
|
||||
u8* pLegsGFX;
|
||||
u16 legsGFXSize;
|
||||
u8* pBodyLowerHalfGFX;
|
||||
u16 bodyLowerHalfGFXSize;
|
||||
u16 unk;
|
||||
u16* pArmCannonOAM;
|
||||
u8* pArmCannonGFXUpper;
|
||||
u16 armCannonGFXUpperSize;
|
||||
u8* pArmCannonGFXLower;
|
||||
u16 armCannonGFXLowerSize;
|
||||
u16* pScrewSpeedOAM;
|
||||
u8* pScrewSpeedGFX;
|
||||
u16 screwSpeedGFXSize;
|
||||
u8* pScrewShinesparkGFX;
|
||||
u16 screwShinesparkGFXSize;
|
||||
u16 armCannonXPositionOffset;
|
||||
u16 armCannonYPositionOffset;
|
||||
u8 horizontalMovingDirection;
|
||||
u8 verticalMovingDirection;
|
||||
i16 hitboxLeftOffset;
|
||||
i16 hitboxRightOffset;
|
||||
i16 hitboxTopOffset;
|
||||
u8 standingStatus;
|
||||
u8 hitboxType; // TODO define
|
||||
u8 touchingSideBlock;
|
||||
u8 touchingTopBlock;
|
||||
u8 unknown;
|
||||
u8 slowedByLiquid;
|
||||
u8 hasNewProjectile;
|
||||
i16 xAcceleration;
|
||||
i16 xVelocityCap;
|
||||
i16 yAcceleration;
|
||||
i16 positiveYVelocityCap;
|
||||
i16 negativeYVelocityCap;
|
||||
i16 midairXAcceleration;
|
||||
i16 midairXVelocityCap;
|
||||
i16 midairMorphedXVelocityCap;
|
||||
i16 drawDistanceLeftOffset;
|
||||
i16 drawDistanceTopOffset;
|
||||
i16 drawDistanceRightOffset;
|
||||
i16 drawDistanceBottomOffset;
|
||||
};
|
||||
|
||||
struct ScrewSpeedAnimation {
|
||||
u8 flag;
|
||||
u8 animationDurationCounter;
|
||||
u8 currentAnimationFrame;
|
||||
u32 unknown;
|
||||
};
|
||||
|
||||
struct HazardDamage {
|
||||
u8 damageTimer;
|
||||
// u8 undefined; // Needed for correct alignment
|
||||
u16 knockbackTimer;
|
||||
u8 paletteTimer;
|
||||
};
|
||||
|
||||
struct EnvironmentalEffect {
|
||||
u8 type;
|
||||
u8 animationDurationCounter;
|
||||
u8 currentAnimationFrame;
|
||||
u8 breathingTimer;
|
||||
u16 xPosition;
|
||||
u16 yPosition;
|
||||
struct OamFrame* pOamFrame;
|
||||
};
|
||||
|
||||
struct SamusEcho {
|
||||
u8 active;
|
||||
u8 timer;
|
||||
u8 position;
|
||||
u8 distance;
|
||||
u16 previous64XPositions[64];
|
||||
u16 previous64YPositions[64];
|
||||
u16 previousPositionCounter;
|
||||
u8 unknown;
|
||||
};
|
||||
|
||||
// Typedefs
|
||||
|
||||
typedef u8 (*SamusFunc_T)(struct SamusData*);
|
||||
|
||||
// Functions
|
||||
#include "structs/samus.h"
|
||||
|
||||
void SamusCheckScrewSpeedboosterAffectingEnvironment(struct SamusData* pData, struct SamusPhysics* pPhysics);
|
||||
u8 SamusSlopeRelated(u16 xPosition, u16 yPosition, u16* pXPosition, u16* pYPosition, u16* pSlope);
|
||||
|
@ -2,46 +2,11 @@
|
||||
#define SCROLL_H
|
||||
|
||||
#include "types.h"
|
||||
#include "structs/scroll.h"
|
||||
|
||||
#define SCREEN_WIDTH (BLOCK_SIZE * 9)
|
||||
#define SCREEN_HEIGHT (BLOCK_SIZE * 5)
|
||||
|
||||
|
||||
extern struct Scroll gCurrentScrolls[2];
|
||||
extern struct ScreenPositionAndVelocity gScreenPositionAndVelocity;
|
||||
extern struct LockScreen gLockScreen;
|
||||
extern i8 gScreenYOffset;
|
||||
extern i16 gScreenXOffset;
|
||||
extern struct Unk_3005714 gUnk_3005714;
|
||||
|
||||
struct Scroll {
|
||||
u8 within;
|
||||
u16 xEnd;
|
||||
u16 xStart;
|
||||
u16 yStart;
|
||||
u16 yEnd;
|
||||
};
|
||||
|
||||
struct ScreenPositionAndVelocity {
|
||||
u16 xPosition;
|
||||
u16 yPosition;
|
||||
i8 xVelocity;
|
||||
i8 yVelocity;
|
||||
};
|
||||
|
||||
struct LockScreen {
|
||||
u8 lock;
|
||||
u16 xPositionCenter;
|
||||
u16 yPositionCenter;
|
||||
};
|
||||
|
||||
struct Unk_3005714 {
|
||||
i16 unk0;
|
||||
i16 unk2;
|
||||
i16 unk4;
|
||||
i16 unk6;
|
||||
};
|
||||
|
||||
void ScrollProcess(struct RawCoordsX* pCoords);
|
||||
void ScrollScreen(u16 screen_x, u16 screen_y);
|
||||
i32 ScrollProcessX(struct Scroll* pScroll, struct RawCoordsX* pCoords);
|
||||
|
475
include/sprite.h
475
include/sprite.h
@ -3,480 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "oam.h"
|
||||
|
||||
// Defines
|
||||
|
||||
#define SPRITE_STATUS_NONE 0x0
|
||||
#define SPRITE_STATUS_EXISTS 0x1
|
||||
#define SPRITE_STATUS_ONSCREEN 0x2
|
||||
#define SPRITE_STATUS_NOT_DRAWN 0x4
|
||||
#define SPRITE_STATUS_ROTATION_SCALING 0x8
|
||||
#define SPRITE_STATUS_UNKNOWN 0x10
|
||||
#define SPRITE_STATUS_MOSAIC 0x20
|
||||
#define SPRITE_STATUS_XFLIP 0x40
|
||||
#define SPRITE_STATUS_YFLIP 0x80
|
||||
#define SPRITE_STATUS_FACING_DOWN 0x100
|
||||
#define SPRITE_STATUS_FACING_RIGHT 0x200
|
||||
#define SPRITE_STATUS_UNKNOWN2 0x400
|
||||
#define SPRITE_STATUS_SAMUS_COLLIDING 0x800
|
||||
#define SPRITE_STATUS_SAMUS_ON_TOP 0x1000
|
||||
#define SPRITE_STATUS_ALPHA_BLENDING 0x2000
|
||||
#define SPRITE_STATUS_DOUBLE_SIZE 0x4000
|
||||
#define SPRITE_STATUS_IGNORE_PROJECTILES 0x8000
|
||||
|
||||
#define PSPRITE_UNUSED0 0x0
|
||||
#define PSPRITE_UNUSED1 0x1
|
||||
#define PSPRITE_UNUSED2 0x2
|
||||
#define PSPRITE_UNUSED3 0x3
|
||||
#define PSPRITE_UNUSED4 0x4
|
||||
#define PSPRITE_UNUSED5 0x5
|
||||
#define PSPRITE_UNUSED6 0x6
|
||||
#define PSPRITE_UNUSED7 0x7
|
||||
#define PSPRITE_UNUSED8 0x8
|
||||
#define PSPRITE_UNUSED9 0x9
|
||||
#define PSPRITE_UNUSED10 0xA
|
||||
#define PSPRITE_UNUSED11 0xB
|
||||
#define PSPRITE_UNUSED12 0xC
|
||||
#define PSPRITE_UNUSED13 0xD
|
||||
#define PSPRITE_UNUSED14 0xE
|
||||
#define PSPRITE_UNUSED15 0xF
|
||||
#define PSPRITE_UNUSED16 0x10
|
||||
#define PSPRITE_ITEM_BANNER 0x11
|
||||
#define PSPRITE_ZOOMER_YELLOW 0x12
|
||||
#define PSPRITE_ZOOMER_RED 0x13
|
||||
#define PSPRITE_ZEELA 0x14
|
||||
#define PSPRITE_ZEELA_RED 0x15
|
||||
#define PSPRITE_RIPPER_BROWN 0x16
|
||||
#define PSPRITE_RIPPER_PURPLE 0x17
|
||||
#define PSPRITE_ZEB 0x18
|
||||
#define PSPRITE_ZEB_BLUE 0x19
|
||||
#define PSPRITE_LARGE_ENERGY_DROP 0x1A
|
||||
#define PSPRITE_SMALL_ENERGY_DROP 0x1B
|
||||
#define PSPRITE_MISSILE_DROP 0x1C
|
||||
#define PSPRITE_SUPER_MISSILE_DROP 0x1D
|
||||
#define PSPRITE_POWER_BOMB_DROP 0x1E
|
||||
#define PSPRITE_SKREE_GREEN 0x1F
|
||||
#define PSPRITE_SKREE_BLUE 0x20
|
||||
#define PSPRITE_MORPH_BALL 0x21
|
||||
#define PSPRITE_CHOZO_STATUE_LONG_HINT 0x22
|
||||
#define PSPRITE_CHOZO_STATUE_LONG 0x23
|
||||
#define PSPRITE_CHOZO_STATUE_ICE_HINT 0x24
|
||||
#define PSPRITE_CHOZO_STATUE_ICE 0x25
|
||||
#define PSPRITE_CHOZO_STATUE_WAVE_HINT 0x26
|
||||
#define PSPRITE_CHOZO_STATUE_WAVE 0x27
|
||||
#define PSPRITE_CHOZO_STATUE_BOMB_HINT 0x28
|
||||
#define PSPRITE_CHOZO_STATUE_BOMB 0x29
|
||||
#define PSPRITE_CHOZO_STATUE_SPEEDBOOSTER_HINT 0x2A
|
||||
#define PSPRITE_CHOZO_STATUE_SPEEDBOOSTER 0x2B
|
||||
#define PSPRITE_CHOZO_STATUE_HIGH_JUMP_HINT 0x2C
|
||||
#define PSPRITE_CHOZO_STATUE_HIGH_JUMP 0x2D
|
||||
#define PSPRITE_CHOZO_STATUE_SCREW_HINT 0x2E
|
||||
#define PSPRITE_CHOZO_STATUE_SCREW 0x2F
|
||||
#define PSPRITE_CHOZO_STATUE_VARIA_HINT 0x30
|
||||
#define PSPRITE_CHOZO_STATUE_VARIA 0x31
|
||||
#define PSPRITE_SOVA_PURPLE 0x32
|
||||
#define PSPRITE_SOVA_ORANGE 0x33
|
||||
#define PSPRITE_MULTIVIOLA 0x34
|
||||
#define PSPRITE_MULTIPLE_LARGE_ENERGY 0x35
|
||||
#define PSPRITE_GERUTA_RED 0x36
|
||||
#define PSPRITE_GERUTA_GREEN 0x37
|
||||
#define PSPRITE_SQUEEPT 0x38
|
||||
#define PSPRITE_SQUEEPT_UNUSED 0x39
|
||||
#define PSPRITE_MAP_STATION 0x3A
|
||||
#define PSPRITE_DRAGON 0x3B
|
||||
#define PSPRITE_DRAGON_UNUSED 0x3C
|
||||
#define PSPRITE_ZIPLINE 0x3D
|
||||
#define PSPRITE_ZIPLINE_BUTTON 0x3E
|
||||
#define PSPRITE_REO_GREEN_WINGS 0x3F
|
||||
#define PSPRITE_REO_PURPLE_WINGS 0x40
|
||||
#define PSPRITE_GUNSHIP 0x41
|
||||
#define PSPRITE_DEOREM 0x42
|
||||
#define PSPRITE_DEOREM_SECOND_LOCATION 0x43
|
||||
#define PSPRITE_CHARGE_BEAM 0x44
|
||||
#define PSPRITE_SKULTERA 0x45
|
||||
#define PSPRITE_DESSGEEGA 0x46
|
||||
#define PSPRITE_DESSGEEGA_AFTER_LONG_BEAM 0x47
|
||||
#define PSPRITE_WAVER 0x48
|
||||
#define PSPRITE_WAVER_UNUSED 0x49
|
||||
#define PSPRITE_MELLOW 0x4A
|
||||
#define PSPRITE_HIVE 0x4B
|
||||
#define PSPRITE_POWER_GRIP 0x4C
|
||||
#define PSPRITE_IMAGO_LARVA_RIGHT 0x4D
|
||||
#define PSPRITE_MORPH_BALL_LAUNCHER 0x4E
|
||||
#define PSPRITE_IMAGO_COCOON 0x4F
|
||||
#define PSPRITE_ELEVATOR_PAD 0x50
|
||||
#define PSPRITE_SPACE_PIRATE 0x51
|
||||
#define PSPRITE_SPACE_PIRATE_WAITING1 0x52
|
||||
#define PSPRITE_SPACE_PIRATE_WAITING2 0x53
|
||||
#define PSPRITE_SPACE_PIRATE_WAITING3 0x54
|
||||
#define PSPRITE_SPACE_PIRATE2 0x55
|
||||
#define PSPRITE_GAMET_BLUE_SINGLE 0x56
|
||||
#define PSPRITE_GAMET_RED_SINGLE 0x57
|
||||
#define PSPRITE_CHOZO_STATUE_GRAVITY 0x58
|
||||
#define PSPRITE_CHOZO_STATUE_SPACE_JUMP 0x59
|
||||
#define PSPRITE_SECURITY_GATE_DEFAULT_OPEN 0x5A
|
||||
#define PSPRITE_ZEBBO_GREEN 0x5B
|
||||
#define PSPRITE_ZEBBO_YELLOW 0x5C
|
||||
#define PSPRITE_WORKER_ROBOT 0x5D
|
||||
#define PSPRITE_PARASITE_MULTIPLE 0x5E
|
||||
#define PSPRITE_PARASITE 0x5F
|
||||
#define PSPRITE_PISTON 0x60
|
||||
#define PSPRITE_RIDLEY 0x61
|
||||
#define PSPRITE_SECURITY_GATE_DEFAULT_CLOSED 0x62
|
||||
#define PSPRITE_ZIPLINE_GENERATOR 0x63
|
||||
#define PSPRITE_METROID 0x64
|
||||
#define PSPRITE_FROZEN_METROID 0x65
|
||||
#define PSPRITE_RINKA_ORANGE 0x66
|
||||
#define PSPRITE_POLYP 0x67
|
||||
#define PSPRITE_VIOLA_BLUE 0x68
|
||||
#define PSPRITE_VIOLA_ORANGE 0x69
|
||||
#define PSPRITE_GERON_NORFAIR 0x6A
|
||||
#define PSPRITE_HOLTZ 0x6B
|
||||
#define PSPRITE_GEKITAI_MACHINE 0x6C
|
||||
#define PSPRITE_RUINS_TEST 0x6D
|
||||
#define PSPRITE_SAVE_PLATFORM 0x6E
|
||||
#define PSPRITE_KRAID 0x6F
|
||||
#define PSPRITE_IMAGO_COCOON_AFTER_FIGHT 0x70
|
||||
#define PSPRITE_RIPPERII 0x71
|
||||
#define PSPRITE_MELLA 0x72
|
||||
#define PSPRITE_ATOMIC 0x73
|
||||
#define PSPRITE_AREA_BANNER 0x74
|
||||
#define PSPRITE_MOTHER_BRAIN 0x75
|
||||
#define PSPRITE_FAKE_POWER_BOMB_EVENT_TRIGGER 0x76
|
||||
#define PSPRITE_ACID_WORM 0x77
|
||||
#define PSPRITE_ESCAPE_SHIP 0x78
|
||||
#define PSPRITE_SIDEHOPPER 0x79
|
||||
#define PSPRITE_GEEGA 0x7A
|
||||
#define PSPRITE_GEEGA_WHITE 0x7B
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN 0x7C
|
||||
#define PSPRITE_ZEBETITE_ONE_AND_THREE 0x7D
|
||||
#define PSPRITE_CANNON 0x7E
|
||||
#define PSPRITE_IMAGO_LARVA_RIGHT_SIDE 0x7F
|
||||
#define PSPRITE_TANGLE_VINE_TALL 0x80
|
||||
#define PSPRITE_TANGLE_VINE_MEDIUM 0x81
|
||||
#define PSPRITE_TANGLE_VINE_CURVED 0x82
|
||||
#define PSPRITE_TANGLE_VINE_SHORT 0x83
|
||||
#define PSPRITE_MELLOW_SWARM 0x84
|
||||
#define PSPRITE_MELLOW_SWARM_HEALTH_BASED 0x85
|
||||
#define PSPRITE_IMAGO 0x86
|
||||
#define PSPRITE_ZEBITITE_TWO_AND_FOUR 0x87
|
||||
#define PSPRITE_CANNON2 0x88
|
||||
#define PSPRITE_CANNON3 0x89
|
||||
#define PSPRITE_CROCOMIRE 0x8A
|
||||
#define PSPRITE_IMAGO_LARVA_LEFT 0x8B
|
||||
#define PSPRITE_GERON_BRINSTAR_ROOM_15 0x8C
|
||||
#define PSPRITE_GERON_BRINSTAR_ROOM_1C 0x8D
|
||||
#define PSPRITE_GERON_VARIA1 0x8E
|
||||
#define PSPRITE_GERON_VARIA2 0x8F
|
||||
#define PSPRITE_GERON_VARIA3 0x90
|
||||
#define PSPRITE_GLASS_TUBE 0x91
|
||||
#define PSPRITE_SAVE_PLATFORM_CHOZODIA 0x92
|
||||
#define PSPRITE_BARISTUTE 0x93
|
||||
#define PSPRITE_CHOZO_STATUE_PLASMA_BEAM 0x94
|
||||
#define PSPRITE_KRAID_ELEVATOR_STATUE 0x95
|
||||
#define PSPRITE_RIDLEY_ELEVATOR_STATUE 0x96
|
||||
#define PSPRITE_RISING_CHOZO_PILLAR 0x97
|
||||
#define PSPRITE_SECURITY_LASER_VERTICAL 0x98
|
||||
#define PSPRITE_SECURITY_LASER_HORIZONTAL 0x99
|
||||
#define PSPRITE_SECURITY_LASER_VERTICAL2 0x9A
|
||||
#define PSPRITE_SECURITY_LASER_HORIZONTAL2 0x9B
|
||||
#define PSPRITE_LOCK_UNLOCK_METROID_DOORS_UNUSED 0x9C
|
||||
#define PSPRITE_GAMET_BLUE_LEADER 0x9D
|
||||
#define PSPRITE_GAMET_BLUE_FOLLOWER 0x9E
|
||||
#define PSPRITE_GEEGA_LEADER 0x9F
|
||||
#define PSPRITE_GEEGA_FOLLOWER 0xA0
|
||||
#define PSPRITE_ZEBBO_GREEN_LEADER 0xA1
|
||||
#define PSPRITE_ZEBBO_GREEN_FOLLOWER 0xA2
|
||||
#define PSPRITE_KRAID_STATUE 0xA3
|
||||
#define PSPRITE_RIDLEY_STATUE 0xA4
|
||||
#define PSPRITE_RINKA_GREEN 0xA5
|
||||
#define PSPRITE_SEARCHLIGHT_EYE 0xA6
|
||||
#define PSPRITE_SEARCHLIGHT_EYE2 0xA7
|
||||
#define PSPRITE_STEAM_LARGE 0xA8
|
||||
#define PSPRITE_STEAM_SMALL 0xA9
|
||||
#define PSPRITE_PLASMA_BEAM_BLOCK 0xAA
|
||||
#define PSPRITE_GRAVITY_SUIT_BLOCK 0xAB
|
||||
#define PSPRITE_SPACE_JUMP_BLOCK 0xAC
|
||||
#define PSPRITE_GADORA_KRAID 0xAD
|
||||
#define PSPRITE_GADORA_RIDLEY 0xAE
|
||||
#define PSPRITE_SEARCHLIGHT 0xAF
|
||||
#define PSPRITE_SEARCHLIGHT2 0xB0
|
||||
#define PSPRITE_SEARCHLIGHT3 0xB1
|
||||
#define PSPRITE_SEARCHLIGHT4 0xB2
|
||||
#define PSPRITE_MAYBE_SEARCHLIGHT_TRIGGER 0xB3
|
||||
#define PSPRITE_DISCOVERED_IMAGO_PASSAGE_EVENT_TRIGGER 0xB4
|
||||
#define PSPRITE_FAKE_POWER_BOMB 0xB5
|
||||
#define PSPRITE_SPACE_PIRATE_CARRYING_POWER_BOMB 0xB6
|
||||
#define PSPRITE_TANGLE_VINE_RED_GARUTA 0xB7
|
||||
#define PSPRITE_TANGLE_VINE_GERUTA 0xB8
|
||||
#define PSPRITE_TANGLE_VINE_LARVA_RIGHT 0xB9
|
||||
#define PSPRITE_TANGLE_VINE_LARVA_LEFT 0xBA
|
||||
#define PSPRITE_WATER_DROP 0xBB
|
||||
#define PSPRITE_FALLING_CHOZO_PILLAR 0xBC
|
||||
#define PSPRITE_MECHA_RIDLEY 0xBD
|
||||
#define PSPRITE_EXPLOSION_ZEBES_ESCAPE 0xBE
|
||||
#define PSPRITE_STEAM_LARGE_DIAGONAL_UP 0xBF
|
||||
#define PSPRITE_STEAM_SMALL_DIAGONAL_UP 0xC0
|
||||
#define PSPRITE_STEAM_LARGE_DIAGONAL_DOWN 0xC1
|
||||
#define PSPRITE_STEAM_SMALL_DIAGONAL_DOWN 0xC2
|
||||
#define PSPRITE_BARISTUTE_KRAID_UPPER 0xC3
|
||||
#define PSPRITE_ESCAPE_GATE1 0xC4
|
||||
#define PSPRITE_ESCAPE_GATE2 0xC5
|
||||
#define PSPRITE_BLACK_SPACE_PIRATE 0xC6
|
||||
#define PSPRITE_ESCAPE_SHIP_SPACE_PIRATE 0xC7
|
||||
#define PSPRITE_BARISTUTE_KRAID_LOWER 0xC8
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN2 0xC9
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN3 0xCA
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN4 0xCB
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN5 0xCC
|
||||
#define PSPRITE_RINKA_MOTHER_BRAIN6 0xCD
|
||||
|
||||
#define SSPRITE_CHOZO_BALL 0x0
|
||||
#define SSPRITE_CHOZO_STATUE_PART 0x1
|
||||
#define SSPRITE_CHOZO_STATUE_REFILL 0x2
|
||||
#define SSPRITE_KRAID_PART 0x3
|
||||
#define SSPRITE_CHOZO_STATUE_MOVEMENT 0x4
|
||||
#define SSPRITE_CHARGE_BEAM_GLOW 0x5
|
||||
#define SSPRITE_WINGED_RIPPER 0x6
|
||||
#define SSPRITE_MULTIVIOLA_UNUSED 0x7
|
||||
#define SSPRITE_DRAGON_FIREBALL 0x8
|
||||
#define SSPRITE_DEOREM_SEGMENT 0x9
|
||||
#define SSPRITE_DEOREM_EYE 0xA
|
||||
#define SSPRITE_DEOREM_THORN 0xB
|
||||
#define SSPRITE_SKREE_EXPLOSION 0xC
|
||||
#define SSPRITE_SAVE_PLATFORM_PART 0xD
|
||||
#define SSPRITE_SAVE_YES_NO_CURSOR 0xE
|
||||
#define SSPRITE_BLUE_SKREE_EXPLOSION 0xF
|
||||
#define SSPRITE_ZEELA_EYES 0x10
|
||||
#define SSPRITE_HIVE_ROOTS 0x11
|
||||
#define SSPRITE_IMAGO_LARVA_PART 0x12
|
||||
#define SSPRITE_MORPH_BALL_OUTSIDE 0x13
|
||||
#define SSPRITE_IMAGO_COCOON_VINE 0x14
|
||||
#define SSPRITE_IMAGO_COCOON_SPORE 0x15
|
||||
#define SSPRITE_SPACE_PIRATE_LASER 0x16
|
||||
#define SSPRITE_RIDLEY_PART 0x17
|
||||
#define SSPRITE_RIDLEY_TAIL 0x18
|
||||
#define SSPRITE_SEARCHLIGHT_EYE_BEAM 0x19
|
||||
#define SSPRITE_METROID_SHELL 0x1A
|
||||
#define SSPRITE_POLYP_PROJECTILE 0x1B
|
||||
#define SSPRITE_KRAID_SPIKE 0x1C
|
||||
#define SSPRITE_KRAID_NAIL 0x1D
|
||||
#define SSPRITE_ZIPLINE_GENERATOR_PART 0x1E
|
||||
#define SSPRITE_ATOMIC_ELECTRICITY 0x1F
|
||||
#define SSPRITE_MOTHER_BRAIN_PART 0x20
|
||||
#define SSPRITE_RIDLEY_FIREBALL 0x21
|
||||
#define SSPRITE_UNKNOWN_ITEM_CHOZO_STATUE_PART 0x22
|
||||
#define SSPRITE_UNKNOWN_ITEM_CHOZO_STATUE_REFILL 0x23
|
||||
#define SSPRITE_MORPH_BALL_LAUNCHER_PART 0x24
|
||||
#define SSPRITE_ACID_WORM_BODY 0x25
|
||||
#define SSPRITE_ACID_WORM_SPIT 0x26
|
||||
#define SSPRITE_CANNON_BULLET 0x27
|
||||
#define SSPRITE_CROCOMIRE_PART 0x28
|
||||
#define SSPRITE_IMAGO_PART 0x29
|
||||
#define SSPRITE_DEFEATED_IMAGO_COCOON 0x2A
|
||||
#define SSPRITE_IMAGO_CEILING_VINE 0x2B
|
||||
#define SSPRITE_SEARCHLIGHT_EYE_BEAM2 0x2C
|
||||
#define SSPRITE_TANGLE_VINE_GERUTA_PART 0x2D
|
||||
#define SSPRITE_CHOZODIA_SAVE_PLATFORM_PART 0x2E
|
||||
#define SSPRITE_IMAGO_NEEDLE 0x2F
|
||||
#define SSPRITE_ELEVATOR_STATUE_DEBRIS 0x30
|
||||
#define SSPRITE_IMAGO_DAMAGED_STINGER 0x31
|
||||
#define SSPRITE_GUNSHIP_PART 0x32
|
||||
#define SSPRITE_IMAGO_EGG 0x33
|
||||
#define SSPRITE_MAP_STATION_PART 0x34
|
||||
#define SSPRITE_CHOZO_PILLAR_PLATFORM 0x35
|
||||
#define SSPRITE_GADORA_EYE 0x36
|
||||
#define SSPRITE_GADORA_BEAM 0x37
|
||||
#define SSPRITE_UNKNOWN_ITEM_BLOCK_LIGHT 0x38
|
||||
#define SSPRITE_SEARCHLIGHT_EYE_PROJECTILE 0x39
|
||||
#define SSPRITE_CHOZO_PILLAR_PLATFORM_SHADOW 0x3A
|
||||
#define SSPRITE_RUINS_TEST_SYMBOL 0x3B
|
||||
#define SSPRITE_RUINS_TEST_SAMUS_REFLECTION_START 0x3C
|
||||
#define SSPRITE_RUINS_TEST_REFLECTION_COVER 0x3D
|
||||
#define SSPRITE_RUINS_TEST_GHOST_OUTLINE 0x3E
|
||||
#define SSPRITE_RUINS_TEST_GHOST 0x3F
|
||||
#define SSPRITE_RUINS_TEST_SHOOTABLE_SYMBOL 0x40
|
||||
#define SSPRITE_RUINS_TEST_SAMUS_REFLECTION_END 0x41
|
||||
#define SSPRITE_RUINS_TEST_LIGHTNING 0x42
|
||||
#define SSPRITE_RIDLEY_BIG_FIREBALL 0x43
|
||||
#define SSPRITE_MECHA_RIDLEY_PART 0x44
|
||||
#define SSPRITE_ESCAPE_SHIP_PART 0x45
|
||||
#define SSPRITE_POWER_GRIP_GLOW 0x46
|
||||
#define SSPRITE_MECHA_RIDLEY_LASER 0x47
|
||||
#define SSPRITE_MECHA_RIDLEY_MISSILE 0x48
|
||||
#define SSPRITE_MECHA_RIDLEY_FIREBALL 0x49
|
||||
#define SSPRITE_MOTHER_BRAIN_BEAM 0x4A
|
||||
#define SSPRITE_MOTHER_BRAIN_BLOCK 0x4B
|
||||
#define SSPRITE_MOTHER_BRAIN_GLASS_BREAKING 0x4C
|
||||
|
||||
#define SSC_NONE 0x0
|
||||
#define SSC_SOLID 0x1
|
||||
#define SSC_ESCAPE_SHIP 0x2
|
||||
#define SSC_HURTS_SAMUS_CAN_STAND_ON_TOP 0x3
|
||||
#define SSC_HURTS_SAMUS 0x4
|
||||
#define SSC_ATOMIC_DISCHARGE 0x5
|
||||
#define SSC_HURTS_SAMUS_STOP_DIES_WHEN_HIT 0x6
|
||||
#define SSC_KNOCKS_BACK_SAMUS 0x7
|
||||
#define SSC_HURTS_SAMUS_NO_KNOCKBACK 0x9
|
||||
#define SSC_KRAID 0xA
|
||||
#define SSC_HURTS_SAMUS_NO_PASS_THROUGH 0xB
|
||||
#define SSC_ZEBETITE 0xC
|
||||
#define SSC_IMAGO_STINGER 0xD
|
||||
#define SSC_HURTS_SAMUS_STOP_DIES_WHEN_HIT_BIG_KNOCKBACK 0xE
|
||||
#define SSC_MOTHER_BRAIN_BEAM 0xF
|
||||
#define SSC_HURTS_SAMUS_STOP_DIES_WHEN_HIT_NO_KNOCKBACK 0x10
|
||||
#define SSC_HURTS_SAMUS_NO_KNOCKBACK_NO_CONTACT_DAMAGE 0x11
|
||||
#define SSC_MELLOW 0x12
|
||||
#define SSC_SPACE_PIRATE_LASER 0x13
|
||||
#define SSC_SPACE_PIRATE 0x14
|
||||
#define SSC_ACID_WORM 0x15
|
||||
#define SSC_ACID_WORM_MOUTH 0x16
|
||||
#define SSC_BUG 0x17
|
||||
#define SSC_METROID 0x18
|
||||
#define SSC_KRAID_SPIKE 0x19
|
||||
#define SSC_ZIPLINE 0x1A
|
||||
#define SSC_IMAGO_EGG 0x1B
|
||||
#define SSC_RIDLEY_CLAW 0x1C
|
||||
#define SSC_MECHA_RIDLEY 0x1D
|
||||
#define SSC_ABILITY_LASER_SEARCHLIGHT 0x1E
|
||||
#define SSC_SMALL_ENERGY_DROP 0x1F
|
||||
#define SSC_LARGE_ENERGY_DROP 0x20
|
||||
#define SSC_MISSILE_DROP 0x21
|
||||
#define SSC_SUPER_MISSILE_DROP 0x22
|
||||
#define SSC_POWER_BOMB_DROP 0x23
|
||||
#define SSC_MULTIPLE_LARGE_ENERGY_DROP 0x24
|
||||
|
||||
#define SP_NONE 0x0
|
||||
#define SP_ALWAYS_ACTIVE 0x1
|
||||
#define SP_DAMAGED 0x2
|
||||
#define SP_KILL_OFF_SCREEN 0x4
|
||||
#define SP_SOLID_FOR_PROJECTILES 0x8
|
||||
#define SP_DESTROYED 0x10
|
||||
#define SP_ABSOLUTE_POSITION 0x20
|
||||
#define SP_IMMUNE_TO_PROJECTILES 0x40
|
||||
#define SP_SECONDARY_SPRITE 0x80
|
||||
|
||||
#define WEAKNESS_NONE 0x0
|
||||
#define WEAKNESS_CHARGE_BEAM_PISTOL 0x1
|
||||
#define WEAKNESS_BEAM_BOMBS 0x2
|
||||
#define WEAKNESS_SUPER_MISSILES 0x4
|
||||
#define WEAKNESS_MISSILES 0x8
|
||||
#define WEAKNESS_POWER_BOMB 0x10
|
||||
#define WEAKNESS_SPEEDBOOSTER_SCREW_ATTACK 0x20
|
||||
#define WEAKNESS_CAN_BE_FROZEN 0x40
|
||||
|
||||
// Structs
|
||||
|
||||
struct __attribute__((packed)) EnemyRoomData {
|
||||
u8 yPosition;
|
||||
u8 xPosition;
|
||||
u8 spritesetSlot;
|
||||
};
|
||||
|
||||
struct SubSpriteData {
|
||||
const struct FrameData* pMultiOam;
|
||||
u16 currentAnimationFrame;
|
||||
u16 yPosition;
|
||||
u16 xPosition;
|
||||
u16 health;
|
||||
u8 animationDurationCounter;
|
||||
u8 workVariable1;
|
||||
u8 workVariable2;
|
||||
u8 workVariable3;
|
||||
u8 workVariable4;
|
||||
u8 workVariable5;
|
||||
u8 workVariable6;
|
||||
u8 workVariable7;
|
||||
};
|
||||
|
||||
struct SpriteData {
|
||||
u16 status;
|
||||
u16 yPosition;
|
||||
u16 xPosition;
|
||||
u16 yPositionSpawn;
|
||||
u16 xPositionSpawn;
|
||||
i16 hitboxTopOffset;
|
||||
i16 hitboxBottomOffset;
|
||||
i16 hitboxLeftOffset;
|
||||
i16 hitboxRightOffset;
|
||||
u16 oamScaling;
|
||||
u16 health;
|
||||
u16 currentAnimationFrame;
|
||||
const struct FrameData* pOam;
|
||||
u8 animationDurationCounter;
|
||||
u8 spriteID;
|
||||
u8 roomSlot;
|
||||
u8 spritesetGFXSlot;
|
||||
u8 paletteRow;
|
||||
u8 bgPriority;
|
||||
u8 drawOrder;
|
||||
u8 primarySpriteRAMSlot;
|
||||
u8 pose;
|
||||
u8 samusCollision;
|
||||
u8 ignoreSamusCollisionTimer;
|
||||
u8 drawDistanceTopOffset;
|
||||
u8 drawDistanceBottomOffset;
|
||||
u8 drawDistanceHorizontalOffset;
|
||||
u8 oamRotation;
|
||||
u8 invicibilityStunFlashTimer;
|
||||
u8 timer;
|
||||
u8 workVariable;
|
||||
u8 workVariable2;
|
||||
u8 arrayOffset;
|
||||
u8 freezeTimer;
|
||||
u8 standingOnSprite;
|
||||
u8 properties;
|
||||
u8 frozenPaletteRowOffset;
|
||||
u8 absolutePaletteRow;
|
||||
};
|
||||
|
||||
struct BossWork {
|
||||
u16 work1; // Usually spawn Y
|
||||
u16 work2; // Usually spawn X
|
||||
u16 work3;
|
||||
u16 work4; // Usually health
|
||||
u16 work5;
|
||||
u16 work6;
|
||||
u16 work7;
|
||||
u16 work8;
|
||||
u16 work9;
|
||||
u16 work10;
|
||||
u16 work11; // Completion percentage, only used by mecha ridley
|
||||
u16 work12;
|
||||
u16 work13;
|
||||
u16 work14;
|
||||
u16 work15;
|
||||
u16 work16;
|
||||
u16 work17;
|
||||
u16 work18;
|
||||
u16 work19;
|
||||
u16 work20;
|
||||
u16 work21;
|
||||
u16 work22;
|
||||
u16 work23;
|
||||
u16 work24;
|
||||
};
|
||||
|
||||
// Globals
|
||||
|
||||
#define MAX_AMOUNT_OF_SPRITES 24
|
||||
|
||||
extern u16 gAlarmTimer;
|
||||
extern struct SpriteData gSpriteData[MAX_AMOUNT_OF_SPRITES];
|
||||
extern u8 gSpritesetSpritesID[15];
|
||||
extern u8 gSpritesetGFXSlots[15];
|
||||
extern struct SubSpriteData gSubSpriteData1;
|
||||
extern struct SubSpriteData gSubSpriteData2;
|
||||
extern u8 gParasiteRelated;
|
||||
extern struct SpriteData gCurrentSprite;
|
||||
extern u8 gPreviousVerticalCollisionCheck;
|
||||
extern u8 gPreviousCollisionCheck;
|
||||
extern u8 gIgnoreSamusAndSpriteCollision;
|
||||
extern u8 gSpriteDrawOrder[MAX_AMOUNT_OF_SPRITES];
|
||||
extern struct BossWork gBossWork;
|
||||
extern u8 gSpriteRNG;
|
||||
|
||||
// Functions
|
||||
#include "structs/sprite.h"
|
||||
|
||||
void SpriteUpdate(void);
|
||||
void SpriteUpdateAnimation(struct SpriteData* pSprite);
|
||||
|
@ -1,43 +1,8 @@
|
||||
#ifndef SPRITE_UTIL_H
|
||||
#define SPRITE_UTIL_H
|
||||
|
||||
#include "sprite.h"
|
||||
#include "block.h"
|
||||
#include "samus.h"
|
||||
#include "types.h"
|
||||
|
||||
#define NSLR_OUT_OF_RANGE 0x0
|
||||
#define NSLR_LEFT 0x4
|
||||
#define NSLR_RIGHT 0x8
|
||||
|
||||
#define NSAB_OUT_OF_RANGE 0x0
|
||||
#define NSAB_ABOVE 0x1
|
||||
#define NSAB_BELOW 0x2
|
||||
|
||||
#define NSFB_OUT_OF_RANGE 0x0
|
||||
#define NSAB_IN_FRONT 0x3
|
||||
#define NSAB_BEHIND 0xC
|
||||
|
||||
#define DCT_NONE 0x0
|
||||
#define DCT_SHINESPARK 0x1
|
||||
#define DCT_SPEEDBOOSTER 0x2
|
||||
#define DCT_SCREW_ATTACK 0x3
|
||||
#define DCT_SUDO_SCREW 0x4
|
||||
|
||||
#define DEATH_NORMAL 0x0
|
||||
#define DEATH_RESPAWNING 0x1
|
||||
#define DEATH_NO_DEATH_OR_RESPAWNING_ALREADY_HAS_DROP 0x2
|
||||
|
||||
#define SPLASH_NONE 0x0
|
||||
#define SPLASH_SMALL 0x1
|
||||
#define SPLASH_BIG 0x2
|
||||
#define SPLASH_HUGE 0x3
|
||||
|
||||
#define SPRITE_COLLISION_FLAG_NONE 0x0
|
||||
#define SPRITE_COLLISION_FLAG_ON_TOP 0x1
|
||||
#define SPRITE_COLLISION_FLAG_ON_BOTTOM 0x2
|
||||
#define SPRITE_COLLISION_FLAG_ON_LEFT 0x4
|
||||
#define SPRITE_COLLISION_FLAG_ON_RIGHT 0x8
|
||||
#include "structs/sprite.h"
|
||||
|
||||
void SpriteUtilInitLocationText(void);
|
||||
void SpriteUtilCheckStopSamusAgainstSolidSpriteLeft(u16 yPosition, u16 xPosition);
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define HIVE_AI_H
|
||||
|
||||
#include "types.h"
|
||||
#include "sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
void HiveSpawnParticle(void);
|
||||
void HiveInit(void);
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define IMAGO_LARVA_AI_H
|
||||
|
||||
#include "types.h"
|
||||
#include "sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
#define IMAGO_LARVA_POSE_IDLE_INIT 0x8
|
||||
#define IMAGO_LARVA_POSE_IDLE 0x9
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define PARASITE_AI_H
|
||||
|
||||
#include "types.h"
|
||||
#include "sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
#define PARASITE_POSE_IDLE_INIT 0x8
|
||||
#define PARASITE_POSE_IDLE 0x9
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef STRUCTS_H
|
||||
#define STRUCTS_H
|
||||
#ifndef STRUCT_H
|
||||
#define STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
@ -9,4 +9,4 @@ struct struct_08002a38 {
|
||||
u8 unk_01e;
|
||||
};
|
||||
|
||||
#endif /* STRUCTS_H */
|
||||
#endif /* STRUCT_H */
|
||||
|
18
include/structs/audio.h
Normal file
18
include/structs/audio.h
Normal file
@ -0,0 +1,18 @@
|
||||
#ifndef AUDIO_STRUCT_H
|
||||
#define AUDIO_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Structs
|
||||
|
||||
struct MusicTrackInfo {
|
||||
u16 currentRoomTrack;
|
||||
u8 pauseScreenFlag;
|
||||
u8 takingNormalTransition;
|
||||
i8 unk;
|
||||
};
|
||||
|
||||
extern u8 gStereoFlag;
|
||||
extern struct MusicTrackInfo gMusicTrackInfo;
|
||||
|
||||
#endif
|
70
include/structs/bg_clip.h
Normal file
70
include/structs/bg_clip.h
Normal file
@ -0,0 +1,70 @@
|
||||
#ifndef BG_CLIP_STRUCT_H
|
||||
#define BG_CLIP_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
#include "structs/connection.h"
|
||||
|
||||
// Structs
|
||||
|
||||
struct BackgroundPointersAndDimensions {
|
||||
struct {
|
||||
u16* pDecomp;
|
||||
u16 width;
|
||||
u16 height;
|
||||
} backgrounds[3];
|
||||
u16* pClipDecomp;
|
||||
u16 clipdataWidth;
|
||||
u16 clipdataHeight;
|
||||
};
|
||||
|
||||
struct BG2Movement {
|
||||
i16 xOffset;
|
||||
i16 yOffset;
|
||||
};
|
||||
|
||||
struct LastTank {
|
||||
u16 behavior;
|
||||
u8 xPosition;
|
||||
u8 yPosition;
|
||||
};
|
||||
|
||||
struct ItemInfo {
|
||||
u8 room;
|
||||
i8 type;
|
||||
u8 xPosition;
|
||||
u8 yPosition;
|
||||
};
|
||||
|
||||
struct TankCollectionData {
|
||||
u16 behaviors[4];
|
||||
u16 yPositions[3];
|
||||
u16 xPositions[3];
|
||||
};
|
||||
|
||||
// Globals
|
||||
|
||||
#define MAX_AMOUNT_OF_ITEMS_PER_AREA 64
|
||||
|
||||
extern struct ItemInfo gItemsCollected[MAX_AMOUNT_OF_AREAS][MAX_AMOUNT_OF_ITEMS_PER_AREA];
|
||||
extern u8 gNeverReformBlocks[MAX_AMOUNT_OF_AREAS][512];
|
||||
extern u8 gNumberOfNeverReformBlocks[MAX_AMOUNT_OF_AREAS];
|
||||
extern u8 gNumberOfItemsCollected[MAX_AMOUNT_OF_AREAS];
|
||||
extern struct LastTank gLastTankCollected;
|
||||
extern struct BackgroundPointersAndDimensions gBGPointersAndDimensions;
|
||||
|
||||
extern struct BG2Movement gBG2Movement;
|
||||
extern struct BG3Movement gBG3Movement;
|
||||
extern struct BG0Movement gBG0Movement;
|
||||
|
||||
extern u16 gBG0XPosition;
|
||||
extern u16 gBG0YPosition;
|
||||
extern u16 gBG1XPosition;
|
||||
extern u16 gBG1YPosition;
|
||||
extern u16 gBG2XPosition;
|
||||
extern u16 gBG2YPosition;
|
||||
extern u16 gBG3XPosition;
|
||||
extern u16 gBG3YPosition;
|
||||
|
||||
extern i8 gCollectingTank;
|
||||
|
||||
#endif
|
43
include/structs/clipdata.h
Normal file
43
include/structs/clipdata.h
Normal file
@ -0,0 +1,43 @@
|
||||
#ifndef CLIPDATA_STRUCT_H
|
||||
#define CLIPDATA_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Structs
|
||||
|
||||
struct CurrentAffectingClip {
|
||||
u16 movement;
|
||||
u16 hazard;
|
||||
};
|
||||
|
||||
struct CollisionData {
|
||||
i32 clipdataType;
|
||||
i32 subPixelX;
|
||||
i32 subPixelY;
|
||||
i32 actorType;
|
||||
u16 tileX;
|
||||
u16 tileY;
|
||||
};
|
||||
|
||||
struct TilemapAndClipPointers {
|
||||
u16* pTilemap;
|
||||
u8* pClipCollisions;
|
||||
u16* pClipBehaviors;
|
||||
};
|
||||
|
||||
// Typedef
|
||||
|
||||
typedef u32 (*ClipFunc_T)(struct CollisionData*);
|
||||
|
||||
|
||||
// Globals
|
||||
|
||||
extern ClipFunc_T gClipdataCodePointer;
|
||||
extern u8 gCurrentClipdataAffectingAction;
|
||||
extern struct CurrentAffectingClip gCurrentAffectingClipdata;
|
||||
extern struct TilemapAndClipPointers gTilemapAndClipPointers;
|
||||
|
||||
extern u16 gEffectYPosition;
|
||||
extern i16 gEffectYPositionOffset;
|
||||
|
||||
#endif
|
102
include/structs/connection.h
Normal file
102
include/structs/connection.h
Normal file
@ -0,0 +1,102 @@
|
||||
#ifndef CONNECTION_STRUCT_H
|
||||
#define CONNECTION_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Structs
|
||||
|
||||
struct Door {
|
||||
u8 type;
|
||||
u8 sourceRoom;
|
||||
u8 xStart;
|
||||
u8 xEnd;
|
||||
u8 yStart;
|
||||
u8 yEnd;
|
||||
u8 destinationDoor;
|
||||
i8 xExit;
|
||||
i8 yExit;
|
||||
};
|
||||
|
||||
struct EventBasedConnection {
|
||||
u8 sourceArea;
|
||||
u8 sourceDoor;
|
||||
u8 event;
|
||||
u8 destinationDoor;
|
||||
};
|
||||
|
||||
struct HatchLockEvent {
|
||||
u8 room;
|
||||
u8 event;
|
||||
u8 isBefore;
|
||||
u8 hatchesToLock1:1;
|
||||
u8 hatchesToLock2:1;
|
||||
u8 hatchesToLock3:1;
|
||||
u8 hatchesToLock4:1;
|
||||
u8 hatchesToLock5:1;
|
||||
u8 hatchesToLock6:1;
|
||||
u8 hatchesToLock7:1;
|
||||
u8 hatchesToLock8:1;
|
||||
u8 hatchesToLockPart2_1:1;
|
||||
u8 hatchesToLockPart2_2:1;
|
||||
u8 hatchesToLockPart2_3:1;
|
||||
u8 hatchesToLockPart2_4:1;
|
||||
u8 hatchesToLockPart2_5:1;
|
||||
u8 hatchesToLockPart2_6:1;
|
||||
u8 hatchesToLockPart2_7:1;
|
||||
u8 hatchesToLockPart2_8:1;
|
||||
};
|
||||
|
||||
struct HatchData {
|
||||
/* 0 */
|
||||
u8 exists:1;
|
||||
u8 currentAnimationFrame:3;
|
||||
u8 facingRight:1;
|
||||
u8 padding:3;
|
||||
/* 1 */
|
||||
u8 opening:2;
|
||||
u8 locked:2;
|
||||
u8 flashingTimer:4;
|
||||
/* 2 */
|
||||
u8 hitTimer:4;
|
||||
u8 hits:4;
|
||||
/* 3 */
|
||||
u8 type;
|
||||
u8 animationDurationCounter;
|
||||
u8 xPosition;
|
||||
u8 yPosition;
|
||||
u8 sourceDoor;
|
||||
};
|
||||
|
||||
struct LastElevatorUsed {
|
||||
u16 unused;
|
||||
u8 route;
|
||||
i8 direction;
|
||||
};
|
||||
|
||||
struct HatchesState {
|
||||
i8 unlocking;
|
||||
i8 unk;
|
||||
u16 hatchesLockedWithTimer;
|
||||
u16 hatchesLockedWithEvent;
|
||||
u16 unk2;
|
||||
};
|
||||
|
||||
#define MAX_AMOUNT_OF_HATCHES 16
|
||||
#define MAX_AMOUNT_OF_AREAS 8
|
||||
#define MAX_AMOUNT_OF_HATCH_TYPES 8
|
||||
#define MAX_AMOUNT_OF_EVENT_BASED_CONNECTIONS 41
|
||||
|
||||
extern u32 gHatchesOpened[MAX_AMOUNT_OF_AREAS][8];
|
||||
|
||||
extern u8 gCurrentArea;
|
||||
extern u8 gAreaBeforeTransition;
|
||||
extern u8 gCurrentRoom;
|
||||
extern u8 gLastDoorUsed;
|
||||
extern u8 gLastDoorProperties;
|
||||
extern u8 gDisplayLocationText;
|
||||
extern i8 gDoorUnlockTimer;
|
||||
extern struct HatchesState gHatchesState;
|
||||
extern struct HatchData gHatchData[MAX_AMOUNT_OF_HATCHES];
|
||||
extern u8 gNumberOfValidHatchesInRoom;
|
||||
|
||||
#endif
|
22
include/structs/display.h
Normal file
22
include/structs/display.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef DISPLAY_STRUCT_H
|
||||
#define DISPLAY_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
struct IORegistersBackup {
|
||||
u16 DISPCNT_NonGameplay;
|
||||
u16 BLDCNT_NonGameplay;
|
||||
u8 BLDALPHA_NonGameplay_EVA;
|
||||
u8 BLDALPHA_NonGameplay_EVB;
|
||||
u8 WININ_H_NonGameplay;
|
||||
u8 WINOUT_L_NonGameplay;
|
||||
u16 BG0CNT_WriteOnly;
|
||||
u16 BG0CNT;
|
||||
u16 BG1CNT;
|
||||
u16 BG2CNT;
|
||||
u16 BG3CNT;
|
||||
};
|
||||
|
||||
extern struct IORegistersBackup gIORegistersBackup;
|
||||
|
||||
#endif
|
26
include/structs/game_state.h
Normal file
26
include/structs/game_state.h
Normal file
@ -0,0 +1,26 @@
|
||||
#ifndef GAME_STATE_STRUCT_H
|
||||
#define GAME_STATE_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
extern u8 gDebugFlag;
|
||||
extern u8 gDisablePause;
|
||||
extern u8 gShipLandingFlag;
|
||||
extern u16 gButtonInput;
|
||||
extern u16 gPreviousButtonInput;
|
||||
extern u16 gChangedInput;
|
||||
extern i8 gIsLoadingFile;
|
||||
extern i8 gPauseScreenFlag;
|
||||
extern i8 gClearedEveryFrame;
|
||||
extern u8 gFrameCounter8Bit;
|
||||
extern u16 gFrameCounter16Bit;
|
||||
extern u8 gDifficulty;
|
||||
extern i8 gLanguage;
|
||||
extern u8 gResetGame;
|
||||
|
||||
extern i16 gMainGameMode;
|
||||
extern i16 gGameModeSub1;
|
||||
extern i8 gGameModeSub2;
|
||||
extern i8 gGameModeSub3;
|
||||
|
||||
#endif
|
35
include/structs/hud.h
Normal file
35
include/structs/hud.h
Normal file
@ -0,0 +1,35 @@
|
||||
#ifndef HUD_STRUCT_H
|
||||
#define HUD_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Structs
|
||||
|
||||
struct HudDigits {
|
||||
u8 ones;
|
||||
u8 tens;
|
||||
u8 hundreds;
|
||||
u8 thousands;
|
||||
};
|
||||
|
||||
// Globals
|
||||
|
||||
extern u8 gHideHud;
|
||||
extern u8 gMissileHighlightStatus;
|
||||
extern u8 gPowerBombHighlightStatus;
|
||||
extern u8 gSuperMissileHighlightStatus;
|
||||
|
||||
extern struct HudDigits gEnergyDigits;
|
||||
extern struct HudDigits gMaxEnergyDigits;
|
||||
extern struct HudDigits gMissileDigits;
|
||||
extern struct HudDigits gPowerBombDigits;
|
||||
extern struct HudDigits gSuperMissileDigits;
|
||||
|
||||
extern u8 gEnergyRefillAnimation;
|
||||
extern u8 gMissileRefillAnimation;
|
||||
extern u8 gSuperMissileRefillAnimation;
|
||||
extern u8 gPowerBombRefillAnimation;
|
||||
|
||||
extern u8 gAmmoDigitsGFX[64];
|
||||
|
||||
#endif
|
19
include/structs/in_game_timer.h
Normal file
19
include/structs/in_game_timer.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef IN_GAME_TIMER_STRUCT_H
|
||||
#define IN_GAME_TIMER_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#define MAX_AMOUNT_OF_IGT_AT_BOSSES 5
|
||||
|
||||
struct InGameTimer {
|
||||
u8 hours;
|
||||
u8 minutes;
|
||||
u8 seconds;
|
||||
u8 frames;
|
||||
};
|
||||
|
||||
extern u8 gMaxInGameTimerFlag;
|
||||
extern struct InGameTimer gInGameTimer;
|
||||
extern struct InGameTimer gInGameTimerAtBosses[MAX_AMOUNT_OF_IGT_AT_BOSSES];
|
||||
|
||||
#endif
|
39
include/structs/projectile.h
Normal file
39
include/structs/projectile.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef PROJECTILE_STRUCT_H
|
||||
#define PROJECTILE_STRUCT_H
|
||||
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Structs
|
||||
|
||||
struct ProjectileData {
|
||||
u8 status;
|
||||
const struct FrameData* pOam;
|
||||
u16 yPosition;
|
||||
u16 xPosition;
|
||||
u16 currentAnimationFrame;
|
||||
u8 animationDurationCounter;
|
||||
u8 type;
|
||||
u8 direction;
|
||||
u8 movementStage;
|
||||
u8 drawDistanceOffset;
|
||||
u8 timer;
|
||||
i16 hitboxTopOffset;
|
||||
i16 hitboxBottomOffset;
|
||||
i16 hitboxLeftOffset;
|
||||
i16 hitboxRightOffset;
|
||||
};
|
||||
|
||||
// Globals
|
||||
|
||||
#define MAX_AMOUNT_OF_PROJECTILES 16
|
||||
|
||||
extern struct ProjectileData gProjectileData[MAX_AMOUNT_OF_PROJECTILES];
|
||||
extern u16 gArmCannonY;
|
||||
extern u16 gArmCannonX;
|
||||
|
||||
// Typedef
|
||||
|
||||
typedef void (*ProjFunc_T)(struct ProjectileData*);
|
||||
|
||||
#endif
|
170
include/structs/samus.h
Normal file
170
include/structs/samus.h
Normal file
@ -0,0 +1,170 @@
|
||||
#ifndef SAMUS_STRUCT_H
|
||||
#define SAMUS_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Globals
|
||||
|
||||
#define MAX_AMOUNT_OF_SAMUS_POSES 67
|
||||
|
||||
extern struct SamusData gSamusData;
|
||||
extern struct SamusData gSamusDataCopy;
|
||||
extern struct WeaponInfo gSamusWeaponInfo;
|
||||
extern struct SamusEcho gSamusEcho;
|
||||
extern struct ScrewSpeedAnimation gScrewSpeedAnimation;
|
||||
extern struct Equipment gEquipment;
|
||||
extern struct HazardDamage gSamusHazardDamage;
|
||||
extern struct EnvironmentalEffect gSamusEnvirnmentalEffects[5];
|
||||
extern struct SamusPhysics gSamusPhysics;
|
||||
extern u16 gPreviousXPosition;
|
||||
extern u16 gPreviousYPosition;
|
||||
extern u16 gPreventMovementTimer;
|
||||
|
||||
extern u16 gSamusPalette[16 * 2];
|
||||
extern i16 gSamusDoorPositionOffset;
|
||||
|
||||
// Structs
|
||||
|
||||
struct Equipment {
|
||||
u16 maxEnergy;
|
||||
u16 maxMissiles;
|
||||
u8 maxSuperMissiles;
|
||||
u8 maxPowerBombs;
|
||||
u16 currentEnergy;
|
||||
u16 currentMissiles;
|
||||
u8 currentSuperMissiles;
|
||||
u8 currentPowerBombs;
|
||||
u8 beamBombs;
|
||||
u8 beamBombsActivation;
|
||||
u8 suitMisc;
|
||||
u8 suitMiscActivation;
|
||||
u8 downloadedMapStatus;
|
||||
u8 lowHealth;
|
||||
u8 suitType;
|
||||
u8 grabbedByMetroid;
|
||||
};
|
||||
|
||||
|
||||
struct WeaponInfo {
|
||||
u8 diagonalAim;
|
||||
u8 newProjectile;
|
||||
u8 weaponHighlighted;
|
||||
u8 missilesSeleced;
|
||||
u8 cooldown;
|
||||
u8 chargeCounter;
|
||||
u8 beamReleasePaletteTimer;
|
||||
};
|
||||
|
||||
struct SamusData {
|
||||
u8 pose;
|
||||
u8 standingStatus;
|
||||
u8 armCannonDirection;
|
||||
u8 turning;
|
||||
u8 forcedMovement;
|
||||
u8 speedboostingShinesparking;
|
||||
u8 invincibilityTimer;
|
||||
u8 walljumpTimer;
|
||||
u8 shinesparkTimer;
|
||||
u8 unmorphPaletteTimer;
|
||||
u8 timer;
|
||||
u16 lastWallTouchedMidAir;
|
||||
u16 direction;
|
||||
u16 elevatorDirection;
|
||||
u16 xPosition;
|
||||
u16 yPosition;
|
||||
i16 xVelocity;
|
||||
i16 yVelocity;
|
||||
u16 currentSlope;
|
||||
u8 animationDurationCounter;
|
||||
u8 currentAnimationFrame;
|
||||
};
|
||||
|
||||
struct SamusPhysics {
|
||||
u16* pBodyOam;
|
||||
u8* pShouldersGFX;
|
||||
u16 shoulderGFXSize;
|
||||
u8* pTorsoGFX;
|
||||
u16 torsoGFXSize;
|
||||
u8* pLegsGFX;
|
||||
u16 legsGFXSize;
|
||||
u8* pBodyLowerHalfGFX;
|
||||
u16 bodyLowerHalfGFXSize;
|
||||
u16 unk;
|
||||
u16* pArmCannonOAM;
|
||||
u8* pArmCannonGFXUpper;
|
||||
u16 armCannonGFXUpperSize;
|
||||
u8* pArmCannonGFXLower;
|
||||
u16 armCannonGFXLowerSize;
|
||||
u16* pScrewSpeedOAM;
|
||||
u8* pScrewSpeedGFX;
|
||||
u16 screwSpeedGFXSize;
|
||||
u8* pScrewShinesparkGFX;
|
||||
u16 screwShinesparkGFXSize;
|
||||
u16 armCannonXPositionOffset;
|
||||
u16 armCannonYPositionOffset;
|
||||
u8 horizontalMovingDirection;
|
||||
u8 verticalMovingDirection;
|
||||
i16 hitboxLeftOffset;
|
||||
i16 hitboxRightOffset;
|
||||
i16 hitboxTopOffset;
|
||||
u8 standingStatus;
|
||||
u8 hitboxType; // TODO define
|
||||
u8 touchingSideBlock;
|
||||
u8 touchingTopBlock;
|
||||
u8 unknown;
|
||||
u8 slowedByLiquid;
|
||||
u8 hasNewProjectile;
|
||||
i16 xAcceleration;
|
||||
i16 xVelocityCap;
|
||||
i16 yAcceleration;
|
||||
i16 positiveYVelocityCap;
|
||||
i16 negativeYVelocityCap;
|
||||
i16 midairXAcceleration;
|
||||
i16 midairXVelocityCap;
|
||||
i16 midairMorphedXVelocityCap;
|
||||
i16 drawDistanceLeftOffset;
|
||||
i16 drawDistanceTopOffset;
|
||||
i16 drawDistanceRightOffset;
|
||||
i16 drawDistanceBottomOffset;
|
||||
};
|
||||
|
||||
struct ScrewSpeedAnimation {
|
||||
u8 flag;
|
||||
u8 animationDurationCounter;
|
||||
u8 currentAnimationFrame;
|
||||
u32 unknown;
|
||||
};
|
||||
|
||||
struct HazardDamage {
|
||||
u8 damageTimer;
|
||||
// u8 undefined; // Needed for correct alignment
|
||||
u16 knockbackTimer;
|
||||
u8 paletteTimer;
|
||||
};
|
||||
|
||||
struct EnvironmentalEffect {
|
||||
u8 type;
|
||||
u8 animationDurationCounter;
|
||||
u8 currentAnimationFrame;
|
||||
u8 breathingTimer;
|
||||
u16 xPosition;
|
||||
u16 yPosition;
|
||||
struct OamFrame* pOamFrame;
|
||||
};
|
||||
|
||||
struct SamusEcho {
|
||||
u8 active;
|
||||
u8 timer;
|
||||
u8 position;
|
||||
u8 distance;
|
||||
u16 previous64XPositions[64];
|
||||
u16 previous64YPositions[64];
|
||||
u16 previousPositionCounter;
|
||||
u8 unknown;
|
||||
};
|
||||
|
||||
// Typedefs
|
||||
|
||||
typedef u8 (*SamusFunc_T)(struct SamusData*);
|
||||
|
||||
#endif
|
45
include/structs/scroll.h
Normal file
45
include/structs/scroll.h
Normal file
@ -0,0 +1,45 @@
|
||||
#ifndef SCROLL_STRUCT_H
|
||||
#define SCROLL_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
struct Scroll {
|
||||
u8 within;
|
||||
u16 xEnd;
|
||||
u16 xStart;
|
||||
u16 yStart;
|
||||
u16 yEnd;
|
||||
};
|
||||
|
||||
struct Camera {
|
||||
u16 xPosition;
|
||||
u16 yPosition;
|
||||
i8 xVelocity;
|
||||
i8 yVelocity;
|
||||
};
|
||||
|
||||
struct LockScreen {
|
||||
u8 lock;
|
||||
u16 xPositionCenter;
|
||||
u16 yPositionCenter;
|
||||
};
|
||||
|
||||
struct Unk_3005714 {
|
||||
i16 unk0;
|
||||
i16 unk2;
|
||||
i16 unk4;
|
||||
i16 unk6;
|
||||
};
|
||||
|
||||
extern u8 gDisableScrolling;
|
||||
extern u16 gSlowScrollingTimer;
|
||||
extern u8 gSkipDoorTransition;
|
||||
extern struct Scroll gCurrentScrolls[2];
|
||||
extern struct Camera gCamera;
|
||||
extern struct LockScreen gLockScreen;
|
||||
extern i8 gScreenYOffset;
|
||||
extern i16 gScreenXOffset;
|
||||
extern struct Unk_3005714 gUnk_3005714;
|
||||
extern u8* gCurrentRoomScrollDataPointer;
|
||||
|
||||
#endif
|
117
include/structs/sprite.h
Normal file
117
include/structs/sprite.h
Normal file
@ -0,0 +1,117 @@
|
||||
#ifndef SPRITE_STRUCT_H
|
||||
#define SPRITE_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Structs
|
||||
|
||||
struct __attribute__((packed)) EnemyRoomData {
|
||||
u8 yPosition;
|
||||
u8 xPosition;
|
||||
u8 spritesetSlot;
|
||||
};
|
||||
|
||||
struct SubSpriteData {
|
||||
const struct FrameData* pMultiOam;
|
||||
u16 currentAnimationFrame;
|
||||
u16 yPosition;
|
||||
u16 xPosition;
|
||||
u16 health;
|
||||
u8 animationDurationCounter;
|
||||
u8 workVariable1;
|
||||
u8 workVariable2;
|
||||
u8 workVariable3;
|
||||
u8 workVariable4;
|
||||
u8 workVariable5;
|
||||
u8 workVariable6;
|
||||
u8 workVariable7;
|
||||
};
|
||||
|
||||
struct SpriteData {
|
||||
u16 status;
|
||||
u16 yPosition;
|
||||
u16 xPosition;
|
||||
u16 yPositionSpawn;
|
||||
u16 xPositionSpawn;
|
||||
i16 hitboxTopOffset;
|
||||
i16 hitboxBottomOffset;
|
||||
i16 hitboxLeftOffset;
|
||||
i16 hitboxRightOffset;
|
||||
u16 oamScaling;
|
||||
u16 health;
|
||||
u16 currentAnimationFrame;
|
||||
const struct FrameData* pOam;
|
||||
u8 animationDurationCounter;
|
||||
u8 spriteID;
|
||||
u8 roomSlot;
|
||||
u8 spritesetGFXSlot;
|
||||
u8 paletteRow;
|
||||
u8 bgPriority;
|
||||
u8 drawOrder;
|
||||
u8 primarySpriteRAMSlot;
|
||||
u8 pose;
|
||||
u8 samusCollision;
|
||||
u8 ignoreSamusCollisionTimer;
|
||||
u8 drawDistanceTopOffset;
|
||||
u8 drawDistanceBottomOffset;
|
||||
u8 drawDistanceHorizontalOffset;
|
||||
u8 oamRotation;
|
||||
u8 invicibilityStunFlashTimer;
|
||||
u8 timer;
|
||||
u8 workVariable;
|
||||
u8 workVariable2;
|
||||
u8 arrayOffset;
|
||||
u8 freezeTimer;
|
||||
u8 standingOnSprite;
|
||||
u8 properties;
|
||||
u8 frozenPaletteRowOffset;
|
||||
u8 absolutePaletteRow;
|
||||
};
|
||||
|
||||
struct BossWork {
|
||||
u16 work1; // Usually spawn Y
|
||||
u16 work2; // Usually spawn X
|
||||
u16 work3;
|
||||
u16 work4; // Usually health
|
||||
u16 work5;
|
||||
u16 work6;
|
||||
u16 work7;
|
||||
u16 work8;
|
||||
u16 work9;
|
||||
u16 work10;
|
||||
u16 work11; // Completion percentage, only used by mecha ridley
|
||||
u16 work12;
|
||||
u16 work13;
|
||||
u16 work14;
|
||||
u16 work15;
|
||||
u16 work16;
|
||||
u16 work17;
|
||||
u16 work18;
|
||||
u16 work19;
|
||||
u16 work20;
|
||||
u16 work21;
|
||||
u16 work22;
|
||||
u16 work23;
|
||||
u16 work24;
|
||||
};
|
||||
|
||||
// Globals
|
||||
|
||||
#define MAX_AMOUNT_OF_SPRITES 24
|
||||
|
||||
extern u16 gAlarmTimer;
|
||||
extern struct SpriteData gSpriteData[MAX_AMOUNT_OF_SPRITES];
|
||||
extern u8 gSpritesetSpritesID[15];
|
||||
extern u8 gSpritesetGFXSlots[15];
|
||||
extern struct SubSpriteData gSubSpriteData1;
|
||||
extern struct SubSpriteData gSubSpriteData2;
|
||||
extern u8 gParasiteRelated;
|
||||
extern struct SpriteData gCurrentSprite;
|
||||
extern u8 gPreviousVerticalCollisionCheck;
|
||||
extern u8 gPreviousCollisionCheck;
|
||||
extern u8 gIgnoreSamusAndSpriteCollision;
|
||||
extern u8 gSpriteDrawOrder[MAX_AMOUNT_OF_SPRITES];
|
||||
extern struct BossWork gBossWork;
|
||||
extern u8 gSpriteRNG;
|
||||
|
||||
#endif
|
8
include/structs/visual_effects.h
Normal file
8
include/structs/visual_effects.h
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef VISUAL_EFFECTS_STRUCT_H
|
||||
#define VISUAL_EFFECTS_STRUCT_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
extern i8 gDisableAnimatedPalette;
|
||||
|
||||
#endif
|
@ -76,7 +76,7 @@ SECTIONS {
|
||||
. = 0x00000114; gScreenShakeX = .;
|
||||
. = 0x00000118; gCurrentScrolls = .;
|
||||
. = 0x00000130; gCurrentPowerBomb = .;
|
||||
. = 0x00000144; gScreenPositionAndVelocity = .;
|
||||
. = 0x00000144; gCamera = .;
|
||||
. = 0x00000150; gInGameTimer = .;
|
||||
. = 0x00000184; gInGameTimerAtBosses = .;
|
||||
. = 0x00000198; gLastElevatorUsed = .;
|
||||
|
@ -1,10 +1,11 @@
|
||||
#include "funcs.h"
|
||||
#include "game_modes.h"
|
||||
#include "globals.h"
|
||||
#include "init_game.h"
|
||||
#include "softreset.h"
|
||||
#include "syscalls.h"
|
||||
#include "update_input.h"
|
||||
#include "constants/game_state.h"
|
||||
#include "structs/game_state.h"
|
||||
|
||||
void agbmain(void)
|
||||
{
|
||||
@ -230,7 +231,6 @@ void agbmain(void)
|
||||
case GM_DEBUG_MENU:
|
||||
for (;;) {
|
||||
// TODO add debug code
|
||||
/* EMPTY */
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,13 @@
|
||||
#include "bg_clip.h"
|
||||
#include "globals.h"
|
||||
#include "data/block_data.c"
|
||||
#include "data/data.h"
|
||||
#include "constants/connection.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/game_state.h"
|
||||
#include "constants/samus.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/bg_clip.h"
|
||||
#include "structs/connection.h"
|
||||
#include "structs/game_state.h"
|
||||
|
||||
void BGClipMotherBrainUpdateGlass(u8 bg, u16 value, u16 yPosition, u16 xPosition)
|
||||
{
|
||||
@ -97,13 +103,13 @@ u16 BGClipGetNewBLDALPHAValue(u16 clip)
|
||||
u16 bldalpha;
|
||||
u16 offset;
|
||||
|
||||
offset = clip - 0x44;
|
||||
offset = behavior_to_bldalpha(clip);
|
||||
if (offset < 0xB)
|
||||
return bldalpha_values_for_clipdata[offset];
|
||||
return 0;//bldalpha_values_for_clipdata[offset];
|
||||
else
|
||||
{
|
||||
bldalpha = 0x0;
|
||||
if (clip == 0x4F)
|
||||
if (clip == CLIP_BEHAVIOR_BG0_TRIGGER_DEFAULT_TRANSPARENCY)
|
||||
return 0xFFFF;
|
||||
}
|
||||
return bldalpha;
|
||||
|
@ -2,7 +2,12 @@
|
||||
#include "clipdata.h"
|
||||
#include "power_bomb_explosion.h"
|
||||
#include "data/block_data.c"
|
||||
#include "globals.h"
|
||||
#include "clipdata.h" // ?
|
||||
#include "constants/samus.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "structs/bg_clip.h"
|
||||
#include "structs/clipdata.h"
|
||||
#include "structs/game_state.h"
|
||||
|
||||
/**
|
||||
* @brief 590b0 | 214 | Checks if soemthing should happen to a block depending on the CCAA
|
||||
|
@ -3,10 +3,9 @@
|
||||
#include "gba.h"
|
||||
#include "globals.h"
|
||||
#include "io.h"
|
||||
#include "music.h"
|
||||
#include "structs/game_state.h"
|
||||
|
||||
void
|
||||
CallbackCallVblank(void)
|
||||
void CallbackCallVblank(void)
|
||||
{
|
||||
if (gVBlankCallback) {
|
||||
gVBlankCallback();
|
||||
|
@ -1,5 +1,7 @@
|
||||
#include "clipdata.h"
|
||||
#include "globals.h"
|
||||
#include "gba.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "structs/bg_clip.h"
|
||||
|
||||
/**
|
||||
* @brief 57dcc | 2c | Transfers the clipdata code to RAM and sets the pointer to it
|
||||
|
@ -1,9 +1,14 @@
|
||||
#include "connection.h"
|
||||
#include "globals.h"
|
||||
#include "bg_clip.h" // Required
|
||||
#include "data/pointers.c"
|
||||
#include "data/empty_datatypes.c"
|
||||
#include "data/hatch_data.c"
|
||||
#include "constants/connection.h"
|
||||
#include "constants/game_state.h"
|
||||
#include "structs/bg_clip.h"
|
||||
#include "structs/display.h"
|
||||
#include "structs/game_state.h"
|
||||
#include "structs/connection.h"
|
||||
|
||||
/**
|
||||
* @brief 5e760 | 198 | Updates the hatches
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "display.h"
|
||||
#include "globals.h"
|
||||
#include "gba/memory.h"
|
||||
#include "gba.h"
|
||||
#include "structs/display.h"
|
||||
|
||||
void IOWriteRegisters(void)
|
||||
{
|
||||
|
@ -1,6 +1,9 @@
|
||||
#include "escape.h"
|
||||
#include "event.h"
|
||||
#include "globals.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/escape.h"
|
||||
#include "constants/game_state.h"
|
||||
#include "structs/game_state.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
u8 EscapeDetermineTimer(void)
|
||||
{
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include "minimap.h"
|
||||
#include "escape.h" // Required
|
||||
#include "data/hud_data.c"
|
||||
#include "constants/particle.h"
|
||||
#include "globals.h"
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "types.h"
|
||||
#include "globals.h"
|
||||
#include "structs/in_game_timer.h"
|
||||
|
||||
/**
|
||||
* @brief 579b8 | 6c | Updates the in game timer
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
#include "callbacks.h"
|
||||
#include "funcs.h"
|
||||
#include "game_modes.h"
|
||||
|
||||
#include "gba.h"
|
||||
#include "io.h"
|
||||
#include "softreset.h"
|
||||
|
@ -1,9 +1,11 @@
|
||||
#include "location_text.h"
|
||||
#include "sprite.h"
|
||||
#include "gba.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/area_banner.c"
|
||||
#include "globals.h"
|
||||
#include "constants/connection.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/connection.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 11ed8 | b8 | Gets the location text of the current room for brinstar
|
||||
|
@ -1,16 +1,13 @@
|
||||
#include "projectile.h"
|
||||
#include "sprite.h"
|
||||
#include "clipdata.h"
|
||||
#include "sprite_util.h"
|
||||
#include "power_bomb_explosion.h"
|
||||
#include "music.h"
|
||||
#include "game_modes.h"
|
||||
#include "hud.h"
|
||||
#include "data/data.h"
|
||||
|
||||
#include "data/projectile_data.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "data/pointers.c"
|
||||
#include "globals.h"
|
||||
|
||||
#include "constants/game_state.h"
|
||||
|
||||
#include "structs/game_state.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
void ProjectileSetBeamParticleEffect(void)
|
||||
{
|
||||
|
@ -38,8 +38,8 @@ void RoomLoad(void)
|
||||
if (gPauseScreenFlag == PAUSE_SCREEN_NONE && !gIsLoadingFile)
|
||||
{
|
||||
ScrollProcessGeneral();
|
||||
gBG1YPosition = gScreenPositionAndVelocity.yPosition;
|
||||
gBG1XPosition = gScreenPositionAndVelocity.xPosition;
|
||||
gBG1YPosition = gCamera.yPosition;
|
||||
gBG1XPosition = gCamera.xPosition;
|
||||
ScrollBG3Related();
|
||||
ScrollProcessGeneral();
|
||||
}
|
||||
|
@ -10,8 +10,8 @@ void ScrollProcess(struct RawCoordsX* pCoords)
|
||||
struct Scroll* pScroll;
|
||||
|
||||
ScrollUpdateCurrent(pCoords);
|
||||
screen_x = gScreenPositionAndVelocity.xPosition;
|
||||
screen_y = gScreenPositionAndVelocity.yPosition;
|
||||
screen_x = gCamera.xPosition;
|
||||
screen_y = gCamera.yPosition;
|
||||
|
||||
pScroll = gCurrentScrolls;
|
||||
if (pScroll->within)
|
||||
@ -252,7 +252,7 @@ void ScrollWithNoScrollsX(struct RawCoordsX* pCoords)
|
||||
xOffset = gScreenXOffset + (clipPosition - 0x1E0);
|
||||
}
|
||||
|
||||
gScreenPositionAndVelocity.xPosition = xOffset;
|
||||
gCamera.xPosition = xOffset;
|
||||
|
||||
xOffset -= gBG1XPosition;
|
||||
if (xOffset > 0x0)
|
||||
@ -266,7 +266,7 @@ void ScrollWithNoScrollsX(struct RawCoordsX* pCoords)
|
||||
xOffset = gUnk_3005714.unk0;
|
||||
}
|
||||
|
||||
gScreenPositionAndVelocity.xVelocity = xOffset;
|
||||
gCamera.xVelocity = xOffset;
|
||||
gBG1XPosition += xOffset;
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
#include "callbacks.h"
|
||||
#include "funcs.h"
|
||||
#include "game_modes.h"
|
||||
|
||||
#include "gba.h"
|
||||
#include "globals.h"
|
||||
#include "init_helpers.h"
|
||||
|
191
src/sprite.c
191
src/sprite.c
@ -1,5 +1,5 @@
|
||||
#include "sprite.h"
|
||||
#include "escape.h"
|
||||
#include "constants/particle.h"
|
||||
#include "sprite_debris.h"
|
||||
#include "sprite_util.h"
|
||||
#include "syscalls.h"
|
||||
@ -7,7 +7,8 @@
|
||||
#include "data/pointers.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "data/data.h"
|
||||
#include "globals.h"
|
||||
#include "constants/game_state.h"
|
||||
#include "structs/game_state.h"
|
||||
|
||||
/**
|
||||
* cf00 | 42c | Main routine that updates all the sprites
|
||||
@ -22,7 +23,7 @@ void SpriteUpdate(void)
|
||||
|
||||
pCurrent = &gCurrentSprite;
|
||||
rngParam1 = gFrameCounter8Bit;
|
||||
rngParam2 = (gFrameCounter16Bit >> 0x4); // Incorrect stack
|
||||
rngParam2 = (gFrameCounter16Bit >> 0x4);
|
||||
|
||||
if (gGameModeSub1 == SUB_GAME_MODE_PLAYING)
|
||||
{
|
||||
@ -30,11 +31,11 @@ void SpriteUpdate(void)
|
||||
if (!SpriteUtilCheckStopSpritesPose())
|
||||
{
|
||||
SpriteUtilSamusAndSpriteCollision();
|
||||
for (count = 0x0; count < 0x18; count++)
|
||||
for (count = 0x0; count < MAX_AMOUNT_OF_SPRITES; count++)
|
||||
{
|
||||
if (gSpriteData[count].status & SPRITE_STATUS_EXISTS)
|
||||
{
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, 0x8000001c); // Transfer sprite to current
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2)); // Transfer sprite to current
|
||||
gSpriteRNG = sSpriteRandomNumberTable[(rngParam1 + count + rngParam2 + pCurrent->xPosition + pCurrent->yPosition) & 0x1F];
|
||||
SpriteUtilUpdateStunTimer(pCurrent);
|
||||
if (pCurrent->properties & SP_SECONDARY_SPRITE) // Call AI
|
||||
@ -47,7 +48,7 @@ void SpriteUpdate(void)
|
||||
SpriteUpdateAnimation(pCurrent);
|
||||
SpriteCheckOnScreen(pCurrent);
|
||||
}
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], 0x8000001c); // Transfer current back to array
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2)); // Transfer current back to array
|
||||
}
|
||||
}
|
||||
DecrementChozodiaAlarm();
|
||||
@ -56,13 +57,13 @@ void SpriteUpdate(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
for (count = 0x0; count < 0x18; count++)
|
||||
for (count = 0x0; count < MAX_AMOUNT_OF_SPRITES; count++)
|
||||
{
|
||||
if (gSpriteData[count].status & SPRITE_STATUS_EXISTS)
|
||||
{
|
||||
if (gSpriteData[count].pose == 0x0 || gSpriteData[count].properties & SP_ALWAYS_ACTIVE)
|
||||
{
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, 0x8000001c); // Incorrect ldr
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2));
|
||||
gSpriteRNG = sSpriteRandomNumberTable[(rngParam1 + count + rngParam2 + pCurrent->xPosition + pCurrent->yPosition) & 0x1F];
|
||||
SpriteUtilUpdateStunTimer(pCurrent);
|
||||
if (pCurrent->properties & SP_SECONDARY_SPRITE) // Call AI
|
||||
@ -76,13 +77,13 @@ void SpriteUpdate(void)
|
||||
SpriteUpdateAnimation(pCurrent);
|
||||
SpriteCheckOnScreen(pCurrent);
|
||||
}
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], 0x8000001c);
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2));
|
||||
}
|
||||
else
|
||||
{
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, 0x8000001c);
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2));
|
||||
SpriteCheckOnScreen(pCurrent);
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], 0x8000001c);
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -91,11 +92,11 @@ void SpriteUpdate(void)
|
||||
}
|
||||
else if (gGameModeSub1 == 0x6)
|
||||
{
|
||||
for (count = 0x0; count < 0x18; count++)
|
||||
for (count = 0x0; count < MAX_AMOUNT_OF_SPRITES; count++)
|
||||
{
|
||||
if (gSpriteData[count].status & SPRITE_STATUS_EXISTS)
|
||||
{
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, 0x8000001c);
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2));
|
||||
gSpriteRNG = sSpriteRandomNumberTable[(rngParam1 + count + rngParam2 + pCurrent->xPosition + pCurrent->yPosition) & 0x1F];
|
||||
SpriteUtilUpdateStunTimer(pCurrent);
|
||||
if (pCurrent->properties & SP_SECONDARY_SPRITE)
|
||||
@ -109,7 +110,7 @@ void SpriteUpdate(void)
|
||||
SpriteUpdateAnimation(pCurrent);
|
||||
SpriteCheckOnScreen(pCurrent);
|
||||
}
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], 0x8000001c);
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2));
|
||||
}
|
||||
}
|
||||
DecrementChozodiaAlarm();
|
||||
@ -118,12 +119,11 @@ void SpriteUpdate(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
count = 0x0;
|
||||
for (count = 0x0; count < 0x18; count++)
|
||||
for (count = 0x0; count < MAX_AMOUNT_OF_SPRITES; count++)
|
||||
{
|
||||
if (gSpriteData[count].status & SPRITE_STATUS_EXISTS)
|
||||
{
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, 0x8000001c);
|
||||
dma_set(3, &gSpriteData[count], &gCurrentSprite, DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2));
|
||||
gSpriteRNG = sSpriteRandomNumberTable[(rngParam1 + count + rngParam2 + pCurrent->xPosition + pCurrent->yPosition) & 0x1F];
|
||||
|
||||
if (pCurrent->pose == 0x0)
|
||||
@ -135,7 +135,7 @@ void SpriteUpdate(void)
|
||||
}
|
||||
if (pCurrent->status & SPRITE_STATUS_EXISTS)
|
||||
SpriteCheckOnScreen(pCurrent);
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], 0x8000001c);
|
||||
dma_set(3, &gCurrentSprite, &gSpriteData[count], DMA_ENABLE << 16 | (sizeof(struct SpriteData) * 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -144,7 +144,7 @@ void SpriteUpdate(void)
|
||||
/**
|
||||
* d32c | 40 | Updates the animation related info of a sprite
|
||||
*
|
||||
* @param pSprite Sprite Data Pointer to the concerned sprite
|
||||
* @param pSprite Sprite Data Pointer
|
||||
*/
|
||||
void SpriteUpdateAnimation(struct SpriteData* pSprite)
|
||||
{
|
||||
@ -171,57 +171,7 @@ void SpriteDrawAll_2(void)
|
||||
|
||||
void SpriteDrawAll(void)
|
||||
{
|
||||
/*struct SpriteData* pSprite1;
|
||||
struct SpriteData* pSprite2;
|
||||
u16 status_flag;
|
||||
u16 status_check;
|
||||
u8* drawOrder;
|
||||
u8* g_drawOrder;
|
||||
u32 ramSlot;
|
||||
int i;
|
||||
u32 unk;
|
||||
i32 unk2;
|
||||
u8 zero;
|
||||
|
||||
status_flag = SPRITE_STATUS_EXISTS | SPRITE_STATUS_ONSCREEN | SPRITE_STATUS_NOT_DRAWN | SPRITE_STATUS_UNKNOWN;
|
||||
status_check = SPRITE_STATUS_EXISTS | SPRITE_STATUS_ONSCREEN;
|
||||
SpriteDebrisDrawAll();
|
||||
pSprite1 = gSpriteData;
|
||||
zero = 0x0;
|
||||
g_drawOrder = gSpriteDrawOrder;
|
||||
drawOrder = &gSpriteData[0].drawOrder;
|
||||
//ramSlot = 0x17;
|
||||
|
||||
for (i = 0x17; i >= 0x0; i--)
|
||||
{
|
||||
if ((pSprite1->status & status_flag) == status_check && *drawOrder < 0x9)
|
||||
*g_drawOrder = *drawOrder;
|
||||
else
|
||||
*g_drawOrder = zero;
|
||||
g_drawOrder += 0x1;
|
||||
drawOrder += 0x38;
|
||||
pSprite1++;
|
||||
}
|
||||
|
||||
unk = 0x1;
|
||||
|
||||
do
|
||||
{
|
||||
ramSlot = 0x0;
|
||||
pSprite2 = gSpriteData;
|
||||
unk2 = unk + 0x1;
|
||||
|
||||
while (pSprite2 < gSpriteData + MAX_AMOUNT_OF_SPRITES)
|
||||
{
|
||||
if (gSpriteDrawOrder[ramSlot] == unk)
|
||||
{
|
||||
SpriteDraw(pSprite2, ramSlot);
|
||||
}
|
||||
ramSlot++;
|
||||
pSprite2++;
|
||||
}
|
||||
unk = unk2;
|
||||
} while (unk2 < 0x9);*/
|
||||
}
|
||||
|
||||
void SpriteDrawAll_3(void)
|
||||
@ -236,53 +186,7 @@ void SpriteDraw(struct SpriteData* pSprite, u32 slot)
|
||||
|
||||
void SpriteCheckOnScreen(struct SpriteData* pSprite)
|
||||
{
|
||||
// /!\ Maths hell wtf
|
||||
/*u16 bg_y;
|
||||
u16 bg_x;
|
||||
u16 spriteY;
|
||||
u16 spriteX;
|
||||
u16 yOffset;
|
||||
u16 xOffset;
|
||||
u16 bg_x_offset;
|
||||
u16 bg_y_offset;
|
||||
u16 screen_top;
|
||||
u16 screen_bottom;
|
||||
u16 screen_right;
|
||||
u16 screen_left;
|
||||
|
||||
if (!(pSprite->properties & SP_ABSOLUTE_POSITION))
|
||||
{
|
||||
bg_y = gBG1YPosition;
|
||||
bg_x = gBG1XPosition;
|
||||
spriteY = pSprite->yPosition;
|
||||
spriteX = pSprite->xPosition;
|
||||
yOffset = spriteY + 0x200;
|
||||
xOffset = spriteX + 0x200;
|
||||
screen_bottom = bg_y - (pSprite->drawDistanceBottomOffset * 0x4) + 0x200;
|
||||
screen_top = bg_y + 0x200 + (pSprite->drawDistanceTopOffset * 0x4 + 0x280);
|
||||
screen_left = bg_x - (pSprite->drawDistanceHorizontalOffset * 0x4) + 0x200;
|
||||
screen_right = bg_x + 0x200;
|
||||
screen_right += (pSprite->drawDistanceHorizontalOffset * 0x4 + 0x3C0);
|
||||
|
||||
if (screen_left < xOffset && xOffset < screen_right && screen_bottom < yOffset && yOffset < screen_top)
|
||||
pSprite->status |= SPRITE_STATUS_ONSCREEN;
|
||||
else
|
||||
{
|
||||
pSprite->status &= ~SPRITE_STATUS_ONSCREEN;
|
||||
if (pSprite->properties & SP_KILL_OFF_SCREEN)
|
||||
{
|
||||
xOffset = spriteX + 0x280;
|
||||
yOffset = spriteY + 0x280;
|
||||
screen_left = bg_x + 0x40;
|
||||
screen_right = bg_x + 0x880;
|
||||
screen_bottom = bg_y + 0x40;
|
||||
screen_top = bg_y + 0x740;
|
||||
|
||||
if (screen_left >= xOffset || xOffset >= screen_right || yOffset < screen_bottom || screen_top < yOffset)
|
||||
pSprite->status = 0x0;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
void SpriteLoadAllData(void)
|
||||
@ -341,24 +245,7 @@ void SpriteClearData(void)
|
||||
|
||||
void SpriteLoadRoomSprites(void)
|
||||
{
|
||||
// Most likely a fake match, need to do this function again
|
||||
|
||||
u8 roomSlot;
|
||||
u8 y_pos;
|
||||
u8 x_pos;
|
||||
|
||||
roomSlot = 0x0;
|
||||
y_pos = (gCurrentRoomEntry.pEnemyRoomData)->yPosition;
|
||||
if (y_pos == 0xFF) return;
|
||||
while (1)
|
||||
{
|
||||
x_pos = gCurrentRoomEntry.pEnemyRoomData[roomSlot].xPosition;
|
||||
SpriteInitPrimary(gCurrentRoomEntry.pEnemyRoomData[roomSlot].spritesetSlot, y_pos, x_pos, roomSlot);
|
||||
roomSlot++;
|
||||
if (roomSlot > 0x17) return;
|
||||
y_pos = gCurrentRoomEntry.pEnemyRoomData[roomSlot].yPosition;
|
||||
if (y_pos == 0xFF) return;
|
||||
}
|
||||
// https://decomp.me/scratch/N5TjC
|
||||
}
|
||||
|
||||
/**
|
||||
@ -434,14 +321,13 @@ void SpriteInitPrimary(u8 spritesetSlot, u16 yPosition, u16 xPosition, u8 roomSl
|
||||
*/
|
||||
u8 SpriteSpawnSecondary(u8 spriteID, u8 roomSlot, u8 gfxSlot, u8 ramSlot, u16 yPosition, u16 xPosition, u16 statusToAdd)
|
||||
{
|
||||
u8 new_ramSlot;
|
||||
u8 newSlot;
|
||||
struct SpriteData* pSprite;
|
||||
u16 status;
|
||||
|
||||
new_ramSlot = 0x0;
|
||||
pSprite = gSpriteData;
|
||||
newSlot = 0x0;
|
||||
|
||||
while (pSprite < gSpriteData + MAX_AMOUNT_OF_SPRITES)
|
||||
for (pSprite = gSpriteData; pSprite < gSpriteData + MAX_AMOUNT_OF_SPRITES; pSprite++)
|
||||
{
|
||||
status = pSprite->status & SPRITE_STATUS_EXISTS;
|
||||
if (status == 0x0)
|
||||
@ -466,11 +352,10 @@ u8 SpriteSpawnSecondary(u8 spriteID, u8 roomSlot, u8 gfxSlot, u8 ramSlot, u16 yP
|
||||
pSprite->freezeTimer = 0x0;
|
||||
pSprite->standingOnSprite = FALSE;
|
||||
|
||||
return new_ramSlot;
|
||||
return newSlot;
|
||||
}
|
||||
|
||||
new_ramSlot += 0x1;
|
||||
pSprite += 0x1;
|
||||
newSlot++;
|
||||
}
|
||||
|
||||
return 0xFF;
|
||||
@ -490,14 +375,13 @@ u8 SpriteSpawnSecondary(u8 spriteID, u8 roomSlot, u8 gfxSlot, u8 ramSlot, u16 yP
|
||||
*/
|
||||
u8 SpriteSpawnPrimary(u8 spriteID, u8 roomSlot, u8 gfxSlot, u16 yPosition, u16 xPosition, u16 statusToAdd)
|
||||
{
|
||||
u8 new_ramSlot;
|
||||
u8 newSlot;
|
||||
struct SpriteData* pSprite;
|
||||
u16 status;
|
||||
|
||||
new_ramSlot = 0x0;
|
||||
pSprite = gSpriteData;
|
||||
newSlot = 0x0;
|
||||
|
||||
while (pSprite < gSpriteData + MAX_AMOUNT_OF_SPRITES)
|
||||
for (pSprite = gSpriteData; pSprite < gSpriteData + MAX_AMOUNT_OF_SPRITES; pSprite++)
|
||||
{
|
||||
status = pSprite->status & SPRITE_STATUS_EXISTS;
|
||||
if (status == 0x0)
|
||||
@ -518,15 +402,14 @@ u8 SpriteSpawnPrimary(u8 spriteID, u8 roomSlot, u8 gfxSlot, u16 yPosition, u16 x
|
||||
pSprite->frozenPaletteRowOffset = 0x0;
|
||||
pSprite->absolutePaletteRow = 0x0;
|
||||
pSprite->ignoreSamusCollisionTimer = 0x1;
|
||||
pSprite->primarySpriteRAMSlot = new_ramSlot;
|
||||
pSprite->primarySpriteRAMSlot = newSlot;
|
||||
pSprite->freezeTimer = 0x0;
|
||||
pSprite->standingOnSprite = FALSE;
|
||||
|
||||
return new_ramSlot;
|
||||
return newSlot;
|
||||
}
|
||||
|
||||
new_ramSlot += 0x1;
|
||||
pSprite += 0x1;
|
||||
newSlot++;
|
||||
}
|
||||
|
||||
return 0xFF;
|
||||
@ -547,14 +430,13 @@ u8 SpriteSpawnPrimary(u8 spriteID, u8 roomSlot, u8 gfxSlot, u16 yPosition, u16 x
|
||||
*/
|
||||
u8 SpriteSpawnDropFollowers(u8 spriteID, u8 roomSlot, u8 gfxSlot, u8 ramSlot, u16 yPosition, u16 xPosition, u16 statusToAdd)
|
||||
{
|
||||
u8 new_ramSlot;
|
||||
u8 newSlot;
|
||||
struct SpriteData* pSprite;
|
||||
u16 status;
|
||||
|
||||
new_ramSlot = 0x0;
|
||||
pSprite = gSpriteData;
|
||||
newSlot = 0x0;
|
||||
|
||||
while (pSprite < gSpriteData + MAX_AMOUNT_OF_SPRITES)
|
||||
for (pSprite = gSpriteData; pSprite < gSpriteData + MAX_AMOUNT_OF_SPRITES; pSprite++)
|
||||
{
|
||||
status = pSprite->status & SPRITE_STATUS_EXISTS;
|
||||
if (status == 0x0)
|
||||
@ -579,11 +461,10 @@ u8 SpriteSpawnDropFollowers(u8 spriteID, u8 roomSlot, u8 gfxSlot, u8 ramSlot, u1
|
||||
pSprite->freezeTimer = 0x0;
|
||||
pSprite->standingOnSprite = FALSE;
|
||||
|
||||
return new_ramSlot;
|
||||
return newSlot;
|
||||
}
|
||||
|
||||
new_ramSlot++;
|
||||
pSprite++;
|
||||
newSlot++;
|
||||
}
|
||||
|
||||
return 0xFF;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "sprite_debris.h"
|
||||
#include "data/particle_data.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "game_modes.h"
|
||||
|
||||
#include "data/data.h"
|
||||
#include "globals.h"
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "sprite_util.h"
|
||||
#include "sprite_debris.h"
|
||||
#include "particle.h"
|
||||
#include "constants/particle.h"
|
||||
#include "samus.h"
|
||||
#include "location_text.h"
|
||||
#include "clipdata.h"
|
||||
|
@ -3,6 +3,10 @@
|
||||
#include "data/sprites/acid_worm.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "data/generic_data.c"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/event.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "globals.h"
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,8 @@
|
||||
#include "sprites_AI/area_banner.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/area_banner.c"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "globals.h"
|
||||
|
||||
/**
|
||||
|
@ -2,6 +2,8 @@
|
||||
#include "data/pointers.c"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/atomic.c"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
|
||||
|
@ -3,6 +3,10 @@
|
||||
#include "data/sprites/baristute.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "data/generic_data.c"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/event.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "globals.h"
|
||||
|
||||
/**
|
||||
|
@ -3,7 +3,12 @@
|
||||
#include "data/data.h"
|
||||
#include "data/sprite_data.c"
|
||||
#include "data/sprites/space_pirate.c"
|
||||
#include "globals.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/samus.h"
|
||||
#include "constants/projectile.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/projectile.h"
|
||||
|
||||
/**
|
||||
* @brief 2cb68 | 268 | Handles black space pirate/projectile collision
|
||||
|
@ -1,7 +1,20 @@
|
||||
#include "sprites_AI/boss_statues.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/boss_statues.c"
|
||||
#include "globals.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/game_state.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "constants/projectile.h"
|
||||
#include "structs/bg_clip.h"
|
||||
#include "structs/connection.h"
|
||||
#include "structs/clipdata.h"
|
||||
#include "structs/display.h"
|
||||
#include "structs/scroll.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
#include "structs/projectile.h"
|
||||
#include "structs/game_state.h"
|
||||
|
||||
/**
|
||||
* @brief 49184 | 80 | Changes the clipdata of a 6 blocks vertical lign
|
||||
|
@ -1,8 +1,11 @@
|
||||
#include "sprites_AI/charge_beam.h"
|
||||
#include "sprites_AI/item_banner.h"
|
||||
#include "data/sprites/charge_beam.c"
|
||||
#include "globals.h"
|
||||
#include "event.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/samus.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* @brief 13498 | a4 | Initializes the charge beam sprite
|
||||
|
@ -2,9 +2,11 @@
|
||||
#include "sprites_AI/item_banner.h"
|
||||
#include "sprites_AI/chozo_statue.h"
|
||||
#include "sprites_AI/unknown_item_chozo_statue.h"
|
||||
#include "globals.h"
|
||||
#include "data/sprites/chozo_statue.c"
|
||||
#include "data/sprites/unknown_item_chozo_statue.c"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* 162b0 | 94 | Spawns an item banner depending on the chozo statue sprite ID
|
||||
|
@ -2,8 +2,18 @@
|
||||
#include "sprites_AI/unknown_item_chozo_statue.h"
|
||||
#include "data/pointers.c"
|
||||
#include "data/sprites/chozo_statue.c"
|
||||
#include "data/data.h"
|
||||
#include "globals.h"
|
||||
#include "constants/audio.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/game_state.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/samus.h"
|
||||
#include "structs/audio.h"
|
||||
#include "structs/game_state.h"
|
||||
#include "structs/hud.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
#include "structs/scroll.h"
|
||||
|
||||
/**
|
||||
* @brief 13850 | 88 | Synchronize the sub sprites of a chozo statue
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "sprites_AI/chozo_statue_movement.h"
|
||||
|
||||
#include "sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "constants/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 125e8 | 160 | Spawns a new chozo statue movement secondary sprite
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "sprites_AI/crocomire.h"
|
||||
#include "data/data.h"
|
||||
#include "data/pointers.c"
|
||||
#include "data/sprites/crocomire.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 43d88 | 68 | Synchronize the sub sprites of Crocomire
|
||||
|
@ -1,7 +1,13 @@
|
||||
#include "sprites_AI/deorem.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/game_state.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "structs/game_state.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
void DeoremChangeLeftCCAA(u8 caa)
|
||||
{
|
||||
@ -81,9 +87,9 @@ void DeoremSpawnChargeBeam(u16 yPosition, u16 xPosition)
|
||||
*/
|
||||
void DeoremSetEyeOpeningTimer(void)
|
||||
{
|
||||
if (gDifficulty == 0x0)
|
||||
if (gDifficulty == DIFF_EASY)
|
||||
gCurrentSprite.timer = 0x78; // Easy
|
||||
else if (gDifficulty == 0x2)
|
||||
else if (gDifficulty == DIFF_HARD)
|
||||
gCurrentSprite.timer = 0x28; // Hard
|
||||
else
|
||||
gCurrentSprite.timer = 0x50; // Normal
|
||||
|
@ -2,8 +2,14 @@
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/dessgeega.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "constants/event.h"
|
||||
#include "structs/clipdata.h"
|
||||
#include "structs/connection.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 23b4c | 20 | Checks if samus is near the dessgeega on the sides in a 5 block range
|
||||
|
@ -2,7 +2,12 @@
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/dragon.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "structs/display.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 20564 | 50 | Handles the Y movement of a dragon
|
||||
|
@ -1,6 +1,9 @@
|
||||
#include "sprites_AI/elevator_pad.h"
|
||||
#include "globals.h"
|
||||
#include "data/sprites/elevator_pad.c"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/samus.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* @brief 2872c | b8 | Elevator pad AI
|
||||
|
@ -1,7 +1,12 @@
|
||||
#include "sprites_AI/elevator_statue.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/elevator_statue.c"
|
||||
#include "globals.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/samus.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
#include "structs/clipdata.h"
|
||||
|
||||
/**
|
||||
* @brief 47ebc | 50 | Updates the clipdata of the statue debris on the ground
|
||||
|
@ -1,6 +1,9 @@
|
||||
#include "sprites_AI/enemy_drop.h"
|
||||
#include "data/sprites/enemy_drop.c"
|
||||
#include "globals.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/display.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* @brief 12d14 | 17a | Initializes an enemy drop sprite
|
||||
|
@ -1,7 +1,11 @@
|
||||
#include "sprites_AI/escape_gate.h"
|
||||
#include "data/sprites/escape_gate.c"
|
||||
#include "data/data.h"
|
||||
#include "globals.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/clipdata.h"
|
||||
|
||||
/**
|
||||
* @brief 4e910 | b0 | Updates the hitbox of the escape gate
|
||||
@ -111,7 +115,7 @@ void EscapeGate(void)
|
||||
break;
|
||||
|
||||
case ESCAPE_GATE_POSE_CHECK_OPEN:
|
||||
if (spriteID != PSPRITE_ESCAPE_GATE1 || SpriteUtilCheckSamusNearSpriteLeftRight(0x40, 0x180) == NSLR_LEFT)
|
||||
if (spriteID != PSPRITE_ESCAPE_GATE1 || SpriteUtilCheckSamusNearSpriteLeftRight(BLOCK_SIZE, BLOCK_SIZE * 6) == NSLR_LEFT)
|
||||
{
|
||||
// Open gate if samus near
|
||||
gCurrentSprite.pOam = sEscapeGateOAM_Opening;
|
||||
|
@ -1,7 +1,9 @@
|
||||
#include "gba.h"
|
||||
#include "sprites_AI/escape_ship.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/escape_ship.c"
|
||||
#include "globals.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 4ac00 | 94 | Updates the palette of the escape ship
|
||||
|
@ -3,7 +3,10 @@
|
||||
#include "data/data.h"
|
||||
#include "data/sprite_data.c"
|
||||
#include "data/sprites/space_pirate.c"
|
||||
#include "globals.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/samus.h"
|
||||
#include "structs/game_state.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 2dc78 | 60 | Initializes an escape ship space pirate sprite
|
||||
|
@ -1,9 +1,10 @@
|
||||
#include "sprites_AI/explosion_zebes_escape.h"
|
||||
#include "data/sprites/enemy_drop.c"
|
||||
#include "sprite.h"
|
||||
#include "bg_clip.h"
|
||||
#include "samus.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/bg_clip.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
void ExplosionZebesEscape(void)
|
||||
{
|
||||
|
@ -2,7 +2,11 @@
|
||||
#include "data/data.h"
|
||||
#include "screen_shake.h"
|
||||
#include "data/sprites/falling_chozo_pillar.c"
|
||||
#include "globals.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/display.h"
|
||||
#include "structs/game_state.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 4b884 | 218 | Falling chozo pillar AI
|
||||
|
@ -3,7 +3,13 @@
|
||||
#include "data/sprites/gadora.c"
|
||||
#include "data/sprites/enemy_drop.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "constants/event.h"
|
||||
#include "structs/display.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 49eb8 | 134 | Initializes a gadora sprite
|
||||
|
@ -1,8 +1,11 @@
|
||||
#include "sprites_AI/gamet.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/gamet.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* @brief 2e610 | 60 | Initializes a gamet sprite
|
||||
|
@ -1,8 +1,11 @@
|
||||
#include "sprites_AI/geega.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/geega.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* @brief 40230 | 60 | Initializes a geega sprite
|
||||
|
@ -1,6 +1,5 @@
|
||||
#include "sprites_AI/gekitai_machine.h"
|
||||
#include "data/data.h"
|
||||
#include "globals.h"
|
||||
#include "structs/sprite.h"
|
||||
|
||||
/**
|
||||
* @brief 3897c | c | Gekitai machine AI
|
||||
|
@ -1,7 +1,11 @@
|
||||
#include "sprites_AI/geron.h"
|
||||
#include "data/data.h"
|
||||
#include "sprites_AI/parasite.h"
|
||||
#include "data/sprites/geron.c"
|
||||
#include "globals.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/clipdata.h"
|
||||
|
||||
/**
|
||||
* @brief 448e0 | 344 | Geron AI
|
||||
|
@ -1,7 +1,10 @@
|
||||
#include "sprites_AI/geron_norfair.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/geron_norfair.c"
|
||||
#include "globals.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/clipdata.h"
|
||||
|
||||
/**
|
||||
* 40178 | b8 | Geron Norfair AI
|
||||
|
@ -1,8 +1,12 @@
|
||||
#include "sprites_AI/geruta.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/geruta.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* @brief 1ea68 | b0 | Handles the Y movement of a geruta
|
||||
|
@ -1,8 +1,13 @@
|
||||
#include "sprites_AI/glass_tube.h"
|
||||
#include "power_bomb_explosion.h"
|
||||
#include "data/sprites/glass_tube.c"
|
||||
#include "data/data.h"
|
||||
#include "globals.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/event.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
#include "structs/clipdata.h"
|
||||
|
||||
/**
|
||||
* @brief 4627c | 160 | Removes the clipdata for the glass tube
|
||||
|
@ -1,8 +1,17 @@
|
||||
#include "gba.h"
|
||||
#include "sprites_AI/gunship.h"
|
||||
#include "hud.h"
|
||||
#include "data/data.h"
|
||||
#include "sprites_AI/item_banner.h"
|
||||
#include "data/sprites/gunship.c"
|
||||
#include "globals.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/samus.h"
|
||||
#include "structs/connection.h"
|
||||
#include "structs/display.h"
|
||||
#include "structs/game_state.h"
|
||||
#include "structs/hud.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* @brief 44c24 | 84 | Updates the flames palette
|
||||
|
@ -1,8 +1,14 @@
|
||||
#include "sprites_AI/hive.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/hive.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/event.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "structs/bg_clip.h"
|
||||
#include "structs/display.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* @brief 24a10 | 2c | Spawns 2 particle effects
|
||||
@ -838,7 +844,7 @@ void MellowSwarm(void)
|
||||
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||
gCurrentSprite.animationDurationCounter = 0x0;
|
||||
gCurrentSprite.pose = 0x9;
|
||||
if (0x78 < (gSamusData.xPosition >> 0x2) -( gBG1XPosition >> 0x2))
|
||||
if (0x78 < (gSamusData.xPosition >> 0x2) -(gBG1XPosition >> 0x2))
|
||||
gCurrentSprite.status |= SPRITE_STATUS_XFLIP;
|
||||
gCurrentSprite.yPositionSpawn = 0xF0;
|
||||
|
||||
|
@ -1,8 +1,12 @@
|
||||
#include "sprites_AI/holtz.h"
|
||||
#include "data/data.h"
|
||||
#include "data/sprites/holtz.c"
|
||||
#include "data/sprite_data.c"
|
||||
#include "globals.h"
|
||||
#include "constants/particle.h"
|
||||
#include "constants/clipdata.h"
|
||||
#include "constants/sprite.h"
|
||||
#include "constants/sprite_util.h"
|
||||
#include "structs/sprite.h"
|
||||
#include "structs/samus.h"
|
||||
|
||||
/**
|
||||
* @brief 3830c | cc | Handles the Y movement of a holtz
|
||||
@ -168,7 +172,7 @@ void HoltzIdle(void)
|
||||
gCurrentSprite.yPosition += movement;
|
||||
|
||||
// Detect samus
|
||||
if ((i32)(gSamusData.yPosition - 0x48) >= gCurrentSprite.yPosition)
|
||||
if ((gSamusData.yPosition - 0x48) >= gCurrentSprite.yPosition)
|
||||
{
|
||||
nslr = SpriteUtilCheckSamusNearSpriteLeftRight(BLOCK_SIZE * 8, BLOCK_SIZE * 5);
|
||||
if (nslr == NSLR_RIGHT || nslr == NSLR_LEFT)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user