Massive refactor
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,207 @@
|
||||
|
||||
/*====================================================================
|
||||
* os_cont.h
|
||||
*
|
||||
* Copyright 1995, Silicon Graphics, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics,
|
||||
* Inc.; the contents of this file may not be disclosed to third
|
||||
* parties, copied or duplicated in any form, in whole or in part,
|
||||
* without the prior written permission of Silicon Graphics, Inc.
|
||||
*
|
||||
* RESTRICTED RIGHTS LEGEND:
|
||||
* Use, duplication or disclosure by the Government is subject to
|
||||
* restrictions as set forth in subdivision (c)(1)(ii) of the Rights
|
||||
* in Technical Data and Computer Software clause at DFARS
|
||||
* 252.227-7013, and/or in similar or successor clauses in the FAR,
|
||||
* DOD or NASA FAR Supplement. Unpublished - rights reserved under the
|
||||
* Copyright Laws of the United States.
|
||||
*====================================================================*/
|
||||
|
||||
/*---------------------------------------------------------------------*
|
||||
Copyright (C) 1998 Nintendo. (Originated by SGI)
|
||||
|
||||
$RCSfile: os_cont.h,v $
|
||||
$Revision: 1.1 $
|
||||
$Date: 1998/10/09 08:01:05 $
|
||||
*---------------------------------------------------------------------*/
|
||||
|
||||
#ifndef _OS_CONT_H_
|
||||
#define _OS_CONT_H_
|
||||
|
||||
#ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "ultratypes.h"
|
||||
//#include "os_message.h"
|
||||
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Type definitions
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Structure for controllers
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
u16 type; /* Controller Type */
|
||||
u8 status; /* Controller status */
|
||||
u8 errnum;
|
||||
}OSContStatus;
|
||||
|
||||
typedef struct {
|
||||
u16 button;
|
||||
s8 stick_x; /* -80 <= stick_x <= 80 */
|
||||
s8 stick_y; /* -80 <= stick_y <= 80 */
|
||||
u8 errnum;
|
||||
} OSContPad;
|
||||
|
||||
typedef struct {
|
||||
void *address; /* Ram pad Address: 11 bits */
|
||||
u8 databuffer[32]; /* address of the data buffer */
|
||||
u8 addressCrc; /* CRC code for address */
|
||||
u8 dataCrc; /* CRC code for data */
|
||||
u8 errnum;
|
||||
} OSContRamIo;
|
||||
|
||||
|
||||
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Global definitions
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Controllers number
|
||||
*/
|
||||
|
||||
#ifndef _HW_VERSION_1
|
||||
#define MAXCONTROLLERS 4
|
||||
#else
|
||||
#define MAXCONTROLLERS 6
|
||||
#endif
|
||||
|
||||
/* controller errors */
|
||||
#define CONT_NO_RESPONSE_ERROR 0x8
|
||||
#define CONT_OVERRUN_ERROR 0x4
|
||||
#ifdef _HW_VERSION_1
|
||||
#define CONT_FRAME_ERROR 0x2
|
||||
#define CONT_COLLISION_ERROR 0x1
|
||||
#endif
|
||||
|
||||
/* Controller type */
|
||||
|
||||
#define CONT_ABSOLUTE 0x0001
|
||||
#define CONT_RELATIVE 0x0002
|
||||
#define CONT_JOYPORT 0x0004
|
||||
#define CONT_EEPROM 0x8000
|
||||
#define CONT_EEP16K 0x4000
|
||||
#define CONT_TYPE_MASK 0x1f07
|
||||
#define CONT_TYPE_NORMAL 0x0005
|
||||
#define CONT_TYPE_MOUSE 0x0002
|
||||
#define CONT_TYPE_VOICE 0x0100
|
||||
|
||||
/* Controller status */
|
||||
|
||||
#define CONT_CARD_ON 0x01
|
||||
#define CONT_CARD_PULL 0x02
|
||||
#define CONT_ADDR_CRC_ER 0x04
|
||||
#define CONT_EEPROM_BUSY 0x80
|
||||
|
||||
/* Buttons */
|
||||
|
||||
#define CONT_A 0x8000
|
||||
#define CONT_B 0x4000
|
||||
#define CONT_G 0x2000
|
||||
#define CONT_START 0x1000
|
||||
#define CONT_UP 0x0800
|
||||
#define CONT_DOWN 0x0400
|
||||
#define CONT_LEFT 0x0200
|
||||
#define CONT_RIGHT 0x0100
|
||||
#define CONT_L 0x0020
|
||||
#define CONT_R 0x0010
|
||||
#define CONT_E 0x0008
|
||||
#define CONT_D 0x0004
|
||||
#define CONT_C 0x0002
|
||||
#define CONT_F 0x0001
|
||||
|
||||
/* Nintendo's official button names */
|
||||
|
||||
#define A_BUTTON CONT_A
|
||||
#define B_BUTTON CONT_B
|
||||
#define L_TRIG CONT_L
|
||||
#define R_TRIG CONT_R
|
||||
#define Z_TRIG CONT_G
|
||||
#define START_BUTTON CONT_START
|
||||
#define U_JPAD CONT_UP
|
||||
#define L_JPAD CONT_LEFT
|
||||
#define R_JPAD CONT_RIGHT
|
||||
#define D_JPAD CONT_DOWN
|
||||
#define U_CBUTTONS CONT_E
|
||||
#define L_CBUTTONS CONT_C
|
||||
#define R_CBUTTONS CONT_F
|
||||
#define D_CBUTTONS CONT_D
|
||||
|
||||
/* Controller error number */
|
||||
|
||||
#define CONT_ERR_NO_CONTROLLER PFS_ERR_NOPACK /* 1 */
|
||||
#define CONT_ERR_CONTRFAIL CONT_OVERRUN_ERROR /* 4 */
|
||||
#define CONT_ERR_INVALID PFS_ERR_INVALID /* 5 */
|
||||
#define CONT_ERR_DEVICE PFS_ERR_DEVICE /* 11 */
|
||||
#define CONT_ERR_NOT_READY 12
|
||||
#define CONT_ERR_VOICE_MEMORY 13
|
||||
#define CONT_ERR_VOICE_WORD 14
|
||||
#define CONT_ERR_VOICE_NO_RESPONSE 15
|
||||
|
||||
//
|
||||
// #if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
//
|
||||
// /**************************************************************************
|
||||
// *
|
||||
// * Macro definitions
|
||||
// *
|
||||
// */
|
||||
//
|
||||
//
|
||||
// /**************************************************************************
|
||||
// *
|
||||
// * Extern variables
|
||||
// *
|
||||
// */
|
||||
//
|
||||
//
|
||||
// /**************************************************************************
|
||||
// *
|
||||
// * Function prototypes
|
||||
// *
|
||||
// */
|
||||
//
|
||||
// /* Controller interface */
|
||||
//
|
||||
// extern s32 osContInit(OSMesgQueue *, u8 *, OSContStatus *);
|
||||
// extern s32 osContReset(OSMesgQueue *, OSContStatus *);
|
||||
// extern s32 osContStartQuery(OSMesgQueue *);
|
||||
// extern s32 osContStartReadData(OSMesgQueue *);
|
||||
// #ifndef _HW_VERSION_1
|
||||
// extern s32 osContSetCh(u8);
|
||||
// #endif
|
||||
// extern void osContGetQuery(OSContStatus *);
|
||||
// extern void osContGetReadData(OSContPad *);
|
||||
//
|
||||
//
|
||||
// #endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
||||
//
|
||||
// #ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
// }
|
||||
// #endif
|
||||
|
||||
#endif /* !_OS_CONT_H_ */
|
||||
@@ -0,0 +1,44 @@
|
||||
#ifndef _ULTRA64_TYPES_H_
|
||||
#define _ULTRA64_TYPES_H_
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL (void *)0
|
||||
#endif
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
typedef signed char s8;
|
||||
typedef unsigned char u8;
|
||||
typedef signed short int s16;
|
||||
typedef unsigned short int u16;
|
||||
typedef signed int s32;
|
||||
typedef unsigned int u32;
|
||||
typedef signed long long int s64;
|
||||
typedef unsigned long long int u64;
|
||||
|
||||
typedef volatile u8 vu8;
|
||||
typedef volatile u16 vu16;
|
||||
typedef volatile u32 vu32;
|
||||
typedef volatile u64 vu64;
|
||||
typedef volatile s8 vs8;
|
||||
typedef volatile s16 vs16;
|
||||
typedef volatile s32 vs32;
|
||||
typedef volatile s64 vs64;
|
||||
|
||||
typedef float f32;
|
||||
typedef double f64;
|
||||
|
||||
#ifdef TARGET_N64
|
||||
typedef u32 size_t;
|
||||
typedef s32 ssize_t;
|
||||
typedef u32 uintptr_t;
|
||||
typedef s32 intptr_t;
|
||||
typedef s32 ptrdiff_t;
|
||||
#else
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
typedef ptrdiff_t ssize_t;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,561 @@
|
||||
#ifndef AUDIO_DEFINES_H
|
||||
#define AUDIO_DEFINES_H
|
||||
|
||||
// Sound Magic Definition:
|
||||
// First Byte (Upper Nibble): Sound Bank (not the same as audio bank!)
|
||||
// First Byte (Lower Nibble): Bitflags for audio playback?
|
||||
// Second Byte: Sound ID
|
||||
// Third Byte: Priority
|
||||
// Fourth Byte (Upper Nibble): More bitflags
|
||||
// Fourth Byte (Lower Nibble): Sound Status (this is set to SOUND_STATUS_PLAYING when passed to the audio driver.)
|
||||
#define SOUND_ARG_LOAD(bank, playFlags, soundID, priority, flags2) (((u32) (bank) << 28) | \
|
||||
((u32) (playFlags) << 24) | ((u32) (soundID) << 16) | ((u32) (priority) << 8) | \
|
||||
((u32) (flags2) << 4) | SOUND_STATUS_STARTING)
|
||||
|
||||
#define SOUNDARGS_MASK_BANK 0xF0000000
|
||||
#define SOUNDARGS_MASK_SOUNDID 0x00FF0000
|
||||
#define SOUNDARGS_MASK_PRIORITY 0x0000FF00
|
||||
#define SOUNDARGS_MASK_STATUS 0x0000000F
|
||||
|
||||
#define SOUNDARGS_SHIFT_BANK 28
|
||||
#define SOUNDARGS_SHIFT_SOUNDID 16
|
||||
#define SOUNDARGS_SHIFT_PRIORITY 8
|
||||
|
||||
/* Audio Status */
|
||||
#define SOUND_STATUS_STOPPED 0
|
||||
#define SOUND_STATUS_STARTING 1
|
||||
#define SOUND_STATUS_PLAYING 2
|
||||
|
||||
/* Audio lower bitflags. TODO: Figure out what these mean and use them below. */
|
||||
#define SOUND_LO_BITFLAG_UNK1 0x10 // fade in?
|
||||
#define SOUND_NO_ECHO 0x20 // not in JP
|
||||
#define SOUND_LO_BITFLAG_UNK8 0x80 // restart playing on each play_sound call?
|
||||
|
||||
/* Audio playback bitflags. */
|
||||
#define SOUND_NO_VOLUME_LOSS 0x1000000 // No volume loss with distance
|
||||
#define SOUND_VIBRATO 0x2000000 // Randomly alter frequency each audio frame
|
||||
#define SOUND_NO_PRIORITY_LOSS 0x4000000 // Do not prioritize closer sounds
|
||||
#define SOUND_NO_FREQUENCY_LOSS 0x8000000 // Frequency scale does not change with distance
|
||||
|
||||
// silence
|
||||
#define NO_SOUND 0
|
||||
|
||||
/**
|
||||
* The table below defines all sounds that exist in the game, and which flags
|
||||
* they are used with. If a sound is used with multiple sets of flags (e.g.
|
||||
* different priorities), they are gives distinguishing suffixes.
|
||||
* A _2 suffix means the sound is the same despite a different sound ID.
|
||||
* Some sounds are unused by the game, and given as hexadecimal literals rather
|
||||
* than SOUND_ARG_LOAD calls.
|
||||
*/
|
||||
|
||||
/* Terrain sounds */
|
||||
|
||||
/**
|
||||
* Terrain-dependent action sounds. mario_get_terrain_sound_addend computes a
|
||||
* sound terrain type between 0 and 7, depending on the terrain type of the
|
||||
* level and the floor type that Mario is standing on. That value is then added
|
||||
* to the sound ID for the TERRAIN_* sounds.
|
||||
*/
|
||||
#define SOUND_TERRAIN_DEFAULT 0 // e.g. air
|
||||
#define SOUND_TERRAIN_GRASS 1
|
||||
#define SOUND_TERRAIN_WATER 2
|
||||
#define SOUND_TERRAIN_STONE 3
|
||||
#define SOUND_TERRAIN_SPOOKY 4 // squeaky floor
|
||||
#define SOUND_TERRAIN_SNOW 5
|
||||
#define SOUND_TERRAIN_ICE 6
|
||||
#define SOUND_TERRAIN_SAND 7
|
||||
|
||||
#define SOUND_ACTION_TERRAIN_JUMP SOUND_ARG_LOAD(0, 4, 0x00, 0x80, 8)
|
||||
#define SOUND_ACTION_TERRAIN_LANDING SOUND_ARG_LOAD(0, 4, 0x08, 0x80, 8)
|
||||
#define SOUND_ACTION_TERRAIN_STEP SOUND_ARG_LOAD(0, 6, 0x10, 0x80, 8)
|
||||
#define SOUND_ACTION_TERRAIN_BODY_HIT_GROUND SOUND_ARG_LOAD(0, 4, 0x18, 0x80, 8)
|
||||
#define SOUND_ACTION_TERRAIN_STEP_TIPTOE SOUND_ARG_LOAD(0, 6, 0x20, 0x80, 8)
|
||||
#define SOUND_ACTION_TERRAIN_STUCK_IN_GROUND SOUND_ARG_LOAD(0, 4, 0x48, 0x80, 8)
|
||||
#define SOUND_ACTION_TERRAIN_HEAVY_LANDING SOUND_ARG_LOAD(0, 4, 0x60, 0x80, 8)
|
||||
|
||||
#define SOUND_ACTION_METAL_JUMP SOUND_ARG_LOAD(0, 4, 0x28, 0x90, 8)
|
||||
#define SOUND_ACTION_METAL_LANDING SOUND_ARG_LOAD(0, 4, 0x29, 0x90, 8)
|
||||
#define SOUND_ACTION_METAL_STEP SOUND_ARG_LOAD(0, 4, 0x2A, 0x90, 8)
|
||||
#define SOUND_ACTION_METAL_HEAVY_LANDING SOUND_ARG_LOAD(0, 4, 0x2B, 0x90, 8)
|
||||
#define SOUND_ACTION_CLAP_HANDS_COLD SOUND_ARG_LOAD(0, 6, 0x2C, 0x00, 8)
|
||||
#define SOUND_ACTION_HANGING_STEP SOUND_ARG_LOAD(0, 4, 0x2D, 0xA0, 8)
|
||||
#define SOUND_ACTION_QUICKSAND_STEP SOUND_ARG_LOAD(0, 4, 0x2E, 0x00, 8)
|
||||
#define SOUND_ACTION_METAL_STEP_TIPTOE SOUND_ARG_LOAD(0, 4, 0x2F, 0x90, 8)
|
||||
/* not verified */ #define SOUND_ACTION_UNKNOWN430 SOUND_ARG_LOAD(0, 4, 0x30, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_ACTION_UNKNOWN431 SOUND_ARG_LOAD(0, 4, 0x31, 0x60, 8)
|
||||
/* not verified */ #define SOUND_ACTION_UNKNOWN432 SOUND_ARG_LOAD(0, 4, 0x32, 0x80, 8)
|
||||
#define SOUND_ACTION_SWIM SOUND_ARG_LOAD(0, 4, 0x33, 0x80, 8)
|
||||
/* not verified */ #define SOUND_ACTION_UNKNOWN434 SOUND_ARG_LOAD(0, 4, 0x34, 0x80, 8)
|
||||
#define SOUND_ACTION_THROW SOUND_ARG_LOAD(0, 4, 0x35, 0x80, 8)
|
||||
#define SOUND_ACTION_KEY_SWISH SOUND_ARG_LOAD(0, 4, 0x36, 0x80, 8)
|
||||
#define SOUND_ACTION_SPIN SOUND_ARG_LOAD(0, 4, 0x37, 0x80, 8)
|
||||
#define SOUND_ACTION_TWIRL SOUND_ARG_LOAD(0, 4, 0x38, 0x80, 8) // same sound as spin
|
||||
/* not verified */ #define SOUND_ACTION_CLIMB_UP_TREE SOUND_ARG_LOAD(0, 4, 0x3A, 0x80, 8)
|
||||
/* not verified */ #define SOUND_ACTION_CLIMB_DOWN_TREE 0x003B
|
||||
/* not verified */ #define SOUND_ACTION_UNK3C 0x003C
|
||||
/* not verified */ #define SOUND_ACTION_UNKNOWN43D SOUND_ARG_LOAD(0, 4, 0x3D, 0x80, 8)
|
||||
/* not verified */ #define SOUND_ACTION_UNKNOWN43E SOUND_ARG_LOAD(0, 4, 0x3E, 0x80, 8)
|
||||
/* not verified */ #define SOUND_ACTION_PAT_BACK SOUND_ARG_LOAD(0, 4, 0x3F, 0x80, 8)
|
||||
#define SOUND_ACTION_BRUSH_HAIR SOUND_ARG_LOAD(0, 4, 0x40, 0x80, 8)
|
||||
/* not verified */ #define SOUND_ACTION_CLIMB_UP_POLE SOUND_ARG_LOAD(0, 4, 0x41, 0x80, 8)
|
||||
#define SOUND_ACTION_METAL_BONK SOUND_ARG_LOAD(0, 4, 0x42, 0x80, 8)
|
||||
#define SOUND_ACTION_UNSTUCK_FROM_GROUND SOUND_ARG_LOAD(0, 4, 0x43, 0x80, 8)
|
||||
/* not verified */ #define SOUND_ACTION_HIT SOUND_ARG_LOAD(0, 4, 0x44, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_ACTION_HIT_2 SOUND_ARG_LOAD(0, 4, 0x44, 0xB0, 8)
|
||||
/* not verified */ #define SOUND_ACTION_HIT_3 SOUND_ARG_LOAD(0, 4, 0x44, 0xA0, 8)
|
||||
#define SOUND_ACTION_BONK SOUND_ARG_LOAD(0, 4, 0x45, 0xA0, 8)
|
||||
#define SOUND_ACTION_SHRINK_INTO_BBH SOUND_ARG_LOAD(0, 4, 0x46, 0xA0, 8)
|
||||
#define SOUND_ACTION_SWIM_FAST SOUND_ARG_LOAD(0, 4, 0x47, 0xA0, 8)
|
||||
#define SOUND_ACTION_METAL_JUMP_WATER SOUND_ARG_LOAD(0, 4, 0x50, 0x90, 8)
|
||||
#define SOUND_ACTION_METAL_LAND_WATER SOUND_ARG_LOAD(0, 4, 0x51, 0x90, 8)
|
||||
#define SOUND_ACTION_METAL_STEP_WATER SOUND_ARG_LOAD(0, 4, 0x52, 0x90, 8)
|
||||
/* not verified */ #define SOUND_ACTION_UNK53 0x0053
|
||||
/* not verified */ #define SOUND_ACTION_UNK54 0x0054
|
||||
/* not verified */ #define SOUND_ACTION_UNK55 0x0055
|
||||
/* not verified */ #define SOUND_ACTION_FLYING_FAST SOUND_ARG_LOAD(0, 4, 0x56, 0x80, 8) // "swoop"?
|
||||
#define SOUND_ACTION_TELEPORT SOUND_ARG_LOAD(0, 4, 0x57, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_ACTION_UNKNOWN458 SOUND_ARG_LOAD(0, 4, 0x58, 0xA0, 8)
|
||||
/* not verified */ #define SOUND_ACTION_BOUNCE_OFF_OBJECT SOUND_ARG_LOAD(0, 4, 0x59, 0xB0, 8)
|
||||
/* not verified */ #define SOUND_ACTION_SIDE_FLIP_UNK SOUND_ARG_LOAD(0, 4, 0x5A, 0x80, 8)
|
||||
#define SOUND_ACTION_READ_SIGN SOUND_ARG_LOAD(0, 4, 0x5B, 0xFF, 8)
|
||||
/* not verified */ #define SOUND_ACTION_UNKNOWN45C SOUND_ARG_LOAD(0, 4, 0x5C, 0x80, 8)
|
||||
/* not verified */ #define SOUND_ACTION_UNK5D 0x005D
|
||||
/* not verified */ #define SOUND_ACTION_INTRO_UNK45E SOUND_ARG_LOAD(0, 4, 0x5E, 0x80, 8)
|
||||
/* not verified */ #define SOUND_ACTION_INTRO_UNK45F SOUND_ARG_LOAD(0, 4, 0x5F, 0x80, 8)
|
||||
|
||||
/* Moving Sound Effects */
|
||||
|
||||
// Terrain-dependent moving sounds; a value 0-7 is added to the sound ID before
|
||||
// playing. See higher up for the different terrain types.
|
||||
#define SOUND_MOVING_TERRAIN_SLIDE SOUND_ARG_LOAD(1, 4, 0x00, 0x00, 0)
|
||||
#define SOUND_MOVING_TERRAIN_RIDING_SHELL SOUND_ARG_LOAD(1, 4, 0x20, 0x00, 0)
|
||||
|
||||
#define SOUND_MOVING_LAVA_BURN SOUND_ARG_LOAD(1, 4, 0x10, 0x00, 0) // ?
|
||||
#define SOUND_MOVING_SLIDE_DOWN_POLE SOUND_ARG_LOAD(1, 4, 0x11, 0x00, 0) // ?
|
||||
#define SOUND_MOVING_SLIDE_DOWN_TREE SOUND_ARG_LOAD(1, 4, 0x12, 0x80, 0)
|
||||
#define SOUND_MOVING_QUICKSAND_DEATH SOUND_ARG_LOAD(1, 4, 0x14, 0x00, 0)
|
||||
#define SOUND_MOVING_SHOCKED SOUND_ARG_LOAD(1, 4, 0x16, 0x00, 0)
|
||||
#define SOUND_MOVING_FLYING SOUND_ARG_LOAD(1, 4, 0x17, 0x00, 0)
|
||||
#define SOUND_MOVING_ALMOST_DROWNING SOUND_ARG_LOAD(1, 0xC, 0x18, 0x00, 0)
|
||||
#define SOUND_MOVING_AIM_CANNON SOUND_ARG_LOAD(1, 0xD, 0x19, 0x20, 0)
|
||||
#define SOUND_MOVING_UNK1A 0x101A // ?
|
||||
#define SOUND_MOVING_RIDING_SHELL_LAVA SOUND_ARG_LOAD(1, 4, 0x28, 0x00, 0)
|
||||
|
||||
/* Mario Sound Effects */
|
||||
// A random number 0-2 is added to the sound ID before playing, producing Yah/Wah/Hoo
|
||||
#define SOUND_MARIO_YAH_WAH_HOO SOUND_ARG_LOAD(2, 4, 0x00, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_HOOHOO SOUND_ARG_LOAD(2, 4, 0x03, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_YAHOO SOUND_ARG_LOAD(2, 4, 0x04, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_UH SOUND_ARG_LOAD(2, 4, 0x05, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_HRMM SOUND_ARG_LOAD(2, 4, 0x06, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_WAH2 SOUND_ARG_LOAD(2, 4, 0x07, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_WHOA SOUND_ARG_LOAD(2, 4, 0x08, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_MARIO_EEUH SOUND_ARG_LOAD(2, 4, 0x09, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_ATTACKED SOUND_ARG_LOAD(2, 4, 0x0A, 0xFF, 8)
|
||||
/* not verified */ #define SOUND_MARIO_OOOF SOUND_ARG_LOAD(2, 4, 0x0B, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_OOOF2 SOUND_ARG_LOAD(2, 4, 0x0B, 0xD0, 8)
|
||||
#define SOUND_MARIO_HERE_WE_GO SOUND_ARG_LOAD(2, 4, 0x0C, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_YAWNING SOUND_ARG_LOAD(2, 4, 0x0D, 0x80, 8)
|
||||
#define SOUND_MARIO_SNORING1 SOUND_ARG_LOAD(2, 4, 0x0E, 0x80, 8)
|
||||
#define SOUND_MARIO_SNORING2 SOUND_ARG_LOAD(2, 4, 0x0F, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_WAAAOOOW SOUND_ARG_LOAD(2, 4, 0x10, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_MARIO_HAHA SOUND_ARG_LOAD(2, 4, 0x11, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_HAHA_2 SOUND_ARG_LOAD(2, 4, 0x11, 0xF0, 8)
|
||||
/* not verified */ #define SOUND_MARIO_UH2 SOUND_ARG_LOAD(2, 4, 0x13, 0xD0, 8)
|
||||
/* not verified */ #define SOUND_MARIO_UH2_2 SOUND_ARG_LOAD(2, 4, 0x13, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MARIO_ON_FIRE SOUND_ARG_LOAD(2, 4, 0x14, 0xA0, 8)
|
||||
/* not verified */ #define SOUND_MARIO_DYING SOUND_ARG_LOAD(2, 4, 0x15, 0xFF, 8)
|
||||
#define SOUND_MARIO_PANTING_COLD SOUND_ARG_LOAD(2, 4, 0x16, 0x80, 8)
|
||||
|
||||
// A random number 0-2 is added to the sound ID before playing
|
||||
#define SOUND_MARIO_PANTING SOUND_ARG_LOAD(2, 4, 0x18, 0x80, 8)
|
||||
|
||||
#define SOUND_MARIO_COUGHING1 SOUND_ARG_LOAD(2, 4, 0x1B, 0x80, 8)
|
||||
#define SOUND_MARIO_COUGHING2 SOUND_ARG_LOAD(2, 4, 0x1C, 0x80, 8)
|
||||
#define SOUND_MARIO_COUGHING3 SOUND_ARG_LOAD(2, 4, 0x1D, 0x80, 8)
|
||||
#define SOUND_MARIO_PUNCH_YAH SOUND_ARG_LOAD(2, 4, 0x1E, 0x80, 8)
|
||||
#define SOUND_MARIO_PUNCH_HOO SOUND_ARG_LOAD(2, 4, 0x1F, 0x80, 8)
|
||||
#define SOUND_MARIO_MAMA_MIA SOUND_ARG_LOAD(2, 4, 0x20, 0x80, 8)
|
||||
#define SOUND_MARIO_OKEY_DOKEY 0x2021
|
||||
#define SOUND_MARIO_GROUND_POUND_WAH SOUND_ARG_LOAD(2, 4, 0x22, 0x80, 8)
|
||||
#define SOUND_MARIO_DROWNING SOUND_ARG_LOAD(2, 4, 0x23, 0xF0, 8)
|
||||
#define SOUND_MARIO_PUNCH_WAH SOUND_ARG_LOAD(2, 4, 0x24, 0x80, 8)
|
||||
|
||||
/* Mario Sound Effects (US/EU only) */
|
||||
#define SOUND_PEACH_DEAR_MARIO SOUND_ARG_LOAD(2, 4, 0x28, 0xFF, 8)
|
||||
|
||||
// A random number 0-4 is added to the sound ID before playing, producing one of
|
||||
// Yahoo! (60% chance), Waha! (20%), or Yippee! (20%).
|
||||
#define SOUND_MARIO_YAHOO_WAHA_YIPPEE SOUND_ARG_LOAD(2, 4, 0x2B, 0x80, 8)
|
||||
|
||||
#define SOUND_MARIO_DOH SOUND_ARG_LOAD(2, 4, 0x30, 0x80, 8)
|
||||
#define SOUND_MARIO_GAME_OVER SOUND_ARG_LOAD(2, 4, 0x31, 0xFF, 8)
|
||||
#define SOUND_MARIO_HELLO SOUND_ARG_LOAD(2, 4, 0x32, 0xFF, 8)
|
||||
#define SOUND_MARIO_PRESS_START_TO_PLAY SOUND_ARG_LOAD(2, 4, 0x33, 0xFF, 0xA)
|
||||
#define SOUND_MARIO_TWIRL_BOUNCE SOUND_ARG_LOAD(2, 4, 0x34, 0x80, 8)
|
||||
#define SOUND_MARIO_SNORING3 SOUND_ARG_LOAD(2, 4, 0x35, 0xFF, 8)
|
||||
#define SOUND_MARIO_SO_LONGA_BOWSER SOUND_ARG_LOAD(2, 4, 0x36, 0x80, 8)
|
||||
#define SOUND_MARIO_IMA_TIRED SOUND_ARG_LOAD(2, 4, 0x37, 0x80, 8)
|
||||
|
||||
/* Princess Peach Sound Effects (US/EU only) */
|
||||
#define SOUND_PEACH_MARIO SOUND_ARG_LOAD(2, 4, 0x38, 0xFF, 8)
|
||||
#define SOUND_PEACH_POWER_OF_THE_STARS SOUND_ARG_LOAD(2, 4, 0x39, 0xFF, 8)
|
||||
#define SOUND_PEACH_THANKS_TO_YOU SOUND_ARG_LOAD(2, 4, 0x3A, 0xFF, 8)
|
||||
#define SOUND_PEACH_THANK_YOU_MARIO SOUND_ARG_LOAD(2, 4, 0x3B, 0xFF, 8)
|
||||
#define SOUND_PEACH_SOMETHING_SPECIAL SOUND_ARG_LOAD(2, 4, 0x3C, 0xFF, 8)
|
||||
#define SOUND_PEACH_BAKE_A_CAKE SOUND_ARG_LOAD(2, 4, 0x3D, 0xFF, 8)
|
||||
#define SOUND_PEACH_FOR_MARIO SOUND_ARG_LOAD(2, 4, 0x3E, 0xFF, 8)
|
||||
#define SOUND_PEACH_MARIO2 SOUND_ARG_LOAD(2, 4, 0x3F, 0xFF, 8)
|
||||
|
||||
/* General Sound Effects */
|
||||
#define SOUND_GENERAL_ACTIVATE_CAP_SWITCH SOUND_ARG_LOAD(3, 0, 0x00, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_FLAME_OUT SOUND_ARG_LOAD(3, 0, 0x03, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_OPEN_WOOD_DOOR SOUND_ARG_LOAD(3, 0, 0x04, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_CLOSE_WOOD_DOOR SOUND_ARG_LOAD(3, 0, 0x05, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_OPEN_IRON_DOOR SOUND_ARG_LOAD(3, 0, 0x06, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_CLOSE_IRON_DOOR SOUND_ARG_LOAD(3, 0, 0x07, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BUBBLES 0x3008
|
||||
/* not verified */ #define SOUND_GENERAL_MOVING_WATER SOUND_ARG_LOAD(3, 0, 0x09, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_SWISH_WATER SOUND_ARG_LOAD(3, 0, 0x0A, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_QUIET_BUBBLE SOUND_ARG_LOAD(3, 0, 0x0B, 0x00, 8)
|
||||
#define SOUND_GENERAL_VOLCANO_EXPLOSION SOUND_ARG_LOAD(3, 0, 0x0C, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_QUIET_BUBBLE2 SOUND_ARG_LOAD(3, 0, 0x0D, 0x00, 8)
|
||||
#define SOUND_GENERAL_CASTLE_TRAP_OPEN SOUND_ARG_LOAD(3, 0, 0x0E, 0x80, 8)
|
||||
#define SOUND_GENERAL_WALL_EXPLOSION SOUND_ARG_LOAD(3, 0, 0x0F, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_COIN SOUND_ARG_LOAD(3, 8, 0x11, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_COIN_WATER SOUND_ARG_LOAD(3, 8, 0x12, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_SHORT_STAR SOUND_ARG_LOAD(3, 0, 0x16, 0x00, 9)
|
||||
/* not verified */ #define SOUND_GENERAL_BIG_CLOCK SOUND_ARG_LOAD(3, 0, 0x17, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_LOUD_POUND 0x3018 // _TERRAIN?
|
||||
/* not verified */ #define SOUND_GENERAL_LOUD_POUND2 0x3019
|
||||
/* not verified */ #define SOUND_GENERAL_SHORT_POUND1 0x301A
|
||||
/* not verified */ #define SOUND_GENERAL_SHORT_POUND2 0x301B
|
||||
/* not verified */ #define SOUND_GENERAL_SHORT_POUND3 0x301C
|
||||
/* not verified */ #define SOUND_GENERAL_SHORT_POUND4 0x301D
|
||||
/* not verified */ #define SOUND_GENERAL_SHORT_POUND5 0x301E
|
||||
/* not verified */ #define SOUND_GENERAL_SHORT_POUND6 0x301F
|
||||
#define SOUND_GENERAL_OPEN_CHEST SOUND_ARG_LOAD(3, 1, 0x20, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_CLAM_SHELL1 SOUND_ARG_LOAD(3, 1, 0x22, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOX_LANDING SOUND_ARG_LOAD(3, 0, 0x24, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOX_LANDING_2 SOUND_ARG_LOAD(3, 2, 0x24, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNKNOWN1 SOUND_ARG_LOAD(3, 0, 0x25, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNKNOWN1_2 SOUND_ARG_LOAD(3, 2, 0x25, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_CLAM_SHELL2 SOUND_ARG_LOAD(3, 0, 0x26, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_CLAM_SHELL3 SOUND_ARG_LOAD(3, 0, 0x27, 0x40, 8)
|
||||
#ifdef VERSION_JP
|
||||
#define SOUND_GENERAL_PAINTING_EJECT SOUND_ARG_LOAD(3, 8, 0x28, 0x00, 8)
|
||||
#else
|
||||
#define SOUND_GENERAL_PAINTING_EJECT SOUND_ARG_LOAD(3, 9, 0x28, 0x00, 8)
|
||||
#endif
|
||||
#define SOUND_GENERAL_LEVEL_SELECT_CHANGE SOUND_ARG_LOAD(3, 0, 0x2B, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_PLATFORM SOUND_ARG_LOAD(3, 0, 0x2D, 0x80, 8)
|
||||
#define SOUND_GENERAL_DONUT_PLATFORM_EXPLOSION SOUND_ARG_LOAD(3, 0, 0x2E, 0x20, 8)
|
||||
#define SOUND_GENERAL_BOWSER_BOMB_EXPLOSION SOUND_ARG_LOAD(3, 1, 0x2F, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_COIN_SPURT SOUND_ARG_LOAD(3, 0, 0x30, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_COIN_SPURT_2 SOUND_ARG_LOAD(3, 8, 0x30, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_COIN_SPURT_EU SOUND_ARG_LOAD(3, 8, 0x30, 0x20, 8)
|
||||
|
||||
/* not verified */ #define SOUND_GENERAL_EXPLOSION6 0x3031
|
||||
/* not verified */ #define SOUND_GENERAL_UNK32 0x3032
|
||||
/* not verified */ #define SOUND_GENERAL_BOAT_TILT1 SOUND_ARG_LOAD(3, 0, 0x34, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOAT_TILT2 SOUND_ARG_LOAD(3, 0, 0x35, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_COIN_DROP SOUND_ARG_LOAD(3, 0, 0x36, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNKNOWN3_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x37, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNKNOWN3 SOUND_ARG_LOAD(3, 0, 0x37, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNKNOWN3_2 SOUND_ARG_LOAD(3, 8, 0x37, 0x80, 8)
|
||||
#define SOUND_GENERAL_PENDULUM_SWING SOUND_ARG_LOAD(3, 0, 0x38, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_CHAIN_CHOMP1 SOUND_ARG_LOAD(3, 0, 0x39, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_CHAIN_CHOMP2 SOUND_ARG_LOAD(3, 0, 0x3A, 0x00, 8)
|
||||
#define SOUND_GENERAL_DOOR_TURN_KEY SOUND_ARG_LOAD(3, 0, 0x3B, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_MOVING_IN_SAND SOUND_ARG_LOAD(3, 0, 0x3C, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNKNOWN4_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x3D, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNKNOWN4 SOUND_ARG_LOAD(3, 0, 0x3D, 0x80, 8)
|
||||
#define SOUND_GENERAL_MOVING_PLATFORM_SWITCH SOUND_ARG_LOAD(3, 0, 0x3E, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_CAGE_OPEN SOUND_ARG_LOAD(3, 0, 0x3F, 0xA0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_QUIET_POUND1_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x40, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_QUIET_POUND1 SOUND_ARG_LOAD(3, 0, 0x40, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BREAK_BOX SOUND_ARG_LOAD(3, 0, 0x41, 0xC0, 8)
|
||||
#define SOUND_GENERAL_DOOR_INSERT_KEY SOUND_ARG_LOAD(3, 0, 0x42, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_QUIET_POUND2 SOUND_ARG_LOAD(3, 0, 0x43, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BIG_POUND SOUND_ARG_LOAD(3, 0, 0x44, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNK45 SOUND_ARG_LOAD(3, 0, 0x45, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNK46_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x46, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_UNK46 SOUND_ARG_LOAD(3, 0, 0x46, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_CANNON_UP SOUND_ARG_LOAD(3, 0, 0x47, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_GRINDEL_ROLL SOUND_ARG_LOAD(3, 0, 0x48, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_EXPLOSION7 0x3049
|
||||
/* not verified */ #define SOUND_GENERAL_SHAKE_COFFIN 0x304A
|
||||
/* not verified */ #define SOUND_GENERAL_RACE_GUN_SHOT SOUND_ARG_LOAD(3, 1, 0x4D, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_STAR_DOOR_OPEN SOUND_ARG_LOAD(3, 0, 0x4E, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_STAR_DOOR_CLOSE SOUND_ARG_LOAD(3, 0, 0x4F, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_POUND_ROCK SOUND_ARG_LOAD(3, 0, 0x56, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_STAR_APPEARS SOUND_ARG_LOAD(3, 0, 0x57, 0xFF, 9)
|
||||
#define SOUND_GENERAL_COLLECT_1UP SOUND_ARG_LOAD(3, 0, 0x58, 0xFF, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BUTTON_PRESS_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x5A, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BUTTON_PRESS SOUND_ARG_LOAD(3, 0, 0x5A, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BUTTON_PRESS_2_LOWPRIO SOUND_ARG_LOAD(3, 1, 0x5A, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BUTTON_PRESS_2 SOUND_ARG_LOAD(3, 1, 0x5A, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_ELEVATOR_MOVE SOUND_ARG_LOAD(3, 0, 0x5B, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_ELEVATOR_MOVE_2 SOUND_ARG_LOAD(3, 1, 0x5B, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_SWISH_AIR SOUND_ARG_LOAD(3, 0, 0x5C, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_SWISH_AIR_2 SOUND_ARG_LOAD(3, 1, 0x5C, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_HAUNTED_CHAIR SOUND_ARG_LOAD(3, 0, 0x5D, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_SOFT_LANDING SOUND_ARG_LOAD(3, 0, 0x5E, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_HAUNTED_CHAIR_MOVE SOUND_ARG_LOAD(3, 0, 0x5F, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOWSER_PLATFORM SOUND_ARG_LOAD(3, 0, 0x62, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOWSER_PLATFORM_2 SOUND_ARG_LOAD(3, 1, 0x62, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_HEART_SPIN SOUND_ARG_LOAD(3, 0, 0x64, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_POUND_WOOD_POST SOUND_ARG_LOAD(3, 0, 0x65, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_WATER_LEVEL_TRIG SOUND_ARG_LOAD(3, 0, 0x66, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_SWITCH_DOOR_OPEN SOUND_ARG_LOAD(3, 0, 0x67, 0xA0, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_RED_COIN SOUND_ARG_LOAD(3, 0, 0x68, 0x90, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BIRDS_FLY_AWAY SOUND_ARG_LOAD(3, 0, 0x69, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_METAL_POUND SOUND_ARG_LOAD(3, 0, 0x6B, 0x80, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOING1 SOUND_ARG_LOAD(3, 0, 0x6C, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOING2_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x6D, 0x20, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOING2 SOUND_ARG_LOAD(3, 0, 0x6D, 0x40, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_YOSHI_WALK SOUND_ARG_LOAD(3, 0, 0x6E, 0x20, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_ENEMY_ALERT1 SOUND_ARG_LOAD(3, 0, 0x6F, 0x30, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_YOSHI_TALK SOUND_ARG_LOAD(3, 0, 0x70, 0x30, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_SPLATTERING SOUND_ARG_LOAD(3, 0, 0x71, 0x30, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOING3 0x3072
|
||||
/* not verified */ #define SOUND_GENERAL_GRAND_STAR SOUND_ARG_LOAD(3, 0, 0x73, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_GRAND_STAR_JUMP SOUND_ARG_LOAD(3, 0, 0x74, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_BOAT_ROCK SOUND_ARG_LOAD(3, 0, 0x75, 0x00, 8)
|
||||
/* not verified */ #define SOUND_GENERAL_VANISH_SFX SOUND_ARG_LOAD(3, 0, 0x76, 0x20, 8)
|
||||
|
||||
/* Environment Sound Effects */
|
||||
/* not verified */ #define SOUND_ENV_WATERFALL1 SOUND_ARG_LOAD(4, 0, 0x00, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_WATERFALL2 SOUND_ARG_LOAD(4, 0, 0x01, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_ELEVATOR1 SOUND_ARG_LOAD(4, 0, 0x02, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_DRONING1 SOUND_ARG_LOAD(4, 1, 0x03, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_DRONING2 SOUND_ARG_LOAD(4, 0, 0x04, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_WIND1 SOUND_ARG_LOAD(4, 0, 0x05, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_MOVING_SAND_SNOW 0x4006
|
||||
/* not verified */ #define SOUND_ENV_UNK07 0x4007
|
||||
/* not verified */ #define SOUND_ENV_ELEVATOR2 SOUND_ARG_LOAD(4, 0, 0x08, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_WATER SOUND_ARG_LOAD(4, 0, 0x09, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_UNKNOWN2 SOUND_ARG_LOAD(4, 0, 0x0A, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_BOAT_ROCKING1 SOUND_ARG_LOAD(4, 0, 0x0B, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_ELEVATOR3 SOUND_ARG_LOAD(4, 0, 0x0C, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_ELEVATOR4 SOUND_ARG_LOAD(4, 0, 0x0D, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_ELEVATOR4_2 SOUND_ARG_LOAD(4, 1, 0x0D, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_MOVINGSAND SOUND_ARG_LOAD(4, 0, 0x0E, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_MERRY_GO_ROUND_CREAKING SOUND_ARG_LOAD(4, 0, 0x0F, 0x40, 0)
|
||||
/* not verified */ #define SOUND_ENV_WIND2 SOUND_ARG_LOAD(4, 0, 0x10, 0x80, 0)
|
||||
/* not verified */ #define SOUND_ENV_UNK12 0x4012
|
||||
/* not verified */ #define SOUND_ENV_SLIDING SOUND_ARG_LOAD(4, 0, 0x13, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_STAR SOUND_ARG_LOAD(4, 0, 0x14, 0x00, 1)
|
||||
/* not verified */ #define SOUND_ENV_UNKNOWN4 SOUND_ARG_LOAD(4, 1, 0x15, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_WATER_DRAIN SOUND_ARG_LOAD(4, 1, 0x16, 0x00, 0)
|
||||
/* not verified */ #define SOUND_ENV_METAL_BOX_PUSH SOUND_ARG_LOAD(4, 0, 0x17, 0x80, 0)
|
||||
/* not verified */ #define SOUND_ENV_SINK_QUICKSAND SOUND_ARG_LOAD(4, 0, 0x18, 0x80, 0)
|
||||
|
||||
/* Object Sound Effects */
|
||||
#define SOUND_OBJ_SUSHI_SHARK_WATER_SOUND SOUND_ARG_LOAD(5, 0, 0x00, 0x80, 8)
|
||||
#define SOUND_OBJ_MRI_SHOOT SOUND_ARG_LOAD(5, 0, 0x01, 0x00, 8)
|
||||
#define SOUND_OBJ_BABY_PENGUIN_WALK SOUND_ARG_LOAD(5, 0, 0x02, 0x00, 8)
|
||||
#define SOUND_OBJ_BOWSER_WALK SOUND_ARG_LOAD(5, 0, 0x03, 0x00, 8)
|
||||
#define SOUND_OBJ_BOWSER_TAIL_PICKUP SOUND_ARG_LOAD(5, 0, 0x05, 0x00, 8)
|
||||
#define SOUND_OBJ_BOWSER_DEFEATED SOUND_ARG_LOAD(5, 0, 0x06, 0x00, 8)
|
||||
#define SOUND_OBJ_BOWSER_SPINNING SOUND_ARG_LOAD(5, 0, 0x07, 0x00, 8)
|
||||
#define SOUND_OBJ_BOWSER_INHALING SOUND_ARG_LOAD(5, 0, 0x08, 0x00, 8)
|
||||
#define SOUND_OBJ_BIG_PENGUIN_WALK SOUND_ARG_LOAD(5, 0, 0x09, 0x80, 8)
|
||||
#define SOUND_OBJ_BOO_BOUNCE_TOP SOUND_ARG_LOAD(5, 0, 0x0A, 0x00, 8)
|
||||
#define SOUND_OBJ_BOO_LAUGH_SHORT SOUND_ARG_LOAD(5, 0, 0x0B, 0x00, 8)
|
||||
#define SOUND_OBJ_THWOMP SOUND_ARG_LOAD(5, 0, 0x0C, 0xA0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_CANNON1 SOUND_ARG_LOAD(5, 0, 0x0D, 0xF0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_CANNON2 SOUND_ARG_LOAD(5, 0, 0x0E, 0xF0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_CANNON3 SOUND_ARG_LOAD(5, 0, 0x0F, 0xF0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_JUMP_WALK_WATER 0x5012
|
||||
/* not verified */ #define SOUND_OBJ_UNKNOWN2 SOUND_ARG_LOAD(5, 0, 0x13, 0x00, 8)
|
||||
#define SOUND_OBJ_MRI_DEATH SOUND_ARG_LOAD(5, 0, 0x14, 0x00, 8)
|
||||
/* not verified */ #define SOUND_OBJ_POUNDING1 SOUND_ARG_LOAD(5, 0, 0x15, 0x50, 8)
|
||||
/* not verified */ #define SOUND_OBJ_POUNDING1_HIGHPRIO SOUND_ARG_LOAD(5, 0, 0x15, 0x80, 8)
|
||||
#define SOUND_OBJ_WHOMP_LOWPRIO SOUND_ARG_LOAD(5, 0, 0x16, 0x60, 8)
|
||||
#define SOUND_OBJ_KING_BOBOMB SOUND_ARG_LOAD(5, 0, 0x16, 0x80, 8)
|
||||
/* not verified */ #define SOUND_OBJ_BULLY_METAL SOUND_ARG_LOAD(5, 0, 0x17, 0x80, 8)
|
||||
/* not verified */ #define SOUND_OBJ_BULLY_EXPLODE SOUND_ARG_LOAD(5, 0, 0x18, 0xA0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_BULLY_EXPLODE_2 SOUND_ARG_LOAD(5, 1, 0x18, 0xA0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_POUNDING_CANNON SOUND_ARG_LOAD(5, 0, 0x1A, 0x50, 8)
|
||||
/* not verified */ #define SOUND_OBJ_BULLY_WALK SOUND_ARG_LOAD(5, 0, 0x1B, 0x30, 8)
|
||||
/* not verified */ #define SOUND_OBJ_UNKNOWN3 SOUND_ARG_LOAD(5, 0, 0x1D, 0x80, 8)
|
||||
/* not verified */ #define SOUND_OBJ_UNKNOWN4 SOUND_ARG_LOAD(5, 0, 0x1E, 0xA0, 8)
|
||||
#define SOUND_OBJ_BABY_PENGUIN_DIVE SOUND_ARG_LOAD(5, 0, 0x1F, 0x40, 8)
|
||||
#define SOUND_OBJ_GOOMBA_WALK SOUND_ARG_LOAD(5, 0, 0x20, 0x00, 8)
|
||||
#define SOUND_OBJ_UKIKI_CHATTER_LONG SOUND_ARG_LOAD(5, 0, 0x21, 0x00, 8)
|
||||
#define SOUND_OBJ_MONTY_MOLE_ATTACK SOUND_ARG_LOAD(5, 0, 0x22, 0x00, 8)
|
||||
#define SOUND_OBJ_EVIL_LAKITU_THROW SOUND_ARG_LOAD(5, 0, 0x22, 0x20, 8)
|
||||
/* not verified */ #define SOUND_OBJ_UNK23 0x5023
|
||||
#define SOUND_OBJ_DYING_ENEMY1 SOUND_ARG_LOAD(5, 0, 0x24, 0x40, 8)
|
||||
/* not verified */ #define SOUND_OBJ_CANNON4 SOUND_ARG_LOAD(5, 0, 0x25, 0x40, 8)
|
||||
/* not verified */ #define SOUND_OBJ_DYING_ENEMY2 0x5026
|
||||
#define SOUND_OBJ_BOBOMB_WALK SOUND_ARG_LOAD(5, 0, 0x27, 0x00, 8)
|
||||
/* not verified */ #define SOUND_OBJ_SOMETHING_LANDING SOUND_ARG_LOAD(5, 0, 0x28, 0x80, 8)
|
||||
/* not verified */ #define SOUND_OBJ_DIVING_IN_WATER SOUND_ARG_LOAD(5, 0, 0x29, 0xA0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_SNOW_SAND1 SOUND_ARG_LOAD(5, 0, 0x2A, 0x00, 8)
|
||||
/* not verified */ #define SOUND_OBJ_SNOW_SAND2 SOUND_ARG_LOAD(5, 0, 0x2B, 0x00, 8)
|
||||
#define SOUND_OBJ_DEFAULT_DEATH SOUND_ARG_LOAD(5, 0, 0x2C, 0x80, 8)
|
||||
#define SOUND_OBJ_BIG_PENGUIN_YELL SOUND_ARG_LOAD(5, 0, 0x2D, 0x00, 8)
|
||||
#define SOUND_OBJ_WATER_BOMB_BOUNCING SOUND_ARG_LOAD(5, 0, 0x2E, 0x80, 8)
|
||||
#define SOUND_OBJ_GOOMBA_ALERT SOUND_ARG_LOAD(5, 0, 0x2F, 0x00, 8)
|
||||
#define SOUND_OBJ_WIGGLER_JUMP SOUND_ARG_LOAD(5, 0, 0x2F, 0x60, 8)
|
||||
/* not verified */ #define SOUND_OBJ_STOMPED SOUND_ARG_LOAD(5, 0, 0x30, 0x80, 8)
|
||||
/* not verified */ #define SOUND_OBJ_UNKNOWN6 SOUND_ARG_LOAD(5, 0, 0x31, 0x00, 8)
|
||||
/* not verified */ #define SOUND_OBJ_DIVING_INTO_WATER SOUND_ARG_LOAD(5, 0, 0x32, 0x40, 8)
|
||||
#define SOUND_OBJ_PIRANHA_PLANT_SHRINK SOUND_ARG_LOAD(5, 0, 0x33, 0x40, 8)
|
||||
#define SOUND_OBJ_KOOPA_THE_QUICK_WALK SOUND_ARG_LOAD(5, 0, 0x34, 0x20, 8)
|
||||
#define SOUND_OBJ_KOOPA_WALK SOUND_ARG_LOAD(5, 0, 0x35, 0x00, 8)
|
||||
#define SOUND_OBJ_BULLY_WALKING SOUND_ARG_LOAD(5, 0, 0x36, 0x60, 8)
|
||||
#define SOUND_OBJ_DORRIE SOUND_ARG_LOAD(5, 0, 0x37, 0x60, 8)
|
||||
#define SOUND_OBJ_BOWSER_LAUGH SOUND_ARG_LOAD(5, 0, 0x38, 0x80, 8)
|
||||
#define SOUND_OBJ_UKIKI_CHATTER_SHORT SOUND_ARG_LOAD(5, 0, 0x39, 0x00, 8)
|
||||
#define SOUND_OBJ_UKIKI_CHATTER_IDLE SOUND_ARG_LOAD(5, 0, 0x3A, 0x00, 8)
|
||||
#define SOUND_OBJ_UKIKI_STEP_DEFAULT SOUND_ARG_LOAD(5, 0, 0x3B, 0x00, 8)
|
||||
#define SOUND_OBJ_UKIKI_STEP_LEAVES SOUND_ARG_LOAD(5, 0, 0x3C, 0x00, 8)
|
||||
#define SOUND_OBJ_KOOPA_TALK SOUND_ARG_LOAD(5, 0, 0x3D, 0xA0, 8)
|
||||
#define SOUND_OBJ_KOOPA_DAMAGE SOUND_ARG_LOAD(5, 0, 0x3E, 0xA0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_KLEPTO1 SOUND_ARG_LOAD(5, 0, 0x3F, 0x40, 8)
|
||||
/* not verified */ #define SOUND_OBJ_KLEPTO2 SOUND_ARG_LOAD(5, 0, 0x40, 0x60, 8)
|
||||
#define SOUND_OBJ_KING_BOBOMB_TALK SOUND_ARG_LOAD(5, 0, 0x41, 0x00, 8)
|
||||
#define SOUND_OBJ_KING_BOBOMB_JUMP SOUND_ARG_LOAD(5, 0, 0x46, 0x80, 8)
|
||||
#define SOUND_OBJ_KING_WHOMP_DEATH SOUND_ARG_LOAD(5, 1, 0x47, 0xC0, 8)
|
||||
#define SOUND_OBJ_BOO_LAUGH_LONG SOUND_ARG_LOAD(5, 0, 0x48, 0x00, 8)
|
||||
/* not verified */ #define SOUND_OBJ_EEL SOUND_ARG_LOAD(5, 0, 0x4A, 0x00, 8)
|
||||
/* not verified */ #define SOUND_OBJ_EEL_2 SOUND_ARG_LOAD(5, 2, 0x4A, 0x00, 8)
|
||||
#define SOUND_OBJ_EYEROK_SHOW_EYE SOUND_ARG_LOAD(5, 2, 0x4B, 0x00, 8)
|
||||
#define SOUND_OBJ_MR_BLIZZARD_ALERT SOUND_ARG_LOAD(5, 0, 0x4C, 0x00, 8)
|
||||
#define SOUND_OBJ_SNUFIT_SHOOT SOUND_ARG_LOAD(5, 0, 0x4D, 0x00, 8)
|
||||
#define SOUND_OBJ_SKEETER_WALK SOUND_ARG_LOAD(5, 0, 0x4E, 0x00, 8)
|
||||
/* not verified */ #define SOUND_OBJ_WALKING_WATER SOUND_ARG_LOAD(5, 0, 0x4F, 0x00, 8)
|
||||
#define SOUND_OBJ_BIRD_CHIRP3 SOUND_ARG_LOAD(5, 0, 0x51, 0x40, 0)
|
||||
#define SOUND_OBJ_PIRANHA_PLANT_APPEAR SOUND_ARG_LOAD(5, 0, 0x54, 0x20, 8)
|
||||
#define SOUND_OBJ_FLAME_BLOWN SOUND_ARG_LOAD(5, 0, 0x55, 0x80, 8)
|
||||
#define SOUND_OBJ_MAD_PIANO_CHOMPING SOUND_ARG_LOAD(5, 2, 0x56, 0x40, 8)
|
||||
#define SOUND_OBJ_BOBOMB_BUDDY_TALK SOUND_ARG_LOAD(5, 0, 0x58, 0x40, 8)
|
||||
/* not verified */ #define SOUND_OBJ_SPINY_UNK59 SOUND_ARG_LOAD(5, 0, 0x59, 0x10, 8)
|
||||
#define SOUND_OBJ_WIGGLER_HIGH_PITCH SOUND_ARG_LOAD(5, 0, 0x5C, 0x40, 8)
|
||||
#define SOUND_OBJ_HEAVEHO_TOSSED SOUND_ARG_LOAD(5, 0, 0x5D, 0x40, 8)
|
||||
/* not verified */ #define SOUND_OBJ_WIGGLER_DEATH 0x505E
|
||||
#define SOUND_OBJ_BOWSER_INTRO_LAUGH SOUND_ARG_LOAD(5, 0, 0x5F, 0x80, 9)
|
||||
/* not verified */ #define SOUND_OBJ_ENEMY_DEATH_HIGH SOUND_ARG_LOAD(5, 0, 0x60, 0xB0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_ENEMY_DEATH_LOW SOUND_ARG_LOAD(5, 0, 0x61, 0xB0, 8)
|
||||
#define SOUND_OBJ_SWOOP_DEATH SOUND_ARG_LOAD(5, 0, 0x62, 0xB0, 8)
|
||||
#define SOUND_OBJ_KOOPA_FLYGUY_DEATH SOUND_ARG_LOAD(5, 0, 0x63, 0xB0, 8)
|
||||
#define SOUND_OBJ_POKEY_DEATH SOUND_ARG_LOAD(5, 0, 0x63, 0xC0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_SNOWMAN_BOUNCE SOUND_ARG_LOAD(5, 0, 0x64, 0xC0, 8)
|
||||
#define SOUND_OBJ_SNOWMAN_EXPLODE SOUND_ARG_LOAD(5, 0, 0x65, 0xD0, 8)
|
||||
/* not verified */ #define SOUND_OBJ_POUNDING_LOUD SOUND_ARG_LOAD(5, 0, 0x68, 0x40, 8)
|
||||
/* not verified */ #define SOUND_OBJ_MIPS_RABBIT SOUND_ARG_LOAD(5, 0, 0x6A, 0x00, 8)
|
||||
/* not verified */ #define SOUND_OBJ_MIPS_RABBIT_WATER SOUND_ARG_LOAD(5, 0, 0x6C, 0x00, 8)
|
||||
#define SOUND_OBJ_EYEROK_EXPLODE SOUND_ARG_LOAD(5, 0, 0x6D, 0x00, 8)
|
||||
#define SOUND_OBJ_CHUCKYA_DEATH SOUND_ARG_LOAD(5, 1, 0x6E, 0x00, 8)
|
||||
#define SOUND_OBJ_WIGGLER_TALK SOUND_ARG_LOAD(5, 0, 0x6F, 0x00, 8)
|
||||
#define SOUND_OBJ_WIGGLER_ATTACKED SOUND_ARG_LOAD(5, 0, 0x70, 0x60, 8)
|
||||
#define SOUND_OBJ_WIGGLER_LOW_PITCH SOUND_ARG_LOAD(5, 0, 0x71, 0x20, 8)
|
||||
#define SOUND_OBJ_SNUFIT_SKEETER_DEATH SOUND_ARG_LOAD(5, 0, 0x72, 0xC0, 8)
|
||||
#define SOUND_OBJ_BUBBA_CHOMP SOUND_ARG_LOAD(5, 0, 0x73, 0x40, 8)
|
||||
#define SOUND_OBJ_ENEMY_DEFEAT_SHRINK SOUND_ARG_LOAD(5, 0, 0x74, 0x40, 8)
|
||||
|
||||
#define SOUND_AIR_BOWSER_SPIT_FIRE SOUND_ARG_LOAD(6, 0, 0x00, 0x00, 0)
|
||||
#define SOUND_AIR_UNK01 0x6001 // ?
|
||||
#define SOUND_AIR_LAKITU_FLY SOUND_ARG_LOAD(6, 0, 0x02, 0x80, 0)
|
||||
#define SOUND_AIR_LAKITU_FLY_HIGHPRIO SOUND_ARG_LOAD(6, 0, 0x02, 0xFF, 0)
|
||||
#define SOUND_AIR_AMP_BUZZ SOUND_ARG_LOAD(6, 0, 0x03, 0x40, 0)
|
||||
#define SOUND_AIR_BLOW_FIRE SOUND_ARG_LOAD(6, 0, 0x04, 0x80, 0)
|
||||
#define SOUND_AIR_BLOW_WIND SOUND_ARG_LOAD(6, 0, 0x04, 0x40, 0)
|
||||
#define SOUND_AIR_ROUGH_SLIDE SOUND_ARG_LOAD(6, 0, 0x05, 0x00, 0)
|
||||
#define SOUND_AIR_HEAVEHO_MOVE SOUND_ARG_LOAD(6, 0, 0x06, 0x40, 0)
|
||||
#define SOUND_AIR_UNK07 0x6007 // ?
|
||||
#define SOUND_AIR_BOBOMB_LIT_FUSE SOUND_ARG_LOAD(6, 0, 0x08, 0x60, 0)
|
||||
#define SOUND_AIR_HOWLING_WIND SOUND_ARG_LOAD(6, 0, 0x09, 0x80, 0)
|
||||
#define SOUND_AIR_CHUCKYA_MOVE SOUND_ARG_LOAD(6, 0, 0x0A, 0x40, 0)
|
||||
#define SOUND_AIR_PEACH_TWINKLE SOUND_ARG_LOAD(6, 0, 0x0B, 0x40, 0)
|
||||
#define SOUND_AIR_CASTLE_OUTDOORS_AMBIENT SOUND_ARG_LOAD(6, 0, 0x10, 0x40, 0)
|
||||
|
||||
/* Menu Sound Effects */
|
||||
#define SOUND_MENU_CHANGE_SELECT SOUND_ARG_LOAD(7, 0, 0x00, 0xF8, 8)
|
||||
/* not verified */ #define SOUND_MENU_REVERSE_PAUSE 0x7001
|
||||
#define SOUND_MENU_PAUSE SOUND_ARG_LOAD(7, 0, 0x02, 0xF0, 8)
|
||||
#define SOUND_MENU_PAUSE_HIGHPRIO SOUND_ARG_LOAD(7, 0, 0x02, 0xFF, 8)
|
||||
#define SOUND_MENU_PAUSE_2 SOUND_ARG_LOAD(7, 0, 0x03, 0xFF, 8)
|
||||
#define SOUND_MENU_MESSAGE_APPEAR SOUND_ARG_LOAD(7, 0, 0x04, 0x00, 8)
|
||||
#define SOUND_MENU_MESSAGE_DISAPPEAR SOUND_ARG_LOAD(7, 0, 0x05, 0x00, 8)
|
||||
#define SOUND_MENU_CAMERA_ZOOM_IN SOUND_ARG_LOAD(7, 0, 0x06, 0x00, 8)
|
||||
#define SOUND_MENU_CAMERA_ZOOM_OUT SOUND_ARG_LOAD(7, 0, 0x07, 0x00, 8)
|
||||
#define SOUND_MENU_PINCH_MARIO_FACE SOUND_ARG_LOAD(7, 0, 0x08, 0x00, 8)
|
||||
#define SOUND_MENU_LET_GO_MARIO_FACE SOUND_ARG_LOAD(7, 0, 0x09, 0x00, 8)
|
||||
#define SOUND_MENU_HAND_APPEAR SOUND_ARG_LOAD(7, 0, 0x0A, 0x00, 8)
|
||||
#define SOUND_MENU_HAND_DISAPPEAR SOUND_ARG_LOAD(7, 0, 0x0B, 0x00, 8)
|
||||
/* not verified */ #define SOUND_MENU_UNK0C SOUND_ARG_LOAD(7, 0, 0x0C, 0x00, 8)
|
||||
/* not verified */ #define SOUND_MENU_POWER_METER SOUND_ARG_LOAD(7, 0, 0x0D, 0x00, 8)
|
||||
#define SOUND_MENU_CAMERA_BUZZ SOUND_ARG_LOAD(7, 0, 0x0E, 0x00, 8)
|
||||
#define SOUND_MENU_CAMERA_TURN SOUND_ARG_LOAD(7, 0, 0x0F, 0x00, 8)
|
||||
/* not verified */ #define SOUND_MENU_UNK10 0x7010
|
||||
#define SOUND_MENU_CLICK_FILE_SELECT SOUND_ARG_LOAD(7, 0, 0x11, 0x00, 8)
|
||||
/* not verified */ #define SOUND_MENU_MESSAGE_NEXT_PAGE SOUND_ARG_LOAD(7, 0, 0x13, 0x00, 8)
|
||||
#define SOUND_MENU_COIN_ITS_A_ME_MARIO SOUND_ARG_LOAD(7, 0, 0x14, 0x00, 8)
|
||||
#define SOUND_MENU_YOSHI_GAIN_LIVES SOUND_ARG_LOAD(7, 0, 0x15, 0x00, 8)
|
||||
#define SOUND_MENU_ENTER_PIPE SOUND_ARG_LOAD(7, 0, 0x16, 0xA0, 8)
|
||||
#define SOUND_MENU_EXIT_PIPE SOUND_ARG_LOAD(7, 0, 0x17, 0xA0, 8)
|
||||
#define SOUND_MENU_BOWSER_LAUGH SOUND_ARG_LOAD(7, 0, 0x18, 0x80, 8)
|
||||
#define SOUND_MENU_ENTER_HOLE SOUND_ARG_LOAD(7, 1, 0x19, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MENU_CLICK_CHANGE_VIEW SOUND_ARG_LOAD(7, 0, 0x1A, 0x80, 8)
|
||||
/* not verified */ #define SOUND_MENU_CAMERA_UNUSED1 0x701B
|
||||
/* not verified */ #define SOUND_MENU_CAMERA_UNUSED2 0x701C
|
||||
/* not verified */ #define SOUND_MENU_MARIO_CASTLE_WARP SOUND_ARG_LOAD(7, 0, 0x1D, 0xB0, 8)
|
||||
#define SOUND_MENU_STAR_SOUND SOUND_ARG_LOAD(7, 0, 0x1E, 0xFF, 8)
|
||||
#define SOUND_MENU_THANK_YOU_PLAYING_MY_GAME SOUND_ARG_LOAD(7, 0, 0x1F, 0xFF, 8)
|
||||
/* not verified */ #define SOUND_MENU_READ_A_SIGN 0x7020
|
||||
/* not verified */ #define SOUND_MENU_EXIT_A_SIGN 0x7021
|
||||
/* not verified */ #define SOUND_MENU_MARIO_CASTLE_WARP2 SOUND_ARG_LOAD(7, 0, 0x22, 0x20, 8)
|
||||
#define SOUND_MENU_STAR_SOUND_OKEY_DOKEY SOUND_ARG_LOAD(7, 0, 0x23, 0xFF, 8)
|
||||
#define SOUND_MENU_STAR_SOUND_LETS_A_GO SOUND_ARG_LOAD(7, 0, 0x24, 0xFF, 8)
|
||||
|
||||
// US/EU only; an index between 0-7 or 0-4 is added to the sound ID before
|
||||
// playing, producing the same sound with different pitch.
|
||||
#define SOUND_MENU_COLLECT_RED_COIN SOUND_ARG_LOAD(7, 8, 0x28, 0x90, 8)
|
||||
#define SOUND_MENU_COLLECT_SECRET SOUND_ARG_LOAD(7, 0, 0x30, 0x20, 8)
|
||||
|
||||
// Channel 8 loads sounds from the same place as channel 3, making it possible
|
||||
// to play two channel 3 sounds at once (since just one sound from each channel
|
||||
// can play at a given time).
|
||||
#define SOUND_GENERAL2_BOBOMB_EXPLOSION SOUND_ARG_LOAD(8, 0, 0x2E, 0x20, 8)
|
||||
#define SOUND_GENERAL2_PURPLE_SWITCH SOUND_ARG_LOAD(8, 0, 0x3E, 0xC0, 8)
|
||||
#define SOUND_GENERAL2_ROTATING_BLOCK_CLICK SOUND_ARG_LOAD(8, 0, 0x40, 0x00, 8)
|
||||
#define SOUND_GENERAL2_SPINDEL_ROLL SOUND_ARG_LOAD(8, 0, 0x48, 0x20, 8)
|
||||
#define SOUND_GENERAL2_PYRAMID_TOP_SPIN SOUND_ARG_LOAD(8, 1, 0x4B, 0xE0, 8)
|
||||
#define SOUND_GENERAL2_PYRAMID_TOP_EXPLOSION SOUND_ARG_LOAD(8, 1, 0x4C, 0xF0, 8)
|
||||
#define SOUND_GENERAL2_BIRD_CHIRP2 SOUND_ARG_LOAD(8, 0, 0x50, 0x40, 0)
|
||||
#define SOUND_GENERAL2_SWITCH_TICK_FAST SOUND_ARG_LOAD(8, 0, 0x54, 0xF0, 1)
|
||||
#define SOUND_GENERAL2_SWITCH_TICK_SLOW SOUND_ARG_LOAD(8, 0, 0x55, 0xF0, 1)
|
||||
#define SOUND_GENERAL2_STAR_APPEARS SOUND_ARG_LOAD(8, 0, 0x57, 0xFF, 9)
|
||||
#define SOUND_GENERAL2_ROTATING_BLOCK_ALERT SOUND_ARG_LOAD(8, 0, 0x59, 0x00, 8)
|
||||
#define SOUND_GENERAL2_BOWSER_EXPLODE SOUND_ARG_LOAD(8, 0, 0x60, 0x00, 8)
|
||||
#define SOUND_GENERAL2_BOWSER_KEY SOUND_ARG_LOAD(8, 0, 0x61, 0x00, 8)
|
||||
#define SOUND_GENERAL2_1UP_APPEAR SOUND_ARG_LOAD(8, 0, 0x63, 0xD0, 8)
|
||||
#define SOUND_GENERAL2_RIGHT_ANSWER SOUND_ARG_LOAD(8, 0, 0x6A, 0xA0, 8)
|
||||
|
||||
// Channel 9 loads sounds from the same place as channel 5.
|
||||
#define SOUND_OBJ2_BOWSER_ROAR SOUND_ARG_LOAD(9, 0, 0x04, 0x00, 8)
|
||||
#define SOUND_OBJ2_PIRANHA_PLANT_BITE SOUND_ARG_LOAD(9, 0, 0x10, 0x50, 8)
|
||||
#define SOUND_OBJ2_PIRANHA_PLANT_DYING SOUND_ARG_LOAD(9, 0, 0x11, 0x60, 8)
|
||||
#define SOUND_OBJ2_BOWSER_PUZZLE_PIECE_MOVE SOUND_ARG_LOAD(9, 0, 0x19, 0x20, 8)
|
||||
#define SOUND_OBJ2_BULLY_ATTACKED SOUND_ARG_LOAD(9, 0, 0x1C, 0x00, 8)
|
||||
#define SOUND_OBJ2_KING_BOBOMB_DAMAGE SOUND_ARG_LOAD(9, 1, 0x42, 0x40, 8)
|
||||
#define SOUND_OBJ2_SCUTTLEBUG_WALK SOUND_ARG_LOAD(9, 0, 0x43, 0x40, 8)
|
||||
#define SOUND_OBJ2_SCUTTLEBUG_ALERT SOUND_ARG_LOAD(9, 0, 0x44, 0x40, 8)
|
||||
#define SOUND_OBJ2_BABY_PENGUIN_YELL SOUND_ARG_LOAD(9, 0, 0x45, 0x00, 8)
|
||||
#define SOUND_OBJ2_SWOOP SOUND_ARG_LOAD(9, 0, 0x49, 0x00, 8)
|
||||
#define SOUND_OBJ2_BIRD_CHIRP1 SOUND_ARG_LOAD(9, 0, 0x52, 0x40, 0)
|
||||
#define SOUND_OBJ2_LARGE_BULLY_ATTACKED SOUND_ARG_LOAD(9, 0, 0x57, 0x00, 8)
|
||||
#define SOUND_OBJ2_EYEROK_SOUND_SHORT SOUND_ARG_LOAD(9, 3, 0x5A, 0x00, 8)
|
||||
#define SOUND_OBJ2_WHOMP_SOUND_SHORT SOUND_ARG_LOAD(9, 3, 0x5A, 0xC0, 8)
|
||||
#define SOUND_OBJ2_EYEROK_SOUND_LONG SOUND_ARG_LOAD(9, 2, 0x5B, 0x00, 8)
|
||||
#define SOUND_OBJ2_BOWSER_TELEPORT SOUND_ARG_LOAD(9, 0, 0x66, 0x80, 8)
|
||||
#define SOUND_OBJ2_MONTY_MOLE_APPEAR SOUND_ARG_LOAD(9, 0, 0x67, 0x80, 8)
|
||||
#define SOUND_OBJ2_BOSS_DIALOG_GRUNT SOUND_ARG_LOAD(9, 0, 0x69, 0x40, 8)
|
||||
#define SOUND_OBJ2_MRI_SPINNING SOUND_ARG_LOAD(9, 0, 0x6B, 0x00, 8)
|
||||
|
||||
#endif // AUDIO_DEFINES_H
|
||||
@@ -0,0 +1,28 @@
|
||||
#ifndef COMMAND_MACROS_BASE_H
|
||||
#define COMMAND_MACROS_BASE_H
|
||||
|
||||
#include "PR/gbi.h"
|
||||
|
||||
#if IS_BIG_ENDIAN
|
||||
#if IS_64_BIT
|
||||
#define CMD_BBBB(a, b, c, d) ((uintptr_t)(_SHIFTL(a, 24, 8) | _SHIFTL(b, 16, 8) | _SHIFTL(c, 8, 8) | _SHIFTL(d, 0, 8)) << 32)
|
||||
#define CMD_BBH(a, b, c) ((uintptr_t)(_SHIFTL(a, 24, 8) | _SHIFTL(b, 16, 8) | _SHIFTL(c, 0, 16)) << 32)
|
||||
#define CMD_HH(a, b) ((uintptr_t)(_SHIFTL(a, 16, 16) | _SHIFTL(b, 0, 16)) << 32)
|
||||
#define CMD_W(a) ((uintptr_t)(a) << 32)
|
||||
#else
|
||||
#define CMD_BBBB(a, b, c, d) (_SHIFTL(a, 24, 8) | _SHIFTL(b, 16, 8) | _SHIFTL(c, 8, 8) | _SHIFTL(d, 0, 8))
|
||||
#define CMD_BBH(a, b, c) (_SHIFTL(a, 24, 8) | _SHIFTL(b, 16, 8) | _SHIFTL(c, 0, 16))
|
||||
#define CMD_HH(a, b) (_SHIFTL(a, 16, 16) | _SHIFTL(b, 0, 16))
|
||||
#define CMD_W(a) (a)
|
||||
#endif
|
||||
#else
|
||||
#define CMD_BBBB(a, b, c, d) (_SHIFTL(a, 0, 8) | _SHIFTL(b, 8, 8) | _SHIFTL(c, 16, 8) | _SHIFTL(d, 24, 8))
|
||||
#define CMD_BBH(a, b, c) (_SHIFTL(a, 0, 8) | _SHIFTL(b, 8, 8) | _SHIFTL(c, 16, 16))
|
||||
#define CMD_HH(a, b) (_SHIFTL(a, 0, 16) | _SHIFTL(b, 16, 16))
|
||||
#define CMD_W(a) (a)
|
||||
#endif
|
||||
#define CMD_PTR(a) ((uintptr_t)(a))
|
||||
|
||||
#define CMD_HHHHHH(a, b, c, d, e, f) CMD_HH(a, b), CMD_HH(c, d), CMD_HH(e, f)
|
||||
|
||||
#endif // COMMAND_MACROS_BASE_H
|
||||
@@ -0,0 +1,432 @@
|
||||
#ifndef GEO_COMMANDS_H
|
||||
#define GEO_COMMANDS_H
|
||||
|
||||
#include "command_macros_base.h"
|
||||
|
||||
//#include "game/shadow.h"
|
||||
//#include "game/object_helpers.h"
|
||||
//#include "game/behavior_actions.h"
|
||||
//#include "game/segment2.h"
|
||||
#include "../game/mario_misc.h"
|
||||
#include "../game/mario_actions_cutscene.h"
|
||||
|
||||
// sky background params
|
||||
#define BACKGROUND_OCEAN_SKY 0
|
||||
#define BACKGROUND_FLAMING_SKY 1
|
||||
#define BACKGROUND_UNDERWATER_CITY 2
|
||||
#define BACKGROUND_BELOW_CLOUDS 3
|
||||
#define BACKGROUND_SNOW_MOUNTAINS 4
|
||||
#define BACKGROUND_DESERT 5
|
||||
#define BACKGROUND_HAUNTED 6
|
||||
#define BACKGROUND_GREEN_SKY 7
|
||||
#define BACKGROUND_ABOVE_CLOUDS 8
|
||||
#define BACKGROUND_PURPLE_SKY 9
|
||||
|
||||
// geo layout macros
|
||||
|
||||
/**
|
||||
* 0x00: Branch and store return address
|
||||
* 0x04: scriptTarget, segment address of geo layout
|
||||
*/
|
||||
#define GEO_BRANCH_AND_LINK(scriptTarget) \
|
||||
CMD_BBH(0x00, 0x00, 0x0000), \
|
||||
CMD_PTR(scriptTarget)
|
||||
|
||||
/**
|
||||
* 0x01: Terminate geo layout
|
||||
* 0x01-0x03: unused
|
||||
*/
|
||||
#define GEO_END() \
|
||||
CMD_BBH(0x01, 0x00, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x02: Branch
|
||||
* 0x01: if 1, store next geo layout address on stack
|
||||
* 0x02-0x03: unused
|
||||
* 0x04: scriptTarget, segment address of geo layout
|
||||
*/
|
||||
#define GEO_BRANCH(type, scriptTarget) \
|
||||
CMD_BBH(0x02, type, 0x0000), \
|
||||
CMD_PTR(scriptTarget)
|
||||
|
||||
/**
|
||||
* 0x03: Return from branch
|
||||
* 0x01-0x03: unused
|
||||
*/
|
||||
#define GEO_RETURN() \
|
||||
CMD_BBH(0x03, 0x00, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x04: Open node
|
||||
* 0x01-0x03: unused
|
||||
*/
|
||||
#define GEO_OPEN_NODE() \
|
||||
CMD_BBH(0x04, 0x00, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x05: Close node
|
||||
* 0x01-0x03: unused
|
||||
*/
|
||||
#define GEO_CLOSE_NODE() \
|
||||
CMD_BBH(0x05, 0x00, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x06: Register the current node at the given index in the gGeoViews array
|
||||
* 0x01: unused
|
||||
* 0x02: s16 index
|
||||
*/
|
||||
#define GEO_ASSIGN_AS_VIEW(index) \
|
||||
CMD_BBH(0x06, 0x00, index)
|
||||
|
||||
/**
|
||||
* 0x07: Update current scene graph node flags
|
||||
* 0x01: u8 operation (0 = reset, 1 = set, 2 = clear)
|
||||
* 0x02: s16 bits
|
||||
*/
|
||||
#define GEO_UPDATE_NODE_FLAGS(operation, flagBits) \
|
||||
CMD_BBH(0x07, operation, flagBits)
|
||||
|
||||
/**
|
||||
* 0x08: Create screen area scene graph node
|
||||
* 0x01: unused
|
||||
* 0x02: s16 num entries (+2) to allocate
|
||||
* 0x04: s16 x
|
||||
* 0x06: s16 y
|
||||
* 0x08: s16 width
|
||||
* 0x0A: s16 height
|
||||
*/
|
||||
#define GEO_NODE_SCREEN_AREA(numEntries, x, y, width, height) \
|
||||
CMD_BBH(0x08, 0x00, numEntries), \
|
||||
CMD_HH(x, y), \
|
||||
CMD_HH(width, height)
|
||||
|
||||
/**
|
||||
* 0x09: Create orthographic projection scene graph node
|
||||
* 0x02: s16 scale as percentage
|
||||
*/
|
||||
#define GEO_NODE_ORTHO(scale) \
|
||||
CMD_BBH(0x09, 0x00, scale)
|
||||
|
||||
/**
|
||||
* 0x0A: Create camera frustum scene graph node
|
||||
* 0x01: u8 if nonzero, enable function field
|
||||
* 0x02: s16 field of view
|
||||
* 0x04: s16 near
|
||||
* 0x06: s16 far
|
||||
* 0x08: [GraphNodeFunc function]
|
||||
*/
|
||||
#define GEO_CAMERA_FRUSTUM(fov, near, far) \
|
||||
CMD_BBH(0x0A, 0x00, fov), \
|
||||
CMD_HH(near, far)
|
||||
#define GEO_CAMERA_FRUSTUM_WITH_FUNC(fov, near, far, func) \
|
||||
CMD_BBH(0x0A, 0x01, fov), \
|
||||
CMD_HH(near, far), \
|
||||
CMD_PTR(func)
|
||||
|
||||
/**
|
||||
* 0x0B: Create a root scene graph node
|
||||
* 0x01-0x03: unused
|
||||
*/
|
||||
#define GEO_NODE_START() \
|
||||
CMD_BBH(0x0B, 0x00, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x0C: Create zbuffer-toggling scene graph node
|
||||
* 0x01: u8 enableZBuffer (1 = on, 0 = off)
|
||||
* 0x02-0x03: unused
|
||||
*/
|
||||
#define GEO_ZBUFFER(enable) \
|
||||
CMD_BBH(0x0C, enable, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x0D: Create render range scene graph node
|
||||
* 0x01-0x03: unused
|
||||
* 0x04: s16 minDistance
|
||||
* 0x06: s16 maxDistance
|
||||
*/
|
||||
#define GEO_RENDER_RANGE(minDistance, maxDistance) \
|
||||
CMD_BBH(0x0D, 0x00, 0x0000), \
|
||||
CMD_HH(minDistance, maxDistance)
|
||||
|
||||
/**
|
||||
* 0x0E: Create switch-case scene graph node
|
||||
* 0x01: unused
|
||||
* 0x02: s16 numCases
|
||||
* 0x04: GraphNodeFunc caseSelectorFunc
|
||||
*/
|
||||
#define GEO_SWITCH_CASE(count, function) \
|
||||
CMD_BBH(0x0E, 0x00, count), \
|
||||
CMD_PTR(function)
|
||||
|
||||
/**
|
||||
* 0x0F: Create a camera scene graph node.
|
||||
* 0x01: unused
|
||||
* 0x02: s16 camera type
|
||||
* 0x04: s16 posX
|
||||
* 0x06: s16 posY
|
||||
* 0x08: s16 posZ
|
||||
* 0x0A: s16 focusX
|
||||
* 0x0C: s16 focusY
|
||||
* 0x0E: s16 focusZ
|
||||
* 0x10: GraphNodeFunc function
|
||||
*/
|
||||
#define GEO_CAMERA(type, x1, y1, z1, x2, y2, z2, function) \
|
||||
CMD_BBH(0x0F, 0x00, type), \
|
||||
CMD_HHHHHH(x1, y1, z1, x2, y2, z2), \
|
||||
CMD_PTR(function)
|
||||
|
||||
/**
|
||||
* 0x10: Create translation & rotation scene graph node with optional display list
|
||||
* Four different versions of 0x10
|
||||
* cmd+0x01: u8 params
|
||||
* 0b1000_0000: if set, enable displayList field and drawingLayer
|
||||
* 0b0111_0000: fieldLayout (determines how rest of data is formatted
|
||||
* 0b0000_1111: drawingLayer
|
||||
*
|
||||
* fieldLayout = 0: Translate & Rotate
|
||||
* 0x04: s16 xTranslation
|
||||
* 0x06: s16 yTranslation
|
||||
* 0x08: s16 zTranslation
|
||||
* 0x0A: s16 xRotation
|
||||
* 0x0C: s16 yRotation
|
||||
* 0x0E: s16 zRotation
|
||||
* 0x10: [u32 displayList: if MSbit of params set, display list segmented address]
|
||||
*/
|
||||
#define GEO_TRANSLATE_ROTATE(layer, tx, ty, tz, rx, ry, rz) \
|
||||
CMD_BBH(0x10, (0x00 | layer), 0x0000), \
|
||||
CMD_HHHHHH(tx, ty, tz, rx, ry, rz)
|
||||
#define GEO_TRANSLATE_ROTATE_WITH_DL(layer, tx, ty, tz, rx, ry, rz, displayList) \
|
||||
CMD_BBH(0x10, (0x00 | layer | 0x80), 0x0000), \
|
||||
CMD_HHHHHH(tx, ty, tz, rx, ry, rz), \
|
||||
CMD_PTR(displayList)
|
||||
|
||||
/**
|
||||
* fieldLayout = 1: Translate
|
||||
* 0x02: s16 xTranslation
|
||||
* 0x04: s16 yTranslation
|
||||
* 0x06: s16 zTranslation
|
||||
* 0x08: [u32 displayList: if MSbit of params set, display list segmented address]
|
||||
*/
|
||||
#define GEO_TRANSLATE(layer, tx, ty, tz) \
|
||||
CMD_BBH(0x10, (0x10 | layer), tx), \
|
||||
CMD_HH(ty, tz)
|
||||
#define GEO_TRANSLATE_WITH_DL(layer, tx, ty, tz, displayList) \
|
||||
CMD_BBH(0x10, (0x10 | layer | 0x80), tx), \
|
||||
CMD_HH(ty, tz), \
|
||||
CMD_PTR(displayList)
|
||||
|
||||
/**
|
||||
* fieldLayout = 2: Rotate
|
||||
* 0x02: s16 xRotation
|
||||
* 0x04: s16 yRotation
|
||||
* 0x06: s16 zRotation
|
||||
* 0x08: [u32 displayList: if MSbit of params set, display list segmented address]
|
||||
*/
|
||||
#define GEO_ROTATE(layer, rx, ry, rz) \
|
||||
CMD_BBH(0x10, (0x20 | layer), rx), \
|
||||
CMD_HH(ry, rz)
|
||||
#define GEO_ROTATE_WITH_DL(layer, rx, ry, rz, displayList) \
|
||||
CMD_BBH(0x10, (0x20 | layer | 0x80), rx), \
|
||||
CMD_HH(ry, rz), \
|
||||
CMD_PTR(displayList)
|
||||
|
||||
/**
|
||||
* fieldLayout = 3: Rotate Y
|
||||
* 0x02: s16 yRotation
|
||||
* 0x04: [u32 displayList: if MSbit of params set, display list segmented address]
|
||||
*/
|
||||
#define GEO_ROTATE_Y(layer, ry) \
|
||||
CMD_BBH(0x10, (0x30 | layer), ry)
|
||||
#define GEO_ROTATE_Y_WITH_DL(layer, ry, displayList) \
|
||||
CMD_BBH(0x10, (0x30 | layer | 0x80), ry), \
|
||||
CMD_PTR(displayList)
|
||||
|
||||
/**
|
||||
* 0x11: Create translation scene graph node with optional display list
|
||||
* 0x01: u8 params
|
||||
* 0b1000_0000: if set, enable displayList field and drawingLayer
|
||||
* 0b0000_1111: drawingLayer
|
||||
* 0x02: s16 translationX
|
||||
* 0x04: s16 translationY
|
||||
* 0x06: s16 translationZ
|
||||
* 0x08: [u32 displayList: if MSbit of params set, display list segmented address]
|
||||
*/
|
||||
#define GEO_TRANSLATE_NODE(layer, ux, uy, uz) \
|
||||
CMD_BBH(0x11, layer, ux), \
|
||||
CMD_HH(uy, uz)
|
||||
#define GEO_TRANSLATE_NODE_WITH_DL(layer, ux, uy, uz, displayList) \
|
||||
CMD_BBH(0x11, (layer | 0x80), ux), \
|
||||
CMD_HH(uy, uz), \
|
||||
CMD_PTR(displayList)
|
||||
|
||||
/**
|
||||
* 0x12: Create rotation scene graph node with optional display list
|
||||
* 0x01: u8 params
|
||||
* 0b1000_0000: if set, enable displayList field and drawingLayer
|
||||
* 0b0000_1111: drawingLayer
|
||||
* 0x02: s16 rotationX
|
||||
* 0x04: s16 rotationY
|
||||
* 0x06: s16 rotationZ
|
||||
* 0x08: [u32 displayList: if MSbit of params set, display list segmented address]
|
||||
*/
|
||||
#define GEO_ROTATION_NODE(layer, ux, uy, uz) \
|
||||
CMD_BBH(0x12, layer, ux), \
|
||||
CMD_HH(uy, uz)
|
||||
#define GEO_ROTATION_NODE_WITH_DL(layer, ux, uy, uz, displayList) \
|
||||
CMD_BBH(0x12, (layer | 0x80), ux), \
|
||||
CMD_HH(uy, uz), \
|
||||
CMD_PTR(displayList)
|
||||
|
||||
/**
|
||||
* 0x13: Create a scene graph node that is rotated by the object's animation.
|
||||
* 0x01: u8 drawingLayer
|
||||
* 0x02: s16 xTranslation
|
||||
* 0x04: s16 yTranslation
|
||||
* 0x06: s16 zTranslation
|
||||
* 0x08: u32 displayList: dislay list segmented address
|
||||
*/
|
||||
#define GEO_ANIMATED_PART(layer, x, y, z, displayList) \
|
||||
CMD_BBH(0x13, layer, x), \
|
||||
CMD_HH(y, z), \
|
||||
CMD_PTR(displayList)
|
||||
|
||||
/**
|
||||
* 0x14: Create billboarding node with optional display list
|
||||
* 0x01: u8 params
|
||||
* 0b1000_0000: if set, enable displayList field and drawingLayer
|
||||
* 0b0000_1111: drawingLayer
|
||||
* 0x02: s16 xTranslation
|
||||
* 0x04: s16 yTranslation
|
||||
* 0x06: s16 zTranslation
|
||||
* 0x08: [u32 displayList: if MSbit of params is set, display list segmented address]
|
||||
*/
|
||||
#define GEO_BILLBOARD_WITH_PARAMS(layer, tx, ty, tz) \
|
||||
CMD_BBH(0x14, layer, tx), \
|
||||
CMD_HH(ty, tz)
|
||||
#define GEO_BILLBOARD_WITH_PARAMS_AND_DL(layer, tx, ty, tz, displayList) \
|
||||
CMD_BBH(0x14, (layer | 0x80), tx), \
|
||||
CMD_HH(ty, tz), \
|
||||
CMD_PTR(displayList)
|
||||
#define GEO_BILLBOARD() \
|
||||
GEO_BILLBOARD_WITH_PARAMS(0, 0, 0, 0)
|
||||
|
||||
/**
|
||||
* 0x15: Create plain display list scene graph node
|
||||
* 0x01: u8 drawingLayer
|
||||
* 0x02-0x03: unused
|
||||
* 0x04: u32 displayList: display list segmented address
|
||||
*/
|
||||
#define GEO_DISPLAY_LIST(layer, displayList) \
|
||||
CMD_BBH(0x15, layer, 0x0000), \
|
||||
CMD_PTR(displayList)
|
||||
|
||||
/**
|
||||
* 0x16: Create shadow scene graph node
|
||||
* 0x01: unused
|
||||
* 0x02: s16 shadowType (cast to u8)
|
||||
* 0x04: s16 shadowSolidity (cast to u8)
|
||||
* 0x06: s16 shadowScale
|
||||
*/
|
||||
#define GEO_SHADOW(type, solidity, scale) \
|
||||
CMD_BBH(0x16, 0x00, type), \
|
||||
CMD_HH(solidity, scale)
|
||||
|
||||
/**
|
||||
* 0x17: Create render object scene graph node
|
||||
* 0x01-0x03: unused
|
||||
*/
|
||||
#define GEO_RENDER_OBJ() \
|
||||
CMD_BBH(0x17, 0x00, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x18: Create dynamically generated displaylist scene graph node
|
||||
* 0x01: unused
|
||||
* 0x02: s16 parameter
|
||||
* 0x04: GraphNodeFunc function
|
||||
*/
|
||||
#define GEO_ASM(param, function) \
|
||||
CMD_BBH(0x18, 0x00, param), \
|
||||
CMD_PTR(function)
|
||||
|
||||
/**
|
||||
* 0x19: Create background scene graph node
|
||||
* 0x02: s16 background: background ID, or RGBA5551 color if backgroundFunc is null
|
||||
* 0x04: GraphNodeFunc backgroundFunc
|
||||
*/
|
||||
#define GEO_BACKGROUND(background, function) \
|
||||
CMD_BBH(0x19, 0x00, background), \
|
||||
CMD_PTR(function)
|
||||
#define GEO_BACKGROUND_COLOR(background) \
|
||||
GEO_BACKGROUND(background, NULL)
|
||||
|
||||
/**
|
||||
* 0x1A: No operation
|
||||
*/
|
||||
#define GEO_NOP_1A() \
|
||||
CMD_BBH(0x1A, 0x00, 0x0000), \
|
||||
CMD_HH(0x0000, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x1B: Copy the shared children from an object parent node from a specific view
|
||||
* to a newly created object parent.
|
||||
* 0x02: s16 index of array
|
||||
*/
|
||||
#define GEO_COPY_VIEW(index) \
|
||||
CMD_BBH(0x1B, 0x00, index)
|
||||
|
||||
/**
|
||||
* 0x1C: Create a held object scene graph node
|
||||
* cmd+0x01: u8 unused
|
||||
* cmd+0x02: s16 offsetX
|
||||
* cmd+0x04: s16 offsetY
|
||||
* cmd+0x06: s16 offsetZ
|
||||
* cmd+0x08: GraphNodeFunc nodeFunc
|
||||
*/
|
||||
#define GEO_HELD_OBJECT(param, ux, uy, uz, nodeFunc) \
|
||||
CMD_BBH(0x1C, param, ux), \
|
||||
CMD_HH(uy, uz), \
|
||||
CMD_PTR(nodeFunc)
|
||||
|
||||
/**
|
||||
* 0x1D: Create scale scene graph node with optional display list
|
||||
* 0x01: u8 params
|
||||
* 0b1000_0000: if set, enable displayList field and drawingLayer
|
||||
* 0b0000_1111: drawingLayer
|
||||
* 0x02-0x03: unused
|
||||
* 0x04: u32 scale (0x10000 = 1.0)
|
||||
* 0x08: [u32 displayList: if MSbit of params is set, display list segment address]
|
||||
*/
|
||||
#define GEO_SCALE(layer, scale) \
|
||||
CMD_BBH(0x1D, layer, 0x0000), \
|
||||
CMD_W(scale)
|
||||
#define GEO_SCALE_WITH_DL(layer, scale, displayList) \
|
||||
CMD_BBH(0x1D, (layer | 0x80), 0x0000), \
|
||||
CMD_W(scale), \
|
||||
CMD_PTR(displayList)
|
||||
|
||||
/**
|
||||
* 0x1E: No operation
|
||||
*/
|
||||
#define GEO_NOP_1E() \
|
||||
CMD_BBH(0x1E, 0x00, 0x0000), \
|
||||
CMD_HH(0x0000, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x1F: No operation
|
||||
*/
|
||||
#define GEO_NOP_1F() \
|
||||
CMD_BBH(0x1F, 0x00, 0x0000), \
|
||||
CMD_HH(0x0000, 0x0000), \
|
||||
CMD_HH(0x0000, 0x0000), \
|
||||
CMD_HH(0x0000, 0x0000)
|
||||
|
||||
/**
|
||||
* 0x20: Create a scene graph node that specifies for an object the radius that
|
||||
* is used for frustum culling.
|
||||
* 0x01: unused
|
||||
* 0x02: s16 cullingRadius
|
||||
*/
|
||||
#define GEO_CULLING_RADIUS(cullingRadius) \
|
||||
CMD_BBH(0x20, 0x00, cullingRadius)
|
||||
|
||||
#endif // GEO_COMMANDS_H
|
||||
@@ -0,0 +1,28 @@
|
||||
#ifndef LEVEL_MISC_MACROS_H
|
||||
#define LEVEL_MISC_MACROS_H
|
||||
|
||||
#define MACRO_OBJECT_WITH_BEH_PARAM(preset, yaw, posX, posY, posZ, behParam) \
|
||||
((s16)((yaw * 0x10 / 45) << 9) | (preset + 0x1F)), posX, posY, posZ, behParam
|
||||
|
||||
#define MACRO_OBJECT(preset, yaw, posX, posY, posZ) \
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(preset, yaw, posX, posY, posZ, 0)
|
||||
|
||||
#define MACRO_OBJECT_END() \
|
||||
0x001E
|
||||
|
||||
#define SPECIAL_OBJECT(preset, posX, posY, posZ) \
|
||||
preset, posX, posY, posZ
|
||||
|
||||
#define SPECIAL_OBJECT_WITH_YAW(preset, posX, posY, posZ, yaw) \
|
||||
preset, posX, posY, posZ, yaw
|
||||
|
||||
#define SPECIAL_OBJECT_WITH_YAW_AND_PARAM(preset, posX, posY, posZ, yaw, param) \
|
||||
preset, posX, posY, posZ, yaw, param
|
||||
|
||||
#define TRAJECTORY_POS(trajId, x, y, z) \
|
||||
trajId, x, y, z
|
||||
|
||||
#define TRAJECTORY_END() \
|
||||
-1
|
||||
|
||||
#endif // LEVEL_MISC_MACROS_H
|
||||
@@ -0,0 +1,77 @@
|
||||
#ifndef MACROS_H
|
||||
#define MACROS_H
|
||||
|
||||
#include "platform_info.h"
|
||||
|
||||
#ifndef __sgi
|
||||
#define GLOBAL_ASM(...)
|
||||
#endif
|
||||
|
||||
// ===== PATCH =====
|
||||
#define NON_MATCHING 1
|
||||
#define AVOID_UB 1
|
||||
// =================
|
||||
|
||||
#if !defined(__sgi) && (!defined(NON_MATCHING) || !defined(AVOID_UB))
|
||||
// asm-process isn't supported outside of IDO, and undefined behavior causes
|
||||
// crashes.
|
||||
#error Matching build is only possible on IDO; please build with NON_MATCHING=1.
|
||||
#endif
|
||||
|
||||
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
|
||||
|
||||
#define GLUE(a, b) a ## b
|
||||
#define GLUE2(a, b) GLUE(a, b)
|
||||
|
||||
// Avoid compiler warnings for unused variables
|
||||
#ifdef __GNUC__
|
||||
#define UNUSED __attribute__((unused))
|
||||
#else
|
||||
#define UNUSED
|
||||
#endif
|
||||
|
||||
// Avoid undefined behaviour for non-returning functions
|
||||
#ifdef __GNUC__
|
||||
#define NORETURN __attribute__((noreturn))
|
||||
#else
|
||||
#define NORETURN
|
||||
#endif
|
||||
|
||||
// Static assertions
|
||||
#ifdef __GNUC__
|
||||
#define STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
|
||||
#else
|
||||
#define STATIC_ASSERT(cond, msg) typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]
|
||||
#endif
|
||||
|
||||
// Align to 8-byte boundary for DMA requirements
|
||||
#ifdef __GNUC__
|
||||
#define ALIGNED8 __attribute__((aligned(8)))
|
||||
#else
|
||||
#define ALIGNED8
|
||||
#endif
|
||||
|
||||
// Align to 16-byte boundary for audio lib requirements
|
||||
#ifdef __GNUC__
|
||||
#define ALIGNED16 __attribute__((aligned(16)))
|
||||
#else
|
||||
#define ALIGNED16
|
||||
#endif
|
||||
|
||||
#ifndef NO_SEGMENTED_MEMORY
|
||||
// convert a virtual address to physical.
|
||||
#define VIRTUAL_TO_PHYSICAL(addr) ((uintptr_t)(addr) & 0x1FFFFFFF)
|
||||
|
||||
// convert a physical address to virtual.
|
||||
#define PHYSICAL_TO_VIRTUAL(addr) ((uintptr_t)(addr) | 0x80000000)
|
||||
|
||||
// another way of converting virtual to physical
|
||||
#define VIRTUAL_TO_PHYSICAL2(addr) ((u8 *)(addr) - 0x80000000U)
|
||||
#else
|
||||
// no conversion needed other than cast
|
||||
#define VIRTUAL_TO_PHYSICAL(addr) ((addr))
|
||||
#define PHYSICAL_TO_VIRTUAL(addr) ((addr))
|
||||
#define VIRTUAL_TO_PHYSICAL2(addr) ((void *)(addr))
|
||||
#endif
|
||||
|
||||
#endif // MACROS_H
|
||||
@@ -0,0 +1,219 @@
|
||||
#ifndef MARIO_ANIMATION_IDS_H
|
||||
#define MARIO_ANIMATION_IDS_H
|
||||
|
||||
/* Mario Animation IDs */
|
||||
|
||||
enum MarioAnimID
|
||||
{
|
||||
/* 0x00 */ MARIO_ANIM_SLOW_LEDGE_GRAB,
|
||||
/* 0x01 */ MARIO_ANIM_FALL_OVER_BACKWARDS,
|
||||
/* 0x02 */ MARIO_ANIM_BACKWARD_AIR_KB,
|
||||
/* 0x03 */ MARIO_ANIM_DYING_ON_BACK,
|
||||
/* 0x04 */ MARIO_ANIM_BACKFLIP,
|
||||
/* 0x05 */ MARIO_ANIM_CLIMB_UP_POLE,
|
||||
/* 0x06 */ MARIO_ANIM_GRAB_POLE_SHORT,
|
||||
/* 0x07 */ MARIO_ANIM_GRAB_POLE_SWING_PART1,
|
||||
/* 0x08 */ MARIO_ANIM_GRAB_POLE_SWING_PART2,
|
||||
/* 0x09 */ MARIO_ANIM_HANDSTAND_IDLE,
|
||||
/* 0x0A */ MARIO_ANIM_HANDSTAND_JUMP,
|
||||
/* 0x0B */ MARIO_ANIM_START_HANDSTAND,
|
||||
/* 0x0C */ MARIO_ANIM_RETURN_FROM_HANDSTAND,
|
||||
/* 0x0D */ MARIO_ANIM_IDLE_ON_POLE,
|
||||
/* 0x0E */ MARIO_ANIM_A_POSE,
|
||||
/* 0x0F */ MARIO_ANIM_SKID_ON_GROUND,
|
||||
/* 0x10 */ MARIO_ANIM_STOP_SKID,
|
||||
/* 0x11 */ MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP,
|
||||
/* 0x12 */ MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP,
|
||||
/* 0x13 */ MARIO_ANIM_FAST_LONGJUMP,
|
||||
/* 0x14 */ MARIO_ANIM_SLOW_LONGJUMP,
|
||||
/* 0x15 */ MARIO_ANIM_AIRBORNE_ON_STOMACH,
|
||||
/* 0x16 */ MARIO_ANIM_WALK_WITH_LIGHT_OBJ,
|
||||
/* 0x17 */ MARIO_ANIM_RUN_WITH_LIGHT_OBJ,
|
||||
/* 0x18 */ MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ,
|
||||
/* 0x19 */ MARIO_ANIM_SHIVERING_WARMING_HAND,
|
||||
/* 0x1A */ MARIO_ANIM_SHIVERING_RETURN_TO_IDLE,
|
||||
/* 0x1B */ MARIO_ANIM_SHIVERING,
|
||||
/* 0x1C */ MARIO_ANIM_CLIMB_DOWN_LEDGE,
|
||||
/* 0x1D */ MARIO_ANIM_CREDITS_WAVING,
|
||||
/* 0x1E */ MARIO_ANIM_CREDITS_LOOK_UP,
|
||||
/* 0x1F */ MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP,
|
||||
/* 0x20 */ MARIO_ANIM_CREDITS_RAISE_HAND,
|
||||
/* 0x21 */ MARIO_ANIM_CREDITS_LOWER_HAND,
|
||||
/* 0x22 */ MARIO_ANIM_CREDITS_TAKE_OFF_CAP,
|
||||
/* 0x23 */ MARIO_ANIM_CREDITS_START_WALK_LOOK_UP,
|
||||
/* 0x24 */ MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN,
|
||||
/* 0x25 */ MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN,
|
||||
/* 0x26 */ MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF,
|
||||
/* 0x27 */ MARIO_ANIM_CREDITS_PEACE_SIGN,
|
||||
/* 0x28 */ MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST,
|
||||
/* 0x29 */ MARIO_ANIM_FIRE_LAVA_BURN,
|
||||
/* 0x2A */ MARIO_ANIM_WING_CAP_FLY,
|
||||
/* 0x2B */ MARIO_ANIM_HANG_ON_OWL,
|
||||
/* 0x2C */ MARIO_ANIM_LAND_ON_STOMACH,
|
||||
/* 0x2D */ MARIO_ANIM_AIR_FORWARD_KB,
|
||||
/* 0x2E */ MARIO_ANIM_DYING_ON_STOMACH,
|
||||
/* 0x2F */ MARIO_ANIM_SUFFOCATING,
|
||||
/* 0x30 */ MARIO_ANIM_COUGHING,
|
||||
/* 0x31 */ MARIO_ANIM_THROW_CATCH_KEY,
|
||||
/* 0x32 */ MARIO_ANIM_DYING_FALL_OVER,
|
||||
/* 0x33 */ MARIO_ANIM_IDLE_ON_LEDGE,
|
||||
/* 0x34 */ MARIO_ANIM_FAST_LEDGE_GRAB,
|
||||
/* 0x35 */ MARIO_ANIM_HANG_ON_CEILING,
|
||||
/* 0x36 */ MARIO_ANIM_PUT_CAP_ON,
|
||||
/* 0x37 */ MARIO_ANIM_TAKE_CAP_OFF_THEN_ON,
|
||||
/* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused
|
||||
/* 0x39 */ MARIO_ANIM_HEAD_STUCK_IN_GROUND,
|
||||
/* 0x3A */ MARIO_ANIM_GROUND_POUND_LANDING,
|
||||
/* 0x3B */ MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND,
|
||||
/* 0x3C */ MARIO_ANIM_START_GROUND_POUND,
|
||||
/* 0x3D */ MARIO_ANIM_GROUND_POUND,
|
||||
/* 0x3E */ MARIO_ANIM_BOTTOM_STUCK_IN_GROUND,
|
||||
/* 0x3F */ MARIO_ANIM_IDLE_WITH_LIGHT_OBJ,
|
||||
/* 0x40 */ MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ,
|
||||
/* 0x41 */ MARIO_ANIM_JUMP_WITH_LIGHT_OBJ,
|
||||
/* 0x42 */ MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ,
|
||||
/* 0x43 */ MARIO_ANIM_FALL_WITH_LIGHT_OBJ,
|
||||
/* 0x44 */ MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ,
|
||||
/* 0x45 */ MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ,
|
||||
/* 0x46 */ MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ,
|
||||
/* 0x47 */ MARIO_ANIM_RIDING_SHELL,
|
||||
/* 0x48 */ MARIO_ANIM_WALKING,
|
||||
/* 0x49 */ MARIO_ANIM_FORWARD_FLIP, // unused
|
||||
/* 0x4A */ MARIO_ANIM_JUMP_RIDING_SHELL,
|
||||
/* 0x4B */ MARIO_ANIM_LAND_FROM_DOUBLE_JUMP,
|
||||
/* 0x4C */ MARIO_ANIM_DOUBLE_JUMP_FALL,
|
||||
/* 0x4D */ MARIO_ANIM_SINGLE_JUMP,
|
||||
/* 0x4E */ MARIO_ANIM_LAND_FROM_SINGLE_JUMP,
|
||||
/* 0x4F */ MARIO_ANIM_AIR_KICK,
|
||||
/* 0x50 */ MARIO_ANIM_DOUBLE_JUMP_RISE,
|
||||
/* 0x51 */ MARIO_ANIM_START_FORWARD_SPINNING, // unused
|
||||
/* 0x52 */ MARIO_ANIM_THROW_LIGHT_OBJECT,
|
||||
/* 0x53 */ MARIO_ANIM_FALL_FROM_SLIDE_KICK,
|
||||
/* 0x54 */ MARIO_ANIM_BEND_KNESS_RIDING_SHELL, // unused
|
||||
/* 0x55 */ MARIO_ANIM_LEGS_STUCK_IN_GROUND,
|
||||
/* 0x56 */ MARIO_ANIM_GENERAL_FALL,
|
||||
/* 0x57 */ MARIO_ANIM_GENERAL_LAND,
|
||||
/* 0x58 */ MARIO_ANIM_BEING_GRABBED,
|
||||
/* 0x59 */ MARIO_ANIM_GRAB_HEAVY_OBJECT,
|
||||
/* 0x5A */ MARIO_ANIM_SLOW_LAND_FROM_DIVE,
|
||||
/* 0x5B */ MARIO_ANIM_FLY_FROM_CANNON,
|
||||
/* 0x5C */ MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT,
|
||||
/* 0x5D */ MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT,
|
||||
/* 0x5E */ MARIO_ANIM_MISSING_CAP,
|
||||
/* 0x5F */ MARIO_ANIM_PULL_DOOR_WALK_IN,
|
||||
/* 0x60 */ MARIO_ANIM_PUSH_DOOR_WALK_IN,
|
||||
/* 0x61 */ MARIO_ANIM_UNLOCK_DOOR,
|
||||
/* 0x62 */ MARIO_ANIM_START_REACH_POCKET, // unused, reaching keys maybe?
|
||||
/* 0x63 */ MARIO_ANIM_REACH_POCKET, // unused
|
||||
/* 0x64 */ MARIO_ANIM_STOP_REACH_POCKET, // unused
|
||||
/* 0x65 */ MARIO_ANIM_GROUND_THROW,
|
||||
/* 0x66 */ MARIO_ANIM_GROUND_KICK,
|
||||
/* 0x67 */ MARIO_ANIM_FIRST_PUNCH,
|
||||
/* 0x68 */ MARIO_ANIM_SECOND_PUNCH,
|
||||
/* 0x69 */ MARIO_ANIM_FIRST_PUNCH_FAST,
|
||||
/* 0x6A */ MARIO_ANIM_SECOND_PUNCH_FAST,
|
||||
/* 0x6B */ MARIO_ANIM_PICK_UP_LIGHT_OBJ,
|
||||
/* 0x6C */ MARIO_ANIM_PUSHING,
|
||||
/* 0x6D */ MARIO_ANIM_START_RIDING_SHELL,
|
||||
/* 0x6E */ MARIO_ANIM_PLACE_LIGHT_OBJ,
|
||||
/* 0x6F */ MARIO_ANIM_FORWARD_SPINNING,
|
||||
/* 0x70 */ MARIO_ANIM_BACKWARD_SPINNING,
|
||||
/* 0x71 */ MARIO_ANIM_BREAKDANCE,
|
||||
/* 0x72 */ MARIO_ANIM_RUNNING,
|
||||
/* 0x73 */ MARIO_ANIM_RUNNING_UNUSED, // unused duplicate, originally part 2?
|
||||
/* 0x74 */ MARIO_ANIM_SOFT_BACK_KB,
|
||||
/* 0x75 */ MARIO_ANIM_SOFT_FRONT_KB,
|
||||
/* 0x76 */ MARIO_ANIM_DYING_IN_QUICKSAND,
|
||||
/* 0x77 */ MARIO_ANIM_IDLE_IN_QUICKSAND,
|
||||
/* 0x78 */ MARIO_ANIM_MOVE_IN_QUICKSAND,
|
||||
/* 0x79 */ MARIO_ANIM_ELECTROCUTION,
|
||||
/* 0x7A */ MARIO_ANIM_SHOCKED,
|
||||
/* 0x7B */ MARIO_ANIM_BACKWARD_KB,
|
||||
/* 0x7C */ MARIO_ANIM_FORWARD_KB,
|
||||
/* 0x7D */ MARIO_ANIM_IDLE_HEAVY_OBJ,
|
||||
/* 0x7E */ MARIO_ANIM_STAND_AGAINST_WALL,
|
||||
/* 0x7F */ MARIO_ANIM_SIDESTEP_LEFT,
|
||||
/* 0x80 */ MARIO_ANIM_SIDESTEP_RIGHT,
|
||||
/* 0x81 */ MARIO_ANIM_START_SLEEP_IDLE,
|
||||
/* 0x82 */ MARIO_ANIM_START_SLEEP_SCRATCH,
|
||||
/* 0x83 */ MARIO_ANIM_START_SLEEP_YAWN,
|
||||
/* 0x84 */ MARIO_ANIM_START_SLEEP_SITTING,
|
||||
/* 0x85 */ MARIO_ANIM_SLEEP_IDLE,
|
||||
/* 0x86 */ MARIO_ANIM_SLEEP_START_LYING,
|
||||
/* 0x87 */ MARIO_ANIM_SLEEP_LYING,
|
||||
/* 0x88 */ MARIO_ANIM_DIVE,
|
||||
/* 0x89 */ MARIO_ANIM_SLIDE_DIVE,
|
||||
/* 0x8A */ MARIO_ANIM_GROUND_BONK,
|
||||
/* 0x8B */ MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ,
|
||||
/* 0x8C */ MARIO_ANIM_SLIDE_KICK,
|
||||
/* 0x8D */ MARIO_ANIM_CROUCH_FROM_SLIDE_KICK,
|
||||
/* 0x8E */ MARIO_ANIM_SLIDE_MOTIONLESS, // unused
|
||||
/* 0x8F */ MARIO_ANIM_STOP_SLIDE,
|
||||
/* 0x90 */ MARIO_ANIM_FALL_FROM_SLIDE,
|
||||
/* 0x91 */ MARIO_ANIM_SLIDE,
|
||||
/* 0x92 */ MARIO_ANIM_TIPTOE,
|
||||
/* 0x93 */ MARIO_ANIM_TWIRL_LAND,
|
||||
/* 0x94 */ MARIO_ANIM_TWIRL,
|
||||
/* 0x95 */ MARIO_ANIM_START_TWIRL,
|
||||
/* 0x96 */ MARIO_ANIM_STOP_CROUCHING,
|
||||
/* 0x97 */ MARIO_ANIM_START_CROUCHING,
|
||||
/* 0x98 */ MARIO_ANIM_CROUCHING,
|
||||
/* 0x99 */ MARIO_ANIM_CRAWLING,
|
||||
/* 0x9A */ MARIO_ANIM_STOP_CRAWLING,
|
||||
/* 0x9B */ MARIO_ANIM_START_CRAWLING,
|
||||
/* 0x9C */ MARIO_ANIM_SUMMON_STAR,
|
||||
/* 0x9D */ MARIO_ANIM_RETURN_STAR_APPROACH_DOOR,
|
||||
/* 0x9E */ MARIO_ANIM_BACKWARDS_WATER_KB,
|
||||
/* 0x9F */ MARIO_ANIM_SWIM_WITH_OBJ_PART1,
|
||||
/* 0xA0 */ MARIO_ANIM_SWIM_WITH_OBJ_PART2,
|
||||
/* 0xA1 */ MARIO_ANIM_FLUTTERKICK_WITH_OBJ,
|
||||
/* 0xA2 */ MARIO_ANIM_WATER_ACTION_END_WITH_OBJ, // either swimming or flutterkicking
|
||||
/* 0xA3 */ MARIO_ANIM_STOP_GRAB_OBJ_WATER,
|
||||
/* 0xA4 */ MARIO_ANIM_WATER_IDLE_WITH_OBJ,
|
||||
/* 0xA5 */ MARIO_ANIM_DROWNING_PART1,
|
||||
/* 0xA6 */ MARIO_ANIM_DROWNING_PART2,
|
||||
/* 0xA7 */ MARIO_ANIM_WATER_DYING,
|
||||
/* 0xA8 */ MARIO_ANIM_WATER_FORWARD_KB,
|
||||
/* 0xA9 */ MARIO_ANIM_FALL_FROM_WATER,
|
||||
/* 0xAA */ MARIO_ANIM_SWIM_PART1,
|
||||
/* 0xAB */ MARIO_ANIM_SWIM_PART2,
|
||||
/* 0xAC */ MARIO_ANIM_FLUTTERKICK,
|
||||
/* 0xAD */ MARIO_ANIM_WATER_ACTION_END, // either swimming or flutterkicking
|
||||
/* 0xAE */ MARIO_ANIM_WATER_PICK_UP_OBJ,
|
||||
/* 0xAF */ MARIO_ANIM_WATER_GRAB_OBJ_PART2,
|
||||
/* 0xB0 */ MARIO_ANIM_WATER_GRAB_OBJ_PART1,
|
||||
/* 0xB1 */ MARIO_ANIM_WATER_THROW_OBJ,
|
||||
/* 0xB2 */ MARIO_ANIM_WATER_IDLE,
|
||||
/* 0xB3 */ MARIO_ANIM_WATER_STAR_DANCE,
|
||||
/* 0xB4 */ MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE,
|
||||
/* 0xB5 */ MARIO_ANIM_GRAB_BOWSER,
|
||||
/* 0xB6 */ MARIO_ANIM_SWINGING_BOWSER,
|
||||
/* 0xB7 */ MARIO_ANIM_RELEASE_BOWSER,
|
||||
/* 0xB8 */ MARIO_ANIM_HOLDING_BOWSER,
|
||||
/* 0xB9 */ MARIO_ANIM_HEAVY_THROW,
|
||||
/* 0xBA */ MARIO_ANIM_WALK_PANTING,
|
||||
/* 0xBB */ MARIO_ANIM_WALK_WITH_HEAVY_OBJ,
|
||||
/* 0xBC */ MARIO_ANIM_TURNING_PART1,
|
||||
/* 0xBD */ MARIO_ANIM_TURNING_PART2,
|
||||
/* 0xBE */ MARIO_ANIM_SLIDEFLIP_LAND,
|
||||
/* 0XBF */ MARIO_ANIM_SLIDEFLIP,
|
||||
/* 0xC0 */ MARIO_ANIM_TRIPLE_JUMP_LAND,
|
||||
/* 0xC1 */ MARIO_ANIM_TRIPLE_JUMP,
|
||||
/* 0xC2 */ MARIO_ANIM_FIRST_PERSON,
|
||||
/* 0xC3 */ MARIO_ANIM_IDLE_HEAD_LEFT,
|
||||
/* 0xC4 */ MARIO_ANIM_IDLE_HEAD_RIGHT,
|
||||
/* 0xC5 */ MARIO_ANIM_IDLE_HEAD_CENTER,
|
||||
/* 0xC6 */ MARIO_ANIM_HANDSTAND_LEFT,
|
||||
/* 0xC7 */ MARIO_ANIM_HANDSTAND_RIGHT,
|
||||
/* 0xC8 */ MARIO_ANIM_WAKE_FROM_SLEEP,
|
||||
/* 0xC9 */ MARIO_ANIM_WAKE_FROM_LYING,
|
||||
/* 0xCA */ MARIO_ANIM_START_TIPTOE,
|
||||
/* 0xCB */ MARIO_ANIM_SLIDEJUMP, // pole jump and wall kick
|
||||
/* 0xCC */ MARIO_ANIM_START_WALLKICK,
|
||||
/* 0xCD */ MARIO_ANIM_STAR_DANCE,
|
||||
/* 0xCE */ MARIO_ANIM_RETURN_FROM_STAR_DANCE,
|
||||
/* 0xCF */ MARIO_ANIM_FORWARD_SPINNING_FLIP,
|
||||
/* 0xD0 */ MARIO_ANIM_TRIPLE_JUMP_FLY
|
||||
};
|
||||
|
||||
#endif // MARIO_ANIMATION_IDS_H
|
||||
@@ -0,0 +1,45 @@
|
||||
#ifndef MARIO_GEO_SWITCH_CASE_IDS_H
|
||||
#define MARIO_GEO_SWITCH_CASE_IDS_H
|
||||
|
||||
/* Mario Geo-Switch-Case IDs */
|
||||
|
||||
enum MarioEyesGSCId
|
||||
{
|
||||
/*0x00*/ MARIO_EYES_BLINK,
|
||||
/*0x01*/ MARIO_EYES_OPEN,
|
||||
/*0x02*/ MARIO_EYES_HALF_CLOSED,
|
||||
/*0x03*/ MARIO_EYES_CLOSED,
|
||||
/*0x04*/ MARIO_EYES_LOOK_LEFT, // unused
|
||||
/*0x05*/ MARIO_EYES_LOOK_RIGHT, // unused
|
||||
/*0x06*/ MARIO_EYES_LOOK_UP, // unused
|
||||
/*0x07*/ MARIO_EYES_LOOK_DOWN, // unused
|
||||
/*0x08*/ MARIO_EYES_DEAD
|
||||
};
|
||||
|
||||
enum MarioHandGSCId
|
||||
{
|
||||
/*0x00*/ MARIO_HAND_FISTS,
|
||||
/*0x01*/ MARIO_HAND_OPEN,
|
||||
/*0x02*/ MARIO_HAND_PEACE_SIGN,
|
||||
/*0x03*/ MARIO_HAND_HOLDING_CAP,
|
||||
/*0x04*/ MARIO_HAND_HOLDING_WING_CAP,
|
||||
/*0x05*/ MARIO_HAND_RIGHT_OPEN
|
||||
};
|
||||
|
||||
enum MarioCapGSCId
|
||||
{
|
||||
/*0x00*/ MARIO_HAS_DEFAULT_CAP_ON,
|
||||
/*0x01*/ MARIO_HAS_DEFAULT_CAP_OFF,
|
||||
/*0x02*/ MARIO_HAS_WING_CAP_ON,
|
||||
/*0x03*/ MARIO_HAS_WING_CAP_OFF // unused
|
||||
};
|
||||
|
||||
enum MarioGrabPosGSCId
|
||||
{
|
||||
/*0x00*/ GRAB_POS_NULL,
|
||||
/*0x01*/ GRAB_POS_LIGHT_OBJ,
|
||||
/*0x02*/ GRAB_POS_HEAVY_OBJ,
|
||||
/*0x03*/ GRAB_POS_BOWSER
|
||||
};
|
||||
|
||||
#endif // MARIO_GEO_SWITCH_CASE_IDS_H
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,15 @@
|
||||
#ifndef PLATFORM_INFO_H
|
||||
#define PLATFORM_INFO_H
|
||||
|
||||
#ifdef TARGET_N64
|
||||
#define IS_64_BIT 0
|
||||
#define IS_BIG_ENDIAN 1
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#define IS_64_BIT (UINTPTR_MAX == 0xFFFFFFFFFFFFFFFFU)
|
||||
#define IS_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
|
||||
#endif
|
||||
|
||||
#define DOUBLE_SIZE_ON_64_BIT(size) ((size) * (sizeof(void *) / 4))
|
||||
|
||||
#endif // PLATFORM_INFO_H
|
||||
@@ -0,0 +1,45 @@
|
||||
#ifndef SEQ_IDS_H
|
||||
#define SEQ_IDS_H
|
||||
|
||||
#define SEQ_VARIATION 0x80
|
||||
|
||||
enum SeqId {
|
||||
SEQ_SOUND_PLAYER, // 0x00
|
||||
SEQ_EVENT_CUTSCENE_COLLECT_STAR, // 0x01
|
||||
SEQ_MENU_TITLE_SCREEN, // 0x02
|
||||
SEQ_LEVEL_GRASS, // 0x03
|
||||
SEQ_LEVEL_INSIDE_CASTLE, // 0x04
|
||||
SEQ_LEVEL_WATER, // 0x05
|
||||
SEQ_LEVEL_HOT, // 0x06
|
||||
SEQ_LEVEL_BOSS_KOOPA, // 0x07
|
||||
SEQ_LEVEL_SNOW, // 0x08
|
||||
SEQ_LEVEL_SLIDE, // 0x09
|
||||
SEQ_LEVEL_SPOOKY, // 0x0A
|
||||
SEQ_EVENT_PIRANHA_PLANT, // 0x0B
|
||||
SEQ_LEVEL_UNDERGROUND, // 0x0C
|
||||
SEQ_MENU_STAR_SELECT, // 0x0D
|
||||
SEQ_EVENT_POWERUP, // 0x0E
|
||||
SEQ_EVENT_METAL_CAP, // 0x0F
|
||||
SEQ_EVENT_KOOPA_MESSAGE, // 0x10
|
||||
SEQ_LEVEL_KOOPA_ROAD, // 0x11
|
||||
SEQ_EVENT_HIGH_SCORE, // 0x12
|
||||
SEQ_EVENT_MERRY_GO_ROUND, // 0x13
|
||||
SEQ_EVENT_RACE, // 0x14
|
||||
SEQ_EVENT_CUTSCENE_STAR_SPAWN, // 0x15
|
||||
SEQ_EVENT_BOSS, // 0x16
|
||||
SEQ_EVENT_CUTSCENE_COLLECT_KEY, // 0x17
|
||||
SEQ_EVENT_ENDLESS_STAIRS, // 0x18
|
||||
SEQ_LEVEL_BOSS_KOOPA_FINAL, // 0x19
|
||||
SEQ_EVENT_CUTSCENE_CREDITS, // 0x1A
|
||||
SEQ_EVENT_SOLVE_PUZZLE, // 0x1B
|
||||
SEQ_EVENT_TOAD_MESSAGE, // 0x1C
|
||||
SEQ_EVENT_PEACH_MESSAGE, // 0x1D
|
||||
SEQ_EVENT_CUTSCENE_INTRO, // 0x1E
|
||||
SEQ_EVENT_CUTSCENE_VICTORY, // 0x1F
|
||||
SEQ_EVENT_CUTSCENE_ENDING, // 0x20
|
||||
SEQ_MENU_FILE_SELECT, // 0x21
|
||||
SEQ_EVENT_CUTSCENE_LAKITU, // 0x22 (not in JP)
|
||||
SEQ_COUNT
|
||||
};
|
||||
|
||||
#endif // SEQ_IDS_H
|
||||
@@ -0,0 +1,435 @@
|
||||
#ifndef SM64_H
|
||||
#define SM64_H
|
||||
|
||||
// Global header for Super Mario 64
|
||||
|
||||
#include "types.h"
|
||||
// #include "config.h"
|
||||
// #include "object_fields.h"
|
||||
// #include "object_constants.h"
|
||||
#include "audio_defines.h"
|
||||
// #include "model_ids.h"
|
||||
// #include "mario_animation_ids.h"
|
||||
// #include "mario_geo_switch_case_ids.h"
|
||||
#include "surface_terrains.h"
|
||||
#include "macros.h"
|
||||
|
||||
// Crash handler enhancement
|
||||
#ifdef CRASH_SCREEN_INCLUDED
|
||||
#define DEBUG_ASSERT(exp) do { if (!(exp)) _n64_assert(__FILE__, __LINE__, #exp, 1); } while (0)
|
||||
#else
|
||||
#define DEBUG_ASSERT(exp)
|
||||
#endif
|
||||
|
||||
// Pointer casting is technically UB, and avoiding it gets rid of endian issues
|
||||
// as well as a nice side effect.
|
||||
#ifdef AVOID_UB
|
||||
#define GET_HIGH_U16_OF_32(var) ((u16)((var) >> 16))
|
||||
#define GET_HIGH_S16_OF_32(var) ((s16)((var) >> 16))
|
||||
#define GET_LOW_U16_OF_32(var) ((u16)((var) & 0xFFFF))
|
||||
#define GET_LOW_S16_OF_32(var) ((s16)((var) & 0xFFFF))
|
||||
#define SET_HIGH_U16_OF_32(var, x) ((var) = ((var) & 0xFFFF) | ((x) << 16))
|
||||
#define SET_HIGH_S16_OF_32(var, x) ((var) = ((var) & 0xFFFF) | ((x) << 16))
|
||||
#else
|
||||
#define GET_HIGH_U16_OF_32(var) (((u16 *)&(var))[0])
|
||||
#define GET_HIGH_S16_OF_32(var) (((s16 *)&(var))[0])
|
||||
#define GET_LOW_U16_OF_32(var) (((u16 *)&(var))[1])
|
||||
#define GET_LOW_S16_OF_32(var) (((s16 *)&(var))[1])
|
||||
#define SET_HIGH_U16_OF_32(var, x) ((((u16 *)&(var))[0]) = (x))
|
||||
#define SET_HIGH_S16_OF_32(var, x) ((((s16 *)&(var))[0]) = (x))
|
||||
#endif
|
||||
|
||||
// Layers
|
||||
#define LAYER_FORCE 0
|
||||
#define LAYER_OPAQUE 1
|
||||
#define LAYER_OPAQUE_DECAL 2
|
||||
#define LAYER_OPAQUE_INTER 3
|
||||
#define LAYER_ALPHA 4
|
||||
#define LAYER_TRANSPARENT 5
|
||||
#define LAYER_TRANSPARENT_DECAL 6
|
||||
#define LAYER_TRANSPARENT_INTER 7
|
||||
|
||||
#define INPUT_NONZERO_ANALOG 0x0001
|
||||
#define INPUT_A_PRESSED 0x0002
|
||||
#define INPUT_OFF_FLOOR 0x0004
|
||||
#define INPUT_ABOVE_SLIDE 0x0008
|
||||
#define INPUT_FIRST_PERSON 0x0010
|
||||
#define INPUT_UNKNOWN_5 0x0020
|
||||
#define INPUT_SQUISHED 0x0040
|
||||
#define INPUT_A_DOWN 0x0080
|
||||
#define INPUT_IN_POISON_GAS 0x0100
|
||||
#define INPUT_IN_WATER 0x0200
|
||||
#define INPUT_UNKNOWN_10 0x0400
|
||||
#define INPUT_INTERACT_OBJ_GRABBABLE 0x0800
|
||||
#define INPUT_UNKNOWN_12 0x1000
|
||||
#define INPUT_B_PRESSED 0x2000
|
||||
#define INPUT_Z_DOWN 0x4000
|
||||
#define INPUT_Z_PRESSED 0x8000
|
||||
|
||||
#define GROUND_STEP_LEFT_GROUND 0
|
||||
#define GROUND_STEP_NONE 1
|
||||
#define GROUND_STEP_HIT_WALL 2
|
||||
#define GROUND_STEP_HIT_WALL_STOP_QSTEPS 2
|
||||
#define GROUND_STEP_HIT_WALL_CONTINUE_QSTEPS 3
|
||||
|
||||
#define AIR_STEP_CHECK_LEDGE_GRAB 0x00000001
|
||||
#define AIR_STEP_CHECK_HANG 0x00000002
|
||||
|
||||
#define AIR_STEP_NONE 0
|
||||
#define AIR_STEP_LANDED 1
|
||||
#define AIR_STEP_HIT_WALL 2
|
||||
#define AIR_STEP_GRABBED_LEDGE 3
|
||||
#define AIR_STEP_GRABBED_CEILING 4
|
||||
#define AIR_STEP_HIT_LAVA_WALL 6
|
||||
|
||||
#define WATER_STEP_NONE 0
|
||||
#define WATER_STEP_HIT_FLOOR 1
|
||||
#define WATER_STEP_HIT_CEILING 2
|
||||
#define WATER_STEP_CANCELLED 3
|
||||
#define WATER_STEP_HIT_WALL 4
|
||||
|
||||
#define PARTICLE_DUST /* 0x00000001 */ (1 << 0)
|
||||
#define PARTICLE_VERTICAL_STAR /* 0x00000002 */ (1 << 1)
|
||||
#define PARTICLE_2 /* 0x00000004 */ (1 << 2)
|
||||
#define PARTICLE_SPARKLES /* 0x00000008 */ (1 << 3)
|
||||
#define PARTICLE_HORIZONTAL_STAR /* 0x00000010 */ (1 << 4)
|
||||
#define PARTICLE_BUBBLE /* 0x00000020 */ (1 << 5)
|
||||
#define PARTICLE_WATER_SPLASH /* 0x00000040 */ (1 << 6)
|
||||
#define PARTICLE_IDLE_WATER_WAVE /* 0x00000080 */ (1 << 7)
|
||||
#define PARTICLE_SHALLOW_WATER_WAVE /* 0x00000100 */ (1 << 8)
|
||||
#define PARTICLE_PLUNGE_BUBBLE /* 0x00000200 */ (1 << 9)
|
||||
#define PARTICLE_WAVE_TRAIL /* 0x00000400 */ (1 << 10)
|
||||
#define PARTICLE_FIRE /* 0x00000800 */ (1 << 11)
|
||||
#define PARTICLE_SHALLOW_WATER_SPLASH /* 0x00001000 */ (1 << 12)
|
||||
#define PARTICLE_LEAF /* 0x00002000 */ (1 << 13)
|
||||
#define PARTICLE_SNOW /* 0x00004000 */ (1 << 14)
|
||||
#define PARTICLE_DIRT /* 0x00008000 */ (1 << 15)
|
||||
#define PARTICLE_MIST_CIRCLE /* 0x00010000 */ (1 << 16)
|
||||
#define PARTICLE_BREATH /* 0x00020000 */ (1 << 17)
|
||||
#define PARTICLE_TRIANGLE /* 0x00040000 */ (1 << 18)
|
||||
#define PARTICLE_19 /* 0x00080000 */ (1 << 19)
|
||||
|
||||
#define MODEL_STATE_NOISE_ALPHA 0x180
|
||||
#define MODEL_STATE_METAL 0x200
|
||||
|
||||
#define MARIO_NORMAL_CAP 0x00000001
|
||||
#define MARIO_VANISH_CAP 0x00000002
|
||||
#define MARIO_METAL_CAP 0x00000004
|
||||
#define MARIO_WING_CAP 0x00000008
|
||||
#define MARIO_CAP_ON_HEAD 0x00000010
|
||||
#define MARIO_CAP_IN_HAND 0x00000020
|
||||
#define MARIO_METAL_SHOCK 0x00000040
|
||||
#define MARIO_TELEPORTING 0x00000080
|
||||
#define MARIO_UNKNOWN_08 0x00000100
|
||||
#define MARIO_UNKNOWN_13 0x00002000
|
||||
#define MARIO_ACTION_SOUND_PLAYED 0x00010000
|
||||
#define MARIO_MARIO_SOUND_PLAYED 0x00020000
|
||||
#define MARIO_UNKNOWN_18 0x00040000
|
||||
#define MARIO_PUNCHING 0x00100000
|
||||
#define MARIO_KICKING 0x00200000
|
||||
#define MARIO_TRIPPING 0x00400000
|
||||
#define MARIO_UNKNOWN_25 0x02000000
|
||||
#define MARIO_UNKNOWN_30 0x40000000
|
||||
#define MARIO_UNKNOWN_31 0x80000000
|
||||
|
||||
#define MARIO_SPECIAL_CAPS (MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP)
|
||||
#define MARIO_CAPS (MARIO_NORMAL_CAP | MARIO_SPECIAL_CAPS)
|
||||
|
||||
#define ACT_ID_MASK 0x000001FF
|
||||
|
||||
#define ACT_GROUP_MASK 0x000001C0
|
||||
#define ACT_GROUP_STATIONARY /* 0x00000000 */ (0 << 6)
|
||||
#define ACT_GROUP_MOVING /* 0x00000040 */ (1 << 6)
|
||||
#define ACT_GROUP_AIRBORNE /* 0x00000080 */ (2 << 6)
|
||||
#define ACT_GROUP_SUBMERGED /* 0x000000C0 */ (3 << 6)
|
||||
#define ACT_GROUP_CUTSCENE /* 0x00000100 */ (4 << 6)
|
||||
#define ACT_GROUP_AUTOMATIC /* 0x00000140 */ (5 << 6)
|
||||
#define ACT_GROUP_OBJECT /* 0x00000180 */ (6 << 6)
|
||||
|
||||
#define ACT_FLAG_STATIONARY /* 0x00000200 */ (1 << 9)
|
||||
#define ACT_FLAG_MOVING /* 0x00000400 */ (1 << 10)
|
||||
#define ACT_FLAG_AIR /* 0x00000800 */ (1 << 11)
|
||||
#define ACT_FLAG_INTANGIBLE /* 0x00001000 */ (1 << 12)
|
||||
#define ACT_FLAG_SWIMMING /* 0x00002000 */ (1 << 13)
|
||||
#define ACT_FLAG_METAL_WATER /* 0x00004000 */ (1 << 14)
|
||||
#define ACT_FLAG_SHORT_HITBOX /* 0x00008000 */ (1 << 15)
|
||||
#define ACT_FLAG_RIDING_SHELL /* 0x00010000 */ (1 << 16)
|
||||
#define ACT_FLAG_INVULNERABLE /* 0x00020000 */ (1 << 17)
|
||||
#define ACT_FLAG_BUTT_OR_STOMACH_SLIDE /* 0x00040000 */ (1 << 18)
|
||||
#define ACT_FLAG_DIVING /* 0x00080000 */ (1 << 19)
|
||||
#define ACT_FLAG_ON_POLE /* 0x00100000 */ (1 << 20)
|
||||
#define ACT_FLAG_HANGING /* 0x00200000 */ (1 << 21)
|
||||
#define ACT_FLAG_IDLE /* 0x00400000 */ (1 << 22)
|
||||
#define ACT_FLAG_ATTACKING /* 0x00800000 */ (1 << 23)
|
||||
#define ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION /* 0x01000000 */ (1 << 24)
|
||||
#define ACT_FLAG_CONTROL_JUMP_HEIGHT /* 0x02000000 */ (1 << 25)
|
||||
#define ACT_FLAG_ALLOW_FIRST_PERSON /* 0x04000000 */ (1 << 26)
|
||||
#define ACT_FLAG_PAUSE_EXIT /* 0x08000000 */ (1 << 27)
|
||||
#define ACT_FLAG_SWIMMING_OR_FLYING /* 0x10000000 */ (1 << 28)
|
||||
#define ACT_FLAG_WATER_OR_TEXT /* 0x20000000 */ (1 << 29)
|
||||
#define ACT_FLAG_THROWING /* 0x80000000 */ (1 << 31)
|
||||
|
||||
#define ACT_UNINITIALIZED 0x00000000 // (0x000)
|
||||
|
||||
// group 0x000: stationary actions
|
||||
#define ACT_IDLE 0x0C400201 // (0x001 | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_START_SLEEPING 0x0C400202 // (0x002 | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_SLEEPING 0x0C000203 // (0x003 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_WAKING_UP 0x0C000204 // (0x004 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_PANTING 0x0C400205 // (0x005 | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_HOLD_PANTING_UNUSED 0x08000206 // (0x006 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_HOLD_IDLE 0x08000207 // (0x007 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_HOLD_HEAVY_IDLE 0x08000208 // (0x008 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_STANDING_AGAINST_WALL 0x0C400209 // (0x009 | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_COUGHING 0x0C40020A // (0x00A | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_SHIVERING 0x0C40020B // (0x00B | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_IN_QUICKSAND 0x0002020D // (0x00D | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_UNKNOWN_0002020E 0x0002020E // (0x00E | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_CROUCHING 0x0C008220 // (0x020 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_START_CROUCHING 0x0C008221 // (0x021 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_STOP_CROUCHING 0x0C008222 // (0x022 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_START_CRAWLING 0x0C008223 // (0x023 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_STOP_CRAWLING 0x0C008224 // (0x024 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_SLIDE_KICK_SLIDE_STOP 0x08000225 // (0x025 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_SHOCKWAVE_BOUNCE 0x00020226 // (0x026 | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_FIRST_PERSON 0x0C000227 // (0x027 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_BACKFLIP_LAND_STOP 0x0800022F // (0x02F | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_JUMP_LAND_STOP 0x0C000230 // (0x030 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_DOUBLE_JUMP_LAND_STOP 0x0C000231 // (0x031 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_FREEFALL_LAND_STOP 0x0C000232 // (0x032 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_SIDE_FLIP_LAND_STOP 0x0C000233 // (0x033 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_HOLD_JUMP_LAND_STOP 0x08000234 // (0x034 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_HOLD_FREEFALL_LAND_STOP 0x08000235 // (0x035 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_AIR_THROW_LAND 0x80000A36 // (0x036 | ACT_FLAG_STATIONARY | ACT_FLAG_AIR | ACT_FLAG_THROWING)
|
||||
#define ACT_TWIRL_LAND 0x18800238 // (0x038 | ACT_FLAG_STATIONARY | ACT_FLAG_ATTACKING | ACT_FLAG_PAUSE_EXIT | ACT_FLAG_SWIMMING_OR_FLYING)
|
||||
#define ACT_LAVA_BOOST_LAND 0x08000239 // (0x039 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_TRIPLE_JUMP_LAND_STOP 0x0800023A // (0x03A | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_LONG_JUMP_LAND_STOP 0x0800023B // (0x03B | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_GROUND_POUND_LAND 0x0080023C // (0x03C | ACT_FLAG_STATIONARY | ACT_FLAG_ATTACKING)
|
||||
#define ACT_BRAKING_STOP 0x0C00023D // (0x03D | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_BUTT_SLIDE_STOP 0x0C00023E // (0x03E | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_HOLD_BUTT_SLIDE_STOP 0x0800043F // (0x03F | ACT_FLAG_MOVING | ACT_FLAG_PAUSE_EXIT)
|
||||
|
||||
// group 0x040: moving (ground) actions
|
||||
#define ACT_WALKING 0x04000440 // (0x040 | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_HOLD_WALKING 0x00000442 // (0x042 | ACT_FLAG_MOVING)
|
||||
#define ACT_TURNING_AROUND 0x00000443 // (0x043 | ACT_FLAG_MOVING)
|
||||
#define ACT_FINISH_TURNING_AROUND 0x00000444 // (0x044 | ACT_FLAG_MOVING)
|
||||
#define ACT_BRAKING 0x04000445 // (0x045 | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_RIDING_SHELL_GROUND 0x20810446 // (0x046 | ACT_FLAG_MOVING | ACT_FLAG_RIDING_SHELL | ACT_FLAG_ATTACKING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_HOLD_HEAVY_WALKING 0x00000447 // (0x047 | ACT_FLAG_MOVING)
|
||||
#define ACT_CRAWLING 0x04008448 // (0x048 | ACT_FLAG_MOVING | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_BURNING_GROUND 0x00020449 // (0x049 | ACT_FLAG_MOVING | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_DECELERATING 0x0400044A // (0x04A | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_HOLD_DECELERATING 0x0000044B // (0x04B | ACT_FLAG_MOVING)
|
||||
#define ACT_BEGIN_SLIDING 0x00000050 // (0x050)
|
||||
#define ACT_HOLD_BEGIN_SLIDING 0x00000051 // (0x051)
|
||||
#define ACT_BUTT_SLIDE 0x00840452 // (0x052 | ACT_FLAG_MOVING | ACT_FLAG_BUTT_OR_STOMACH_SLIDE | ACT_FLAG_ATTACKING)
|
||||
#define ACT_STOMACH_SLIDE 0x008C0453 // (0x053 | ACT_FLAG_MOVING | ACT_FLAG_BUTT_OR_STOMACH_SLIDE | ACT_FLAG_DIVING | ACT_FLAG_ATTACKING)
|
||||
#define ACT_HOLD_BUTT_SLIDE 0x00840454 // (0x054 | ACT_FLAG_MOVING | ACT_FLAG_BUTT_OR_STOMACH_SLIDE | ACT_FLAG_ATTACKING)
|
||||
#define ACT_HOLD_STOMACH_SLIDE 0x008C0455 // (0x055 | ACT_FLAG_MOVING | ACT_FLAG_BUTT_OR_STOMACH_SLIDE | ACT_FLAG_DIVING | ACT_FLAG_ATTACKING)
|
||||
#define ACT_DIVE_SLIDE 0x00880456 // (0x056 | ACT_FLAG_MOVING | ACT_FLAG_DIVING | ACT_FLAG_ATTACKING)
|
||||
#define ACT_MOVE_PUNCHING 0x00800457 // (0x057 | ACT_FLAG_MOVING | ACT_FLAG_ATTACKING)
|
||||
#define ACT_CROUCH_SLIDE 0x04808459 // (0x059 | ACT_FLAG_MOVING | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ATTACKING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_SLIDE_KICK_SLIDE 0x0080045A // (0x05A | ACT_FLAG_MOVING | ACT_FLAG_ATTACKING)
|
||||
#define ACT_HARD_BACKWARD_GROUND_KB 0x00020460 // (0x060 | ACT_FLAG_MOVING | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_HARD_FORWARD_GROUND_KB 0x00020461 // (0x061 | ACT_FLAG_MOVING | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_BACKWARD_GROUND_KB 0x00020462 // (0x062 | ACT_FLAG_MOVING | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_FORWARD_GROUND_KB 0x00020463 // (0x063 | ACT_FLAG_MOVING | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_SOFT_BACKWARD_GROUND_KB 0x00020464 // (0x064 | ACT_FLAG_MOVING | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_SOFT_FORWARD_GROUND_KB 0x00020465 // (0x065 | ACT_FLAG_MOVING | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_GROUND_BONK 0x00020466 // (0x066 | ACT_FLAG_MOVING | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_DEATH_EXIT_LAND 0x00020467 // (0x067 | ACT_FLAG_MOVING | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_JUMP_LAND 0x04000470 // (0x070 | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_FREEFALL_LAND 0x04000471 // (0x071 | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_DOUBLE_JUMP_LAND 0x04000472 // (0x072 | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_SIDE_FLIP_LAND 0x04000473 // (0x073 | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_HOLD_JUMP_LAND 0x00000474 // (0x074 | ACT_FLAG_MOVING)
|
||||
#define ACT_HOLD_FREEFALL_LAND 0x00000475 // (0x075 | ACT_FLAG_MOVING)
|
||||
#define ACT_QUICKSAND_JUMP_LAND 0x00000476 // (0x076 | ACT_FLAG_MOVING)
|
||||
#define ACT_HOLD_QUICKSAND_JUMP_LAND 0x00000477 // (0x077 | ACT_FLAG_MOVING)
|
||||
#define ACT_TRIPLE_JUMP_LAND 0x04000478 // (0x078 | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_LONG_JUMP_LAND 0x00000479 // (0x079 | ACT_FLAG_MOVING)
|
||||
#define ACT_BACKFLIP_LAND 0x0400047A // (0x07A | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
|
||||
// group 0x080: airborne actions
|
||||
#define ACT_JUMP 0x03000880 // (0x080 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_DOUBLE_JUMP 0x03000881 // (0x081 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_TRIPLE_JUMP 0x01000882 // (0x082 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_BACKFLIP 0x01000883 // (0x083 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_STEEP_JUMP 0x03000885 // (0x085 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_WALL_KICK_AIR 0x03000886 // (0x086 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_SIDE_FLIP 0x01000887 // (0x087 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_LONG_JUMP 0x03000888 // (0x088 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_WATER_JUMP 0x01000889 // (0x089 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_DIVE 0x0188088A // (0x08A | ACT_FLAG_AIR | ACT_FLAG_DIVING | ACT_FLAG_ATTACKING | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_FREEFALL 0x0100088C // (0x08C | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_TOP_OF_POLE_JUMP 0x0300088D // (0x08D | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_BUTT_SLIDE_AIR 0x0300088E // (0x08E | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_FLYING_TRIPLE_JUMP 0x03000894 // (0x094 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_SHOT_FROM_CANNON 0x00880898 // (0x098 | ACT_FLAG_AIR | ACT_FLAG_DIVING | ACT_FLAG_ATTACKING)
|
||||
#define ACT_FLYING 0x10880899 // (0x099 | ACT_FLAG_AIR | ACT_FLAG_DIVING | ACT_FLAG_ATTACKING | ACT_FLAG_SWIMMING_OR_FLYING)
|
||||
#define ACT_RIDING_SHELL_JUMP 0x0281089A // (0x09A | ACT_FLAG_AIR | ACT_FLAG_RIDING_SHELL | ACT_FLAG_ATTACKING | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_RIDING_SHELL_FALL 0x0081089B // (0x09B | ACT_FLAG_AIR | ACT_FLAG_RIDING_SHELL | ACT_FLAG_ATTACKING)
|
||||
#define ACT_VERTICAL_WIND 0x1008089C // (0x09C | ACT_FLAG_AIR | ACT_FLAG_DIVING | ACT_FLAG_SWIMMING_OR_FLYING)
|
||||
#define ACT_HOLD_JUMP 0x030008A0 // (0x0A0 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_HOLD_FREEFALL 0x010008A1 // (0x0A1 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_HOLD_BUTT_SLIDE_AIR 0x010008A2 // (0x0A2 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_HOLD_WATER_JUMP 0x010008A3 // (0x0A3 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_TWIRLING 0x108008A4 // (0x0A4 | ACT_FLAG_AIR | ACT_FLAG_ATTACKING | ACT_FLAG_SWIMMING_OR_FLYING)
|
||||
#define ACT_FORWARD_ROLLOUT 0x010008A6 // (0x0A6 | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_AIR_HIT_WALL 0x000008A7 // (0x0A7 | ACT_FLAG_AIR)
|
||||
#define ACT_RIDING_HOOT 0x000004A8 // (0x0A8 | ACT_FLAG_MOVING)
|
||||
#define ACT_GROUND_POUND 0x008008A9 // (0x0A9 | ACT_FLAG_AIR | ACT_FLAG_ATTACKING)
|
||||
#define ACT_SLIDE_KICK 0x018008AA // (0x0AA | ACT_FLAG_AIR | ACT_FLAG_ATTACKING | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_AIR_THROW 0x830008AB // (0x0AB | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT | ACT_FLAG_THROWING)
|
||||
#define ACT_JUMP_KICK 0x018008AC // (0x0AC | ACT_FLAG_AIR | ACT_FLAG_ATTACKING | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_BACKWARD_ROLLOUT 0x010008AD // (0x0AD | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_CRAZY_BOX_BOUNCE 0x000008AE // (0x0AE | ACT_FLAG_AIR)
|
||||
#define ACT_SPECIAL_TRIPLE_JUMP 0x030008AF // (0x0AF | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_CONTROL_JUMP_HEIGHT)
|
||||
#define ACT_BACKWARD_AIR_KB 0x010208B0 // (0x0B0 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_FORWARD_AIR_KB 0x010208B1 // (0x0B1 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_HARD_FORWARD_AIR_KB 0x010208B2 // (0x0B2 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_HARD_BACKWARD_AIR_KB 0x010208B3 // (0x0B3 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_BURNING_JUMP 0x010208B4 // (0x0B4 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_BURNING_FALL 0x010208B5 // (0x0B5 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_SOFT_BONK 0x010208B6 // (0x0B6 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_LAVA_BOOST 0x010208B7 // (0x0B7 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_GETTING_BLOWN 0x010208B8 // (0x0B8 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_THROWN_FORWARD 0x010208BD // (0x0BD | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
#define ACT_THROWN_BACKWARD 0x010208BE // (0x0BE | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION)
|
||||
|
||||
// group 0x0C0: submerged actions
|
||||
#define ACT_WATER_IDLE 0x380022C0 // (0x0C0 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_PAUSE_EXIT | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_HOLD_WATER_IDLE 0x380022C1 // (0x0C1 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_PAUSE_EXIT | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_WATER_ACTION_END 0x300022C2 // (0x0C2 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_HOLD_WATER_ACTION_END 0x300022C3 // (0x0C3 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_DROWNING 0x300032C4 // (0x0C4 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_BACKWARD_WATER_KB 0x300222C5 // (0x0C5 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_INVULNERABLE | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_FORWARD_WATER_KB 0x300222C6 // (0x0C6 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_INVULNERABLE | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_WATER_DEATH 0x300032C7 // (0x0C7 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_WATER_SHOCKED 0x300222C8 // (0x0C8 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_INVULNERABLE | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_BREASTSTROKE 0x300024D0 // (0x0D0 | ACT_FLAG_MOVING | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_SWIMMING_END 0x300024D1 // (0x0D1 | ACT_FLAG_MOVING | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_FLUTTER_KICK 0x300024D2 // (0x0D2 | ACT_FLAG_MOVING | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_HOLD_BREASTSTROKE 0x300024D3 // (0x0D3 | ACT_FLAG_MOVING | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_HOLD_SWIMMING_END 0x300024D4 // (0x0D4 | ACT_FLAG_MOVING | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_HOLD_FLUTTER_KICK 0x300024D5 // (0x0D5 | ACT_FLAG_MOVING | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_WATER_SHELL_SWIMMING 0x300024D6 // (0x0D6 | ACT_FLAG_MOVING | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_WATER_THROW 0x300024E0 // (0x0E0 | ACT_FLAG_MOVING | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_WATER_PUNCH 0x300024E1 // (0x0E1 | ACT_FLAG_MOVING | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_WATER_PLUNGE 0x300022E2 // (0x0E2 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_CAUGHT_IN_WHIRLPOOL 0x300222E3 // (0x0E3 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_INVULNERABLE | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_METAL_WATER_STANDING 0x080042F0 // (0x0F0 | ACT_FLAG_STATIONARY | ACT_FLAG_METAL_WATER | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_HOLD_METAL_WATER_STANDING 0x080042F1 // (0x0F1 | ACT_FLAG_STATIONARY | ACT_FLAG_METAL_WATER | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_METAL_WATER_WALKING 0x000044F2 // (0x0F2 | ACT_FLAG_MOVING | ACT_FLAG_METAL_WATER)
|
||||
#define ACT_HOLD_METAL_WATER_WALKING 0x000044F3 // (0x0F3 | ACT_FLAG_MOVING | ACT_FLAG_METAL_WATER)
|
||||
#define ACT_METAL_WATER_FALLING 0x000042F4 // (0x0F4 | ACT_FLAG_STATIONARY | ACT_FLAG_METAL_WATER)
|
||||
#define ACT_HOLD_METAL_WATER_FALLING 0x000042F5 // (0x0F5 | ACT_FLAG_STATIONARY | ACT_FLAG_METAL_WATER)
|
||||
#define ACT_METAL_WATER_FALL_LAND 0x000042F6 // (0x0F6 | ACT_FLAG_STATIONARY | ACT_FLAG_METAL_WATER)
|
||||
#define ACT_HOLD_METAL_WATER_FALL_LAND 0x000042F7 // (0x0F7 | ACT_FLAG_STATIONARY | ACT_FLAG_METAL_WATER)
|
||||
#define ACT_METAL_WATER_JUMP 0x000044F8 // (0x0F8 | ACT_FLAG_MOVING | ACT_FLAG_METAL_WATER)
|
||||
#define ACT_HOLD_METAL_WATER_JUMP 0x000044F9 // (0x0F9 | ACT_FLAG_MOVING | ACT_FLAG_METAL_WATER)
|
||||
#define ACT_METAL_WATER_JUMP_LAND 0x000044FA // (0x0FA | ACT_FLAG_MOVING | ACT_FLAG_METAL_WATER)
|
||||
#define ACT_HOLD_METAL_WATER_JUMP_LAND 0x000044FB // (0x0FB | ACT_FLAG_MOVING | ACT_FLAG_METAL_WATER)
|
||||
|
||||
// group 0x100: cutscene actions
|
||||
#define ACT_DISAPPEARED 0x00001300 // (0x100 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_INTRO_CUTSCENE 0x04001301 // (0x101 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_ALLOW_FIRST_PERSON)
|
||||
#define ACT_STAR_DANCE_EXIT 0x00001302 // (0x102 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_STAR_DANCE_WATER 0x00001303 // (0x103 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_FALL_AFTER_STAR_GRAB 0x00001904 // (0x104 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_READING_AUTOMATIC_DIALOG 0x20001305 // (0x105 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_READING_NPC_DIALOG 0x20001306 // (0x106 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_WATER_OR_TEXT)
|
||||
#define ACT_STAR_DANCE_NO_EXIT 0x00001307 // (0x107 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_READING_SIGN 0x00001308 // (0x108 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_JUMBO_STAR_CUTSCENE 0x00001909 // (0x109 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_WAITING_FOR_DIALOG 0x0000130A // (0x10A | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_DEBUG_FREE_MOVE 0x0000130F // (0x10F | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_STANDING_DEATH 0x00021311 // (0x111 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_QUICKSAND_DEATH 0x00021312 // (0x112 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_ELECTROCUTION 0x00021313 // (0x113 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_SUFFOCATION 0x00021314 // (0x114 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_DEATH_ON_STOMACH 0x00021315 // (0x115 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_DEATH_ON_BACK 0x00021316 // (0x116 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_EATEN_BY_BUBBA 0x00021317 // (0x117 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_END_PEACH_CUTSCENE 0x00001918 // (0x118 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_CREDITS_CUTSCENE 0x00001319 // (0x119 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_END_WAVING_CUTSCENE 0x0000131A // (0x11A | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_PULLING_DOOR 0x00001320 // (0x120 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_PUSHING_DOOR 0x00001321 // (0x121 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_WARP_DOOR_SPAWN 0x00001322 // (0x122 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_EMERGE_FROM_PIPE 0x00001923 // (0x123 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_SPAWN_SPIN_AIRBORNE 0x00001924 // (0x124 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_SPAWN_SPIN_LANDING 0x00001325 // (0x125 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_EXIT_AIRBORNE 0x00001926 // (0x126 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_EXIT_LAND_SAVE_DIALOG 0x00001327 // (0x127 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_DEATH_EXIT 0x00001928 // (0x128 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_UNUSED_DEATH_EXIT 0x00001929 // (0x129 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_FALLING_DEATH_EXIT 0x0000192A // (0x12A | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_SPECIAL_EXIT_AIRBORNE 0x0000192B // (0x12B | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_SPECIAL_DEATH_EXIT 0x0000192C // (0x12C | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_FALLING_EXIT_AIRBORNE 0x0000192D // (0x12D | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_UNLOCKING_KEY_DOOR 0x0000132E // (0x12E | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_UNLOCKING_STAR_DOOR 0x0000132F // (0x12F | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_ENTERING_STAR_DOOR 0x00001331 // (0x131 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_SPAWN_NO_SPIN_AIRBORNE 0x00001932 // (0x132 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_SPAWN_NO_SPIN_LANDING 0x00001333 // (0x133 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_BBH_ENTER_JUMP 0x00001934 // (0x134 | ACT_FLAG_AIR | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_BBH_ENTER_SPIN 0x00001535 // (0x135 | ACT_FLAG_MOVING | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_TELEPORT_FADE_OUT 0x00001336 // (0x136 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_TELEPORT_FADE_IN 0x00001337 // (0x137 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_SHOCKED 0x00020338 // (0x138 | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_SQUISHED 0x00020339 // (0x139 | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_HEAD_STUCK_IN_GROUND 0x0002033A // (0x13A | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_BUTT_STUCK_IN_GROUND 0x0002033B // (0x13B | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_FEET_STUCK_IN_GROUND 0x0002033C // (0x13C | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_PUTTING_ON_CAP 0x0000133D // (0x13D | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
|
||||
// group 0x140: "automatic" actions
|
||||
#define ACT_HOLDING_POLE 0x08100340 // (0x140 | ACT_FLAG_STATIONARY | ACT_FLAG_ON_POLE | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_GRAB_POLE_SLOW 0x00100341 // (0x141 | ACT_FLAG_STATIONARY | ACT_FLAG_ON_POLE)
|
||||
#define ACT_GRAB_POLE_FAST 0x00100342 // (0x142 | ACT_FLAG_STATIONARY | ACT_FLAG_ON_POLE)
|
||||
#define ACT_CLIMBING_POLE 0x00100343 // (0x143 | ACT_FLAG_STATIONARY | ACT_FLAG_ON_POLE)
|
||||
#define ACT_TOP_OF_POLE_TRANSITION 0x00100344 // (0x144 | ACT_FLAG_STATIONARY | ACT_FLAG_ON_POLE)
|
||||
#define ACT_TOP_OF_POLE 0x00100345 // (0x145 | ACT_FLAG_STATIONARY | ACT_FLAG_ON_POLE)
|
||||
#define ACT_START_HANGING 0x08200348 // (0x148 | ACT_FLAG_STATIONARY | ACT_FLAG_HANGING | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_HANGING 0x00200349 // (0x149 | ACT_FLAG_STATIONARY | ACT_FLAG_HANGING)
|
||||
#define ACT_HANG_MOVING 0x0020054A // (0x14A | ACT_FLAG_MOVING | ACT_FLAG_HANGING)
|
||||
#define ACT_LEDGE_GRAB 0x0800034B // (0x14B | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
|
||||
#define ACT_LEDGE_CLIMB_SLOW_1 0x0000054C // (0x14C | ACT_FLAG_MOVING)
|
||||
#define ACT_LEDGE_CLIMB_SLOW_2 0x0000054D // (0x14D | ACT_FLAG_MOVING)
|
||||
#define ACT_LEDGE_CLIMB_DOWN 0x0000054E // (0x14E | ACT_FLAG_MOVING)
|
||||
#define ACT_LEDGE_CLIMB_FAST 0x0000054F // (0x14F | ACT_FLAG_MOVING)
|
||||
#define ACT_GRABBED 0x00020370 // (0x170 | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||
#define ACT_IN_CANNON 0x00001371 // (0x171 | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||
#define ACT_TORNADO_TWIRLING 0x10020372 // (0x172 | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE | ACT_FLAG_SWIMMING_OR_FLYING)
|
||||
|
||||
// group 0x180: object actions
|
||||
#define ACT_PUNCHING 0x00800380 // (0x180 | ACT_FLAG_STATIONARY | ACT_FLAG_ATTACKING)
|
||||
#define ACT_PICKING_UP 0x00000383 // (0x183 | ACT_FLAG_STATIONARY)
|
||||
#define ACT_DIVE_PICKING_UP 0x00000385 // (0x185 | ACT_FLAG_STATIONARY)
|
||||
#define ACT_STOMACH_SLIDE_STOP 0x00000386 // (0x186 | ACT_FLAG_STATIONARY)
|
||||
#define ACT_PLACING_DOWN 0x00000387 // (0x187 | ACT_FLAG_STATIONARY)
|
||||
#define ACT_THROWING 0x80000588 // (0x188 | ACT_FLAG_MOVING | ACT_FLAG_THROWING)
|
||||
#define ACT_HEAVY_THROW 0x80000589 // (0x189 | ACT_FLAG_MOVING | ACT_FLAG_THROWING)
|
||||
#define ACT_PICKING_UP_BOWSER 0x00000390 // (0x190 | ACT_FLAG_STATIONARY)
|
||||
#define ACT_HOLDING_BOWSER 0x00000391 // (0x191 | ACT_FLAG_STATIONARY)
|
||||
#define ACT_RELEASING_BOWSER 0x00000392 // (0x192 | ACT_FLAG_STATIONARY)
|
||||
|
||||
/*
|
||||
this input mask is unused by the controller,
|
||||
but END_DEMO is used internally to signal
|
||||
the demo to end. This button cannot
|
||||
be pressed normally by a controller.
|
||||
*/
|
||||
#define END_DEMO (1 << 7)
|
||||
|
||||
#define VALID_BUTTONS (A_BUTTON | B_BUTTON | Z_TRIG | START_BUTTON | \
|
||||
U_JPAD | D_JPAD | L_JPAD | R_JPAD | \
|
||||
L_TRIG | R_TRIG | \
|
||||
U_CBUTTONS | D_CBUTTONS | L_CBUTTONS | R_CBUTTONS )
|
||||
|
||||
#define C_BUTTONS (U_CBUTTONS | D_CBUTTONS | L_CBUTTONS | R_CBUTTONS )
|
||||
|
||||
#endif // SM64_H
|
||||
@@ -0,0 +1,93 @@
|
||||
#ifndef SPECIAL_PRESET_NAMES_H
|
||||
#define SPECIAL_PRESET_NAMES_H
|
||||
|
||||
enum SpecialPresets {
|
||||
special_null_start,
|
||||
special_yellow_coin,
|
||||
special_yellow_coin_2,
|
||||
special_unknown_3,
|
||||
special_boo,
|
||||
special_unknown_5,
|
||||
special_lll_moving_octagonal_mesh_platform,
|
||||
special_snow_ball,
|
||||
special_lll_drawbridge_spawner,
|
||||
special_empty_9,
|
||||
special_lll_rotating_block_with_fire_bars,
|
||||
special_lll_floating_wood_bridge,
|
||||
special_tumbling_platform,
|
||||
special_lll_rotating_hexagonal_ring,
|
||||
special_lll_sinking_rectangular_platform,
|
||||
special_lll_sinking_square_platforms,
|
||||
special_lll_tilting_square_platform,
|
||||
special_lll_bowser_puzzle,
|
||||
special_mr_i,
|
||||
special_small_bully,
|
||||
special_big_bully,
|
||||
special_empty_21,
|
||||
special_empty_22,
|
||||
special_empty_23,
|
||||
special_empty_24,
|
||||
special_empty_25,
|
||||
special_moving_blue_coin,
|
||||
special_jrb_chest,
|
||||
special_water_ring,
|
||||
special_mine,
|
||||
special_empty_30,
|
||||
special_empty_31,
|
||||
special_butterfly,
|
||||
special_bowser,
|
||||
special_wf_rotating_wooden_platform,
|
||||
special_small_bomp,
|
||||
special_wf_sliding_platform,
|
||||
special_tower_platform_group,
|
||||
special_rotating_counter_clockwise,
|
||||
special_wf_tumbling_bridge,
|
||||
special_large_bomp,
|
||||
|
||||
special_level_geo_03 = 0x65,
|
||||
special_level_geo_04,
|
||||
special_level_geo_05,
|
||||
special_level_geo_06,
|
||||
special_level_geo_07,
|
||||
special_level_geo_08,
|
||||
special_level_geo_09,
|
||||
special_level_geo_0A,
|
||||
special_level_geo_0B,
|
||||
special_level_geo_0C,
|
||||
special_level_geo_0D,
|
||||
special_level_geo_0E,
|
||||
special_level_geo_0F,
|
||||
special_level_geo_10,
|
||||
special_level_geo_11,
|
||||
special_level_geo_12,
|
||||
special_level_geo_13,
|
||||
special_level_geo_14,
|
||||
special_level_geo_15,
|
||||
special_level_geo_16,
|
||||
special_bubble_tree,
|
||||
special_spiky_tree,
|
||||
special_snow_tree,
|
||||
special_unknown_tree,
|
||||
special_palm_tree,
|
||||
special_wooden_door,
|
||||
special_haunted_door = special_wooden_door,
|
||||
special_unknown_door,
|
||||
special_metal_door,
|
||||
special_hmc_door,
|
||||
special_unknown2_door,
|
||||
special_wooden_door_warp,
|
||||
special_unknown1_door_warp,
|
||||
special_metal_door_warp,
|
||||
special_unknown2_door_warp,
|
||||
special_unknown3_door_warp,
|
||||
special_castle_door_warp,
|
||||
special_castle_door,
|
||||
special_0stars_door,
|
||||
special_1star_door,
|
||||
special_3star_door,
|
||||
special_key_door,
|
||||
|
||||
special_null_end = 0xFF
|
||||
};
|
||||
|
||||
#endif // SPECIAL_PRESET_NAMES_H
|
||||
@@ -0,0 +1,223 @@
|
||||
#ifndef SURFACE_TERRAINS_H
|
||||
#define SURFACE_TERRAINS_H
|
||||
|
||||
// Surface Types
|
||||
#define SURFACE_DEFAULT 0x0000 // Environment default
|
||||
#define SURFACE_BURNING 0x0001 // Lava / Frostbite (in SL), but is used mostly for Lava
|
||||
#define SURFACE_0004 0x0004 // Unused, has no function and has parameters
|
||||
#define SURFACE_HANGABLE 0x0005 // Ceiling that Mario can climb on
|
||||
#define SURFACE_SLOW 0x0009 // Slow down Mario, unused
|
||||
#define SURFACE_DEATH_PLANE 0x000A // Death floor
|
||||
#define SURFACE_CLOSE_CAMERA 0x000B // Close camera
|
||||
#define SURFACE_WATER 0x000D // Water, has no action, used on some waterboxes below
|
||||
#define SURFACE_FLOWING_WATER 0x000E // Water (flowing), has parameters
|
||||
#define SURFACE_INTANGIBLE 0x0012 // Intangible (Separates BBH mansion from merry-go-round, for room usage)
|
||||
#define SURFACE_VERY_SLIPPERY 0x0013 // Very slippery, mostly used for slides
|
||||
#define SURFACE_SLIPPERY 0x0014 // Slippery
|
||||
#define SURFACE_NOT_SLIPPERY 0x0015 // Non-slippery, climbable
|
||||
#define SURFACE_TTM_VINES 0x0016 // TTM vines, has no action defined
|
||||
#define SURFACE_MGR_MUSIC 0x001A // Plays the Merry go round music, see handle_merry_go_round_music in bbh_merry_go_round.inc.c for more details
|
||||
#define SURFACE_INSTANT_WARP_1B 0x001B // Instant warp to another area, used to warp between areas in WDW and the endless stairs to warp back
|
||||
#define SURFACE_INSTANT_WARP_1C 0x001C // Instant warp to another area, used to warp between areas in WDW
|
||||
#define SURFACE_INSTANT_WARP_1D 0x001D // Instant warp to another area, used to warp between areas in DDD, SSL and TTM
|
||||
#define SURFACE_INSTANT_WARP_1E 0x001E // Instant warp to another area, used to warp between areas in DDD, SSL and TTM
|
||||
#define SURFACE_SHALLOW_QUICKSAND 0x0021 // Shallow Quicksand (depth of 10 units)
|
||||
#define SURFACE_DEEP_QUICKSAND 0x0022 // Quicksand (lethal, slow, depth of 160 units)
|
||||
#define SURFACE_INSTANT_QUICKSAND 0x0023 // Quicksand (lethal, instant)
|
||||
#define SURFACE_DEEP_MOVING_QUICKSAND 0x0024 // Moving quicksand (flowing, depth of 160 units)
|
||||
#define SURFACE_SHALLOW_MOVING_QUICKSAND 0x0025 // Moving quicksand (flowing, depth of 25 units)
|
||||
#define SURFACE_QUICKSAND 0x0026 // Moving quicksand (60 units)
|
||||
#define SURFACE_MOVING_QUICKSAND 0x0027 // Moving quicksand (flowing, depth of 60 units)
|
||||
#define SURFACE_WALL_MISC 0x0028 // Used for some walls, Cannon to adjust the camera, and some objects like Warp Pipe
|
||||
#define SURFACE_NOISE_DEFAULT 0x0029 // Default floor with noise
|
||||
#define SURFACE_NOISE_SLIPPERY 0x002A // Slippery floor with noise
|
||||
#define SURFACE_HORIZONTAL_WIND 0x002C // Horizontal wind, has parameters
|
||||
#define SURFACE_INSTANT_MOVING_QUICKSAND 0x002D // Quicksand (lethal, flowing)
|
||||
#define SURFACE_ICE 0x002E // Slippery Ice, in snow levels and THI's water floor
|
||||
#define SURFACE_LOOK_UP_WARP 0x002F // Look up and warp (Wing cap entrance)
|
||||
#define SURFACE_HARD 0x0030 // Hard floor (Always has fall damage)
|
||||
#define SURFACE_WARP 0x0032 // Surface warp
|
||||
#define SURFACE_TIMER_START 0x0033 // Timer start (Peach's secret slide)
|
||||
#define SURFACE_TIMER_END 0x0034 // Timer stop (Peach's secret slide)
|
||||
#define SURFACE_HARD_SLIPPERY 0x0035 // Hard and slippery (Always has fall damage)
|
||||
#define SURFACE_HARD_VERY_SLIPPERY 0x0036 // Hard and very slippery (Always has fall damage)
|
||||
#define SURFACE_HARD_NOT_SLIPPERY 0x0037 // Hard and Non-slippery (Always has fall damage)
|
||||
#define SURFACE_VERTICAL_WIND 0x0038 // Death at bottom with vertical wind
|
||||
#define SURFACE_BOSS_FIGHT_CAMERA 0x0065 // Wide camera for BOB and WF bosses
|
||||
#define SURFACE_CAMERA_FREE_ROAM 0x0066 // Free roam camera for THI and TTC
|
||||
#define SURFACE_THI3_WALLKICK 0x0068 // Surface where there's a wall kick section in THI 3rd area, has no action defined
|
||||
#define SURFACE_CAMERA_8_DIR 0x0069 // Surface that enables far camera for platforms, used in THI
|
||||
#define SURFACE_CAMERA_MIDDLE 0x006E // Surface camera that returns to the middle, used on the 4 pillars of SSL
|
||||
#define SURFACE_CAMERA_ROTATE_RIGHT 0x006F // Surface camera that rotates to the right (Bowser 1 & THI)
|
||||
#define SURFACE_CAMERA_ROTATE_LEFT 0x0070 // Surface camera that rotates to the left (BOB & TTM)
|
||||
#define SURFACE_CAMERA_BOUNDARY 0x0072 // Intangible Area, only used to restrict camera movement
|
||||
#define SURFACE_NOISE_VERY_SLIPPERY_73 0x0073 // Very slippery floor with noise, unused
|
||||
#define SURFACE_NOISE_VERY_SLIPPERY_74 0x0074 // Very slippery floor with noise, unused
|
||||
#define SURFACE_NOISE_VERY_SLIPPERY 0x0075 // Very slippery floor with noise, used in CCM
|
||||
#define SURFACE_NO_CAM_COLLISION 0x0076 // Surface with no cam collision flag
|
||||
#define SURFACE_NO_CAM_COLLISION_77 0x0077 // Surface with no cam collision flag, unused
|
||||
#define SURFACE_NO_CAM_COL_VERY_SLIPPERY 0x0078 // Surface with no cam collision flag, very slippery with noise (THI)
|
||||
#define SURFACE_NO_CAM_COL_SLIPPERY 0x0079 // Surface with no cam collision flag, slippery with noise (CCM, PSS and TTM slides)
|
||||
#define SURFACE_SWITCH 0x007A // Surface with no cam collision flag, non-slippery with noise, used by switches and Dorrie
|
||||
#define SURFACE_VANISH_CAP_WALLS 0x007B // Vanish cap walls, pass through them with Vanish Cap
|
||||
#define SURFACE_PAINTING_WOBBLE_A6 0x00A6 // Painting wobble (BOB Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_A7 0x00A7 // Painting wobble (BOB Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_A8 0x00A8 // Painting wobble (BOB Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_A9 0x00A9 // Painting wobble (CCM Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_AA 0x00AA // Painting wobble (CCM Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_AB 0x00AB // Painting wobble (CCM Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_AC 0x00AC // Painting wobble (WF Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_AD 0x00AD // Painting wobble (WF Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_AE 0x00AE // Painting wobble (WF Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_AF 0x00AF // Painting wobble (JRB Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_B0 0x00B0 // Painting wobble (JRB Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_B1 0x00B1 // Painting wobble (JRB Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_B2 0x00B2 // Painting wobble (LLL Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_B3 0x00B3 // Painting wobble (LLL Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_B4 0x00B4 // Painting wobble (LLL Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_B5 0x00B5 // Painting wobble (SSL Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_B6 0x00B6 // Painting wobble (SSL Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_B7 0x00B7 // Painting wobble (SSL Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_B8 0x00B8 // Painting wobble (Unused - Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_B9 0x00B9 // Painting wobble (Unused - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_BA 0x00BA // Painting wobble (Unused - Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_BB 0x00BB // Painting wobble (DDD - Left), makes the painting wobble if touched
|
||||
#define SURFACE_PAINTING_WOBBLE_BC 0x00BC // Painting wobble (Unused, DDD - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_BD 0x00BD // Painting wobble (Unused, DDD - Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_BE 0x00BE // Painting wobble (WDW Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_BF 0x00BF // Painting wobble (WDW Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_C0 0x00C0 // Painting wobble (WDW Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_C1 0x00C1 // Painting wobble (THI Tiny - Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_C2 0x00C2 // Painting wobble (THI Tiny - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_C3 0x00C3 // Painting wobble (THI Tiny - Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_C4 0x00C4 // Painting wobble (TTM Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_C5 0x00C5 // Painting wobble (TTM Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_C6 0x00C6 // Painting wobble (TTM Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_C7 0x00C7 // Painting wobble (Unused, TTC - Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_C8 0x00C8 // Painting wobble (Unused, TTC - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_C9 0x00C9 // Painting wobble (Unused, TTC - Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_CA 0x00CA // Painting wobble (Unused, SL - Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_CB 0x00CB // Painting wobble (Unused, SL - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_CC 0x00CC // Painting wobble (Unused, SL - Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_CD 0x00CD // Painting wobble (THI Huge - Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_CE 0x00CE // Painting wobble (THI Huge - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_CF 0x00CF // Painting wobble (THI Huge - Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_D0 0x00D0 // Painting wobble (HMC & COTMC - Left), makes the painting wobble if touched
|
||||
#define SURFACE_PAINTING_WOBBLE_D1 0x00D1 // Painting wobble (Unused, HMC & COTMC - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_D2 0x00D2 // Painting wobble (Unused, HMC & COTMC - Right)
|
||||
#define SURFACE_PAINTING_WARP_D3 0x00D3 // Painting warp (BOB Left)
|
||||
#define SURFACE_PAINTING_WARP_D4 0x00D4 // Painting warp (BOB Middle)
|
||||
#define SURFACE_PAINTING_WARP_D5 0x00D5 // Painting warp (BOB Right)
|
||||
#define SURFACE_PAINTING_WARP_D6 0x00D6 // Painting warp (CCM Left)
|
||||
#define SURFACE_PAINTING_WARP_D7 0x00D7 // Painting warp (CCM Middle)
|
||||
#define SURFACE_PAINTING_WARP_D8 0x00D8 // Painting warp (CCM Right)
|
||||
#define SURFACE_PAINTING_WARP_D9 0x00D9 // Painting warp (WF Left)
|
||||
#define SURFACE_PAINTING_WARP_DA 0x00DA // Painting warp (WF Middle)
|
||||
#define SURFACE_PAINTING_WARP_DB 0x00DB // Painting warp (WF Right)
|
||||
#define SURFACE_PAINTING_WARP_DC 0x00DC // Painting warp (JRB Left)
|
||||
#define SURFACE_PAINTING_WARP_DD 0x00DD // Painting warp (JRB Middle)
|
||||
#define SURFACE_PAINTING_WARP_DE 0x00DE // Painting warp (JRB Right)
|
||||
#define SURFACE_PAINTING_WARP_DF 0x00DF // Painting warp (LLL Left)
|
||||
#define SURFACE_PAINTING_WARP_E0 0x00E0 // Painting warp (LLL Middle)
|
||||
#define SURFACE_PAINTING_WARP_E1 0x00E1 // Painting warp (LLL Right)
|
||||
#define SURFACE_PAINTING_WARP_E2 0x00E2 // Painting warp (SSL Left)
|
||||
#define SURFACE_PAINTING_WARP_E3 0x00E3 // Painting warp (SSL Medium)
|
||||
#define SURFACE_PAINTING_WARP_E4 0x00E4 // Painting warp (SSL Right)
|
||||
#define SURFACE_PAINTING_WARP_E5 0x00E5 // Painting warp (Unused - Left)
|
||||
#define SURFACE_PAINTING_WARP_E6 0x00E6 // Painting warp (Unused - Medium)
|
||||
#define SURFACE_PAINTING_WARP_E7 0x00E7 // Painting warp (Unused - Right)
|
||||
#define SURFACE_PAINTING_WARP_E8 0x00E8 // Painting warp (DDD - Left)
|
||||
#define SURFACE_PAINTING_WARP_E9 0x00E9 // Painting warp (DDD - Middle)
|
||||
#define SURFACE_PAINTING_WARP_EA 0x00EA // Painting warp (DDD - Right)
|
||||
#define SURFACE_PAINTING_WARP_EB 0x00EB // Painting warp (WDW Left)
|
||||
#define SURFACE_PAINTING_WARP_EC 0x00EC // Painting warp (WDW Middle)
|
||||
#define SURFACE_PAINTING_WARP_ED 0x00ED // Painting warp (WDW Right)
|
||||
#define SURFACE_PAINTING_WARP_EE 0x00EE // Painting warp (THI Tiny - Left)
|
||||
#define SURFACE_PAINTING_WARP_EF 0x00EF // Painting warp (THI Tiny - Middle)
|
||||
#define SURFACE_PAINTING_WARP_F0 0x00F0 // Painting warp (THI Tiny - Right)
|
||||
#define SURFACE_PAINTING_WARP_F1 0x00F1 // Painting warp (TTM Left)
|
||||
#define SURFACE_PAINTING_WARP_F2 0x00F2 // Painting warp (TTM Middle)
|
||||
#define SURFACE_PAINTING_WARP_F3 0x00F3 // Painting warp (TTM Right)
|
||||
#define SURFACE_TTC_PAINTING_1 0x00F4 // Painting warp (TTC Left)
|
||||
#define SURFACE_TTC_PAINTING_2 0x00F5 // Painting warp (TTC Medium)
|
||||
#define SURFACE_TTC_PAINTING_3 0x00F6 // Painting warp (TTC Right)
|
||||
#define SURFACE_PAINTING_WARP_F7 0x00F7 // Painting warp (SL Left)
|
||||
#define SURFACE_PAINTING_WARP_F8 0x00F8 // Painting warp (SL Middle)
|
||||
#define SURFACE_PAINTING_WARP_F9 0x00F9 // Painting warp (SL Right)
|
||||
#define SURFACE_PAINTING_WARP_FA 0x00FA // Painting warp (THI Tiny - Left)
|
||||
#define SURFACE_PAINTING_WARP_FB 0x00FB // Painting warp (THI Tiny - Middle)
|
||||
#define SURFACE_PAINTING_WARP_FC 0x00FC // Painting warp (THI Tiny - Right)
|
||||
#define SURFACE_WOBBLING_WARP 0x00FD // Pool warp (HMC & DDD)
|
||||
#define SURFACE_TRAPDOOR 0x00FF // Bowser Left trapdoor, has no action defined
|
||||
|
||||
#define SURFACE_IS_QUICKSAND(cmd) (cmd >= 0x21 && cmd < 0x28) // Doesn't include SURFACE_INSTANT_MOVING_QUICKSAND
|
||||
#define SURFACE_IS_NOT_HARD(cmd) (cmd != SURFACE_HARD && \
|
||||
!(cmd >= 0x35 && cmd <= 0x37))
|
||||
#define SURFACE_IS_PAINTING_WARP(cmd) (cmd >= 0xD3 && cmd < 0xFD)
|
||||
|
||||
#define SURFACE_CLASS_DEFAULT 0x0000
|
||||
#define SURFACE_CLASS_VERY_SLIPPERY 0x0013
|
||||
#define SURFACE_CLASS_SLIPPERY 0x0014
|
||||
#define SURFACE_CLASS_NOT_SLIPPERY 0x0015
|
||||
|
||||
#define SURFACE_FLAG_DYNAMIC (1 << 0)
|
||||
#define SURFACE_FLAG_NO_CAM_COLLISION (1 << 1)
|
||||
#define SURFACE_FLAG_X_PROJECTION (1 << 3)
|
||||
|
||||
// These are effectively unique "surface" types like those defined higher
|
||||
// And they are used as collision commands to load certain functions
|
||||
#define TERRAIN_LOAD_VERTICES 0x0040 // Begins vertices list for collision triangles
|
||||
#define TERRAIN_LOAD_CONTINUE 0x0041 // Stop loading vertices but continues to load other collision commands
|
||||
#define TERRAIN_LOAD_END 0x0042 // End the collision list
|
||||
#define TERRAIN_LOAD_OBJECTS 0x0043 // Loads in certain objects for level start
|
||||
#define TERRAIN_LOAD_ENVIRONMENT 0x0044 // Loads water/HMC gas
|
||||
|
||||
#define TERRAIN_LOAD_IS_SURFACE_TYPE_LOW(cmd) (cmd < 0x40)
|
||||
#define TERRAIN_LOAD_IS_SURFACE_TYPE_HIGH(cmd) (cmd >= 0x65)
|
||||
|
||||
// Terrain types defined by the level script command terrain_type (cmd_31)
|
||||
#define TERRAIN_GRASS 0x0000
|
||||
#define TERRAIN_STONE 0x0001
|
||||
#define TERRAIN_SNOW 0x0002
|
||||
#define TERRAIN_SAND 0x0003
|
||||
#define TERRAIN_SPOOKY 0x0004
|
||||
#define TERRAIN_WATER 0x0005
|
||||
#define TERRAIN_SLIDE 0x0006
|
||||
#define TERRAIN_MASK 0x0007
|
||||
|
||||
// These collision commands are unique "surface" types like those defined higher
|
||||
|
||||
// Collision Data Routine Initiate
|
||||
#define COL_INIT() TERRAIN_LOAD_VERTICES
|
||||
|
||||
// Collision Vertices Read Initiate
|
||||
#define COL_VERTEX_INIT(vtxNum) vtxNum
|
||||
|
||||
// Collision Vertex
|
||||
#define COL_VERTEX(x, y, z) x, y, z
|
||||
|
||||
// Collision Tris Initiate
|
||||
#define COL_TRI_INIT(surfType, triNum) surfType, triNum
|
||||
|
||||
// Collision Tri
|
||||
#define COL_TRI(v1, v2, v3) v1, v2, v3
|
||||
|
||||
// Collision Tri With Special Params
|
||||
#define COL_TRI_SPECIAL(v1, v2, v3, param) v1, v2, v3, param
|
||||
|
||||
// Collision Tris Stop Loading
|
||||
#define COL_TRI_STOP() TERRAIN_LOAD_CONTINUE
|
||||
|
||||
// End Collision Data
|
||||
#define COL_END() TERRAIN_LOAD_END
|
||||
|
||||
// Special Object Initiate
|
||||
#define COL_SPECIAL_INIT(num) TERRAIN_LOAD_OBJECTS, num
|
||||
|
||||
// Water Boxes Initiate
|
||||
#define COL_WATER_BOX_INIT(num) TERRAIN_LOAD_ENVIRONMENT, num
|
||||
|
||||
// Water Box
|
||||
#define COL_WATER_BOX(id, x1, z1, x2, z2, y) id, x1, z1, x2, z2, y
|
||||
|
||||
#endif // SURFACE_TERRAINS_H
|
||||
@@ -0,0 +1,348 @@
|
||||
#ifndef TYPES_H
|
||||
#define TYPES_H
|
||||
|
||||
// This file contains various data types used in Super Mario 64 that don't yet
|
||||
// have an appropriate header.
|
||||
|
||||
// #include <ultra64.h>
|
||||
#include "macros.h"
|
||||
#include "PR/ultratypes.h"
|
||||
|
||||
// Certain functions are marked as having return values, but do not
|
||||
// actually return a value. This causes undefined behavior, which we'd rather
|
||||
// avoid on modern GCC. This only impacts -O2 and can matter for both the function
|
||||
// itself and functions that call it.
|
||||
#ifdef AVOID_UB
|
||||
#define BAD_RETURN(cmd) void
|
||||
#else
|
||||
#define BAD_RETURN(cmd) cmd
|
||||
#endif
|
||||
|
||||
|
||||
struct Controller
|
||||
{
|
||||
/*0x00*/ s16 rawStickX; //
|
||||
/*0x02*/ s16 rawStickY; //
|
||||
/*0x04*/ float stickX; // [-64, 64] positive is right
|
||||
/*0x08*/ float stickY; // [-64, 64] positive is up
|
||||
/*0x0C*/ float stickMag; // distance from center [0, 64]
|
||||
/*0x10*/ u16 buttonDown;
|
||||
/*0x12*/ u16 buttonPressed;
|
||||
///*0x14*/ OSContStatus *statusData;
|
||||
///*0x18*/ OSContPad *controllerData;
|
||||
#ifdef VERSION_SH
|
||||
/*0x1C*/ int port;
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef f32 Vec2f[2];
|
||||
typedef f32 Vec3f[3]; // X, Y, Z, where Y is up
|
||||
typedef s16 Vec3s[3];
|
||||
typedef s32 Vec3i[3];
|
||||
typedef f32 Vec4f[4];
|
||||
typedef s16 Vec4s[4];
|
||||
|
||||
typedef f32 Mat4[4][4];
|
||||
|
||||
typedef uintptr_t GeoLayout;
|
||||
typedef uintptr_t LevelScript;
|
||||
typedef s16 Movtex;
|
||||
typedef s16 MacroObject;
|
||||
typedef s16 Collision;
|
||||
typedef s16 Trajectory;
|
||||
typedef s16 PaintingData;
|
||||
typedef uintptr_t BehaviorScript;
|
||||
|
||||
enum SpTaskState {
|
||||
SPTASK_STATE_NOT_STARTED,
|
||||
SPTASK_STATE_RUNNING,
|
||||
SPTASK_STATE_INTERRUPTED,
|
||||
SPTASK_STATE_FINISHED,
|
||||
SPTASK_STATE_FINISHED_DP
|
||||
};
|
||||
|
||||
// struct SPTask
|
||||
// {
|
||||
// /*0x00*/ OSTask task;
|
||||
// /*0x40*/ OSMesgQueue *msgqueue;
|
||||
// /*0x44*/ OSMesg msg;
|
||||
// /*0x48*/ enum SpTaskState state;
|
||||
// }; // size = 0x4C, align = 0x8
|
||||
//
|
||||
// struct VblankHandler
|
||||
// {
|
||||
// OSMesgQueue *queue;
|
||||
// OSMesg msg;
|
||||
// };
|
||||
|
||||
#define ANIM_FLAG_NOLOOP (1 << 0) // 0x01
|
||||
#define ANIM_FLAG_FORWARD (1 << 1) // 0x02
|
||||
#define ANIM_FLAG_2 (1 << 2) // 0x04
|
||||
#define ANIM_FLAG_HOR_TRANS (1 << 3) // 0x08
|
||||
#define ANIM_FLAG_VERT_TRANS (1 << 4) // 0x10
|
||||
#define ANIM_FLAG_5 (1 << 5) // 0x20
|
||||
#define ANIM_FLAG_6 (1 << 6) // 0x40
|
||||
#define ANIM_FLAG_7 (1 << 7) // 0x80
|
||||
|
||||
struct Animation {
|
||||
/*0x00*/ s16 flags;
|
||||
/*0x02*/ s16 animYTransDivisor;
|
||||
/*0x04*/ s16 startFrame;
|
||||
/*0x06*/ s16 loopStart;
|
||||
/*0x08*/ s16 loopEnd;
|
||||
/*0x0A*/ s16 unusedBoneCount;
|
||||
/*0x0C*/ s16 *values;
|
||||
/*0x10*/ u16 *index;
|
||||
/*0x14*/ u32 length; // only used with Mario animations to determine how much to load. 0 otherwise.
|
||||
};
|
||||
|
||||
#define ANIMINDEX_NUMPARTS(animindex) (sizeof(animindex) / sizeof(u16) / 6 - 1)
|
||||
|
||||
struct GraphNode
|
||||
{
|
||||
/*0x00*/ s16 type; // structure type
|
||||
/*0x02*/ s16 flags; // hi = drawing layer, lo = rendering modes
|
||||
/*0x04*/ struct GraphNode *prev;
|
||||
/*0x08*/ struct GraphNode *next;
|
||||
/*0x0C*/ struct GraphNode *parent;
|
||||
/*0x10*/ struct GraphNode *children;
|
||||
};
|
||||
|
||||
struct AnimInfo
|
||||
{
|
||||
/*0x00 0x38*/ s16 animID;
|
||||
/*0x02 0x3A*/ s16 animYTrans;
|
||||
/*0x04 0x3C*/ struct Animation *curAnim;
|
||||
/*0x08 0x40*/ s16 animFrame;
|
||||
/*0x0A 0x42*/ u16 animTimer;
|
||||
/*0x0C 0x44*/ s32 animFrameAccelAssist;
|
||||
/*0x10 0x48*/ s32 animAccel;
|
||||
};
|
||||
|
||||
struct GraphNodeObject
|
||||
{
|
||||
/*0x00*/ struct GraphNode node;
|
||||
/*0x14*/ struct GraphNode *sharedChild;
|
||||
/*0x18*/ s8 areaIndex;
|
||||
/*0x19*/ s8 activeAreaIndex;
|
||||
/*0x1A*/ Vec3s angle;
|
||||
/*0x20*/ Vec3f pos;
|
||||
/*0x2C*/ Vec3f scale;
|
||||
/*0x38*/ struct AnimInfo animInfo;
|
||||
/*0x4C*/ struct SpawnInfo *unk4C;
|
||||
/*0x50*/ Mat4 *throwMatrix; // matrix ptr
|
||||
/*0x54*/ Vec3f cameraToObject;
|
||||
};
|
||||
|
||||
struct ObjectNode
|
||||
{
|
||||
struct GraphNodeObject gfx;
|
||||
struct ObjectNode *next;
|
||||
struct ObjectNode *prev;
|
||||
};
|
||||
|
||||
// NOTE: Since ObjectNode is the first member of Object, it is difficult to determine
|
||||
// whether some of these pointers point to ObjectNode or Object.
|
||||
|
||||
struct Object
|
||||
{
|
||||
/*0x000*/ struct ObjectNode header;
|
||||
/*0x068*/ struct Object *parentObj;
|
||||
/*0x06C*/ struct Object *prevObj;
|
||||
/*0x070*/ u32 collidedObjInteractTypes;
|
||||
/*0x074*/ s16 activeFlags;
|
||||
/*0x076*/ s16 numCollidedObjs;
|
||||
/*0x078*/ struct Object *collidedObjs[4];
|
||||
/*0x088*/
|
||||
union
|
||||
{
|
||||
// Object fields. See object_fields.h.
|
||||
u32 asU32[0x50];
|
||||
s32 asS32[0x50];
|
||||
s16 asS16[0x50][2];
|
||||
f32 asF32[0x50];
|
||||
#if !IS_64_BIT
|
||||
s16 *asS16P[0x50];
|
||||
s32 *asS32P[0x50];
|
||||
struct Animation **asAnims[0x50];
|
||||
struct Waypoint *asWaypoint[0x50];
|
||||
struct ChainSegment *asChainSegment[0x50];
|
||||
struct Object *asObject[0x50];
|
||||
struct Surface *asSurface[0x50];
|
||||
void *asVoidPtr[0x50];
|
||||
const void *asConstVoidPtr[0x50];
|
||||
#endif
|
||||
} rawData;
|
||||
#if IS_64_BIT
|
||||
union {
|
||||
s16 *asS16P[0x50];
|
||||
s32 *asS32P[0x50];
|
||||
struct Animation **asAnims[0x50];
|
||||
struct Waypoint *asWaypoint[0x50];
|
||||
struct ChainSegment *asChainSegment[0x50];
|
||||
struct Object *asObject[0x50];
|
||||
struct Surface *asSurface[0x50];
|
||||
void *asVoidPtr[0x50];
|
||||
const void *asConstVoidPtr[0x50];
|
||||
} ptrData;
|
||||
#endif
|
||||
/*0x1C8*/ u32 unused1;
|
||||
/*0x1CC*/ const BehaviorScript *curBhvCommand;
|
||||
/*0x1D0*/ u32 bhvStackIndex;
|
||||
/*0x1D4*/ uintptr_t bhvStack[8];
|
||||
/*0x1F4*/ s16 bhvDelayTimer;
|
||||
/*0x1F6*/ s16 respawnInfoType;
|
||||
/*0x1F8*/ f32 hitboxRadius;
|
||||
/*0x1FC*/ f32 hitboxHeight;
|
||||
/*0x200*/ f32 hurtboxRadius;
|
||||
/*0x204*/ f32 hurtboxHeight;
|
||||
/*0x208*/ f32 hitboxDownOffset;
|
||||
/*0x20C*/ const BehaviorScript *behavior;
|
||||
/*0x210*/ u32 unused2;
|
||||
/*0x214*/ struct Object *platform;
|
||||
/*0x218*/ void *collisionData;
|
||||
/*0x21C*/ Mat4 transform;
|
||||
/*0x25C*/ void *respawnInfo;
|
||||
};
|
||||
|
||||
struct ObjectHitbox
|
||||
{
|
||||
/*0x00*/ u32 interactType;
|
||||
/*0x04*/ u8 downOffset;
|
||||
/*0x05*/ s8 damageOrCoinValue;
|
||||
/*0x06*/ s8 health;
|
||||
/*0x07*/ s8 numLootCoins;
|
||||
/*0x08*/ s16 radius;
|
||||
/*0x0A*/ s16 height;
|
||||
/*0x0C*/ s16 hurtboxRadius;
|
||||
/*0x0E*/ s16 hurtboxHeight;
|
||||
};
|
||||
|
||||
struct Waypoint
|
||||
{
|
||||
s16 flags;
|
||||
Vec3s pos;
|
||||
};
|
||||
|
||||
struct Surface
|
||||
{
|
||||
/*0x00*/ s16 type;
|
||||
/*0x02*/ s16 force;
|
||||
/*0x04*/ s8 flags;
|
||||
/*0x05*/ s8 room;
|
||||
/*0x06*/ s16 lowerY;
|
||||
/*0x08*/ s16 upperY;
|
||||
/*0x0A*/ Vec3s vertex1;
|
||||
/*0x10*/ Vec3s vertex2;
|
||||
/*0x16*/ Vec3s vertex3;
|
||||
/*0x1C*/ struct {
|
||||
f32 x;
|
||||
f32 y;
|
||||
f32 z;
|
||||
} normal;
|
||||
/*0x28*/ f32 originOffset;
|
||||
/*0x2C*/ struct Object *object;
|
||||
};
|
||||
|
||||
struct MarioBodyState
|
||||
{
|
||||
/*0x00*/ u32 action;
|
||||
/*0x04*/ s8 capState; /// see MarioCapGSCId
|
||||
/*0x05*/ s8 eyeState;
|
||||
/*0x06*/ s8 handState;
|
||||
/*0x07*/ s8 wingFlutter; /// whether Mario's wing cap wings are fluttering
|
||||
/*0x08*/ s16 modelState;
|
||||
/*0x0A*/ s8 grabPos;
|
||||
/*0x0B*/ u8 punchState; /// 2 bits for type of punch, 6 bits for punch animation timer
|
||||
/*0x0C*/ Vec3s torsoAngle;
|
||||
/*0x12*/ Vec3s headAngle;
|
||||
/*0x18*/ Vec3f heldObjLastPosition; /// also known as HOLP
|
||||
u8 padding[4];
|
||||
};
|
||||
|
||||
struct OffsetSizePair
|
||||
{
|
||||
u32 offset;
|
||||
u32 size;
|
||||
};
|
||||
|
||||
struct MarioAnimDmaRelatedThing
|
||||
{
|
||||
u32 count;
|
||||
u8 *srcAddr;
|
||||
struct OffsetSizePair anim[1]; // dynamic size
|
||||
};
|
||||
|
||||
struct MarioAnimation
|
||||
{
|
||||
struct MarioAnimDmaRelatedThing *animDmaTable;
|
||||
u8 *currentAnimAddr;
|
||||
struct Animation *targetAnim;
|
||||
u8 padding[4];
|
||||
};
|
||||
|
||||
struct MarioState
|
||||
{
|
||||
/*0x00*/ u16 unk00;
|
||||
/*0x02*/ u16 input;
|
||||
/*0x04*/ u32 flags;
|
||||
/*0x08*/ u32 particleFlags;
|
||||
/*0x0C*/ u32 action;
|
||||
/*0x10*/ u32 prevAction;
|
||||
/*0x14*/ u32 terrainSoundAddend;
|
||||
/*0x18*/ u16 actionState;
|
||||
/*0x1A*/ u16 actionTimer;
|
||||
/*0x1C*/ u32 actionArg;
|
||||
/*0x20*/ f32 intendedMag;
|
||||
/*0x24*/ s16 intendedYaw;
|
||||
/*0x26*/ s16 invincTimer;
|
||||
/*0x28*/ u8 framesSinceA;
|
||||
/*0x29*/ u8 framesSinceB;
|
||||
/*0x2A*/ u8 wallKickTimer;
|
||||
/*0x2B*/ u8 doubleJumpTimer;
|
||||
/*0x2C*/ Vec3s faceAngle;
|
||||
/*0x32*/ Vec3s angleVel;
|
||||
/*0x38*/ s16 slideYaw;
|
||||
/*0x3A*/ s16 twirlYaw;
|
||||
/*0x3C*/ Vec3f pos;
|
||||
/*0x48*/ Vec3f vel;
|
||||
/*0x54*/ f32 forwardVel;
|
||||
/*0x58*/ f32 slideVelX;
|
||||
/*0x5C*/ f32 slideVelZ;
|
||||
/*0x60*/ struct Surface *wall;
|
||||
/*0x64*/ struct Surface *ceil;
|
||||
/*0x68*/ struct Surface *floor;
|
||||
/*0x6C*/ f32 ceilHeight;
|
||||
/*0x70*/ f32 floorHeight;
|
||||
/*0x74*/ s16 floorAngle;
|
||||
/*0x76*/ s16 waterLevel;
|
||||
/*0x78*/ struct Object *interactObj;
|
||||
/*0x7C*/ struct Object *heldObj;
|
||||
/*0x80*/ struct Object *usedObj;
|
||||
/*0x84*/ struct Object *riddenObj;
|
||||
/*0x88*/ struct Object *marioObj;
|
||||
/*0x8C*/ struct SpawnInfo *spawnInfo;
|
||||
/*0x90*/ struct Area *area;
|
||||
// /*0x94*/ struct PlayerCameraState *statusForCamera;
|
||||
/*0x98*/ struct MarioBodyState *marioBodyState;
|
||||
/*0x9C*/ struct Controller *controller;
|
||||
/*0xA0*/ struct MarioAnimation *animation;
|
||||
/*0xA4*/ u32 collidedObjInteractTypes;
|
||||
/*0xA8*/ s16 numCoins;
|
||||
/*0xAA*/ s16 numStars;
|
||||
/*0xAC*/ s8 numKeys; // Unused key mechanic
|
||||
/*0xAD*/ s8 numLives;
|
||||
/*0xAE*/ s16 health;
|
||||
/*0xB0*/ s16 unkB0;
|
||||
/*0xB2*/ u8 hurtCounter;
|
||||
/*0xB3*/ u8 healCounter;
|
||||
/*0xB4*/ u8 squishTimer;
|
||||
/*0xB5*/ u8 fadeWarpOpacity;
|
||||
/*0xB6*/ u16 capTimer;
|
||||
/*0xB8*/ s16 prevNumStarsForDialog;
|
||||
/*0xBC*/ f32 peakHeight;
|
||||
/*0xC0*/ f32 quicksandDepth;
|
||||
/*0xC4*/ f32 unkC4;
|
||||
};
|
||||
|
||||
#endif // TYPES_H
|
||||
Reference in New Issue
Block a user