Refresh 16

This commit is contained in:
n64
2023-08-17 08:56:02 -04:00
parent 66018e9f3c
commit ae770e0df5
1326 changed files with 73566 additions and 26397 deletions
+2 -2
View File
@@ -42,7 +42,7 @@
#define A_INTERLEAVE 13
#define A_SETLOOP 15
#ifndef VERSION_SH
#if !defined(VERSION_SH) && !defined(VERSION_CN)
#define A_ENVMIXER 3
#define A_LOADBUFF 4
@@ -642,7 +642,7 @@ typedef short ENVMIX_STATE[40];
_a->words.w1 = (uintptr_t)(tr); \
}
#ifdef VERSION_SH
#if defined(VERSION_SH) || defined(VERSION_CN)
#undef aLoadBuffer
#undef aSaveBuffer
#undef aMix
+37
View File
@@ -0,0 +1,37 @@
#ifndef IQUE_H
#define IQUE_H
#include "rcp.h"
#define MI_SK_EXCEPTION_REG (MI_BASE_REG+0x14)
#define MI_SK_WATCHDOG_TIMER (MI_BASE_REG+0x18)
// Hardware interrupts
// 0x40 = NAND DMA, 0x80 = MD, 0x100 = RDB, 0x200 = AES,
// 0x400 = PI_ERR, 0x800 = USB0, 0x1000 = USB1, 0x2000 = NAND
#define MI_HW_INTR_REG (MI_BASE_REG+0x38)
#define MI_HW_INTR_MASK_REG (MI_BASE_REG+0x3C)
#define PI_CARD_ADDR_REG (PI_BASE_REG+0x48)
#define PI_EX_RD_LEN_REG (PI_BASE_REG+0x58)
#define PI_EX_WR_LEN_REG (PI_BASE_REG+0x5C)
#define PI_MISC_REG (PI_BASE_REG+0x60)
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
extern u8 *__osBbEepromAddress;
extern u32 __osBbEepromSize;
extern u32 __osBbFlashAddress;
extern u32 __osBbFlashSize;
extern u32 __osBbSramAddress;
extern u32 __osBbSramSize;
extern u32 *__osBbPakAddress[];
extern u32 __osBbPakSize;
extern u32 __osBbIsBb;
extern u32 __osBbHackFlags;
void skKeepAlive(void);
#endif
#endif
+3 -3
View File
@@ -7,7 +7,7 @@ typedef struct
{
u8 *offset;
s32 len;
#ifdef VERSION_SH
#if defined(VERSION_SH) || defined(VERSION_CN)
s8 medium;
s8 magic; // tbl: 0x04, otherwise: 0x03
@@ -32,11 +32,11 @@ typedef struct
typedef struct
{
#ifndef VERSION_SH
#if !defined(VERSION_SH) && !defined(VERSION_CN)
s16 revision;
#endif
s16 seqCount;
#ifdef VERSION_SH
#if defined(VERSION_SH) || defined(VERSION_CN)
s16 unk2;
u8 *data;
#if !IS_64_BIT
+6 -106
View File
@@ -59,37 +59,6 @@ typedef struct {
s32 (*dma)(s32, u32, void *, u32);
s32 (*edma)(OSPiHandle *, s32, u32, void *, u32);
} OSDevMgr;
/*
* Structure for file system
*/
typedef struct {
int status;
OSMesgQueue *queue;
int channel;
u8 id[32];
u8 label[32];
int version;
int dir_size;
int inode_table; /* block location */
int minode_table; /* mirrioring inode_table */
int dir_table; /* block location */
int inode_start_page; /* page # */
u8 banks;
u8 activebank;
} OSPfs;
typedef struct {
u32 file_size; /* bytes */
u32 game_code;
u16 company_code;
char ext_name[4];
char game_name[16];
} OSPfsState;
/*
* Structure for Profiler
@@ -116,39 +85,6 @@ typedef struct {
#define OS_STATE_RUNNING 4
#define OS_STATE_WAITING 8
/* Events */
#ifdef _FINALROM
#define OS_NUM_EVENTS 15
#else
#define OS_NUM_EVENTS 23
#endif
#define OS_EVENT_SW1 0 /* CPU SW1 interrupt */
#define OS_EVENT_SW2 1 /* CPU SW2 interrupt */
#define OS_EVENT_CART 2 /* Cartridge interrupt: used by rmon */
#define OS_EVENT_COUNTER 3 /* Counter int: used by VI/Timer Mgr */
#define OS_EVENT_SP 4 /* SP task done interrupt */
#define OS_EVENT_SI 5 /* SI (controller) interrupt */
#define OS_EVENT_AI 6 /* AI interrupt */
#define OS_EVENT_VI 7 /* VI interrupt: used by VI/Timer Mgr */
#define OS_EVENT_PI 8 /* PI interrupt: used by PI Manager */
#define OS_EVENT_DP 9 /* DP full sync interrupt */
#define OS_EVENT_CPU_BREAK 10 /* CPU breakpoint: used by rmon */
#define OS_EVENT_SP_BREAK 11 /* SP breakpoint: used by rmon */
#define OS_EVENT_FAULT 12 /* CPU fault event: used by rmon */
#define OS_EVENT_THREADSTATUS 13 /* CPU thread status: used by rmon */
#define OS_EVENT_PRENMI 14 /* Pre NMI interrupt */
#ifndef _FINALROM
#define OS_EVENT_RDB_READ_DONE 15 /* RDB read ok event: used by rmon */
#define OS_EVENT_RDB_LOG_DONE 16 /* read of log data complete */
#define OS_EVENT_RDB_DATA_DONE 17 /* read of hostio data complete */
#define OS_EVENT_RDB_REQ_RAMROM 18 /* host needs ramrom access */
#define OS_EVENT_RDB_FREE_RAMROM 19 /* host is done with ramrom access */
#define OS_EVENT_RDB_DBG_DONE 20
#define OS_EVENT_RDB_FLUSH_PROF 21
#define OS_EVENT_RDB_ACK_PROF 22
#endif
/* Flags for debugging purpose */
#define OS_FLAG_CPU_BREAK 1 /* Break exception has occurred */
@@ -186,12 +122,6 @@ typedef struct {
#define OS_PRIORITY_APPMAX 127
#define OS_PRIORITY_IDLE 0 /* Must be 0 */
/* Flags to turn blocking on/off when sending/receiving message */
#define OS_MESG_NOBLOCK 0
#define OS_MESG_BLOCK 1
/* Flags to indicate direction of data transfer */
#define OS_READ 0 /* device -> RDRAM */
@@ -406,42 +336,6 @@ typedef struct {
#define R_CBUTTONS CONT_F
#define D_CBUTTONS CONT_D
/* File System size */
#define OS_PFS_VERSION 0x0200
#define OS_PFS_VERSION_HI (OS_PFS_VERSION >> 8)
#define OS_PFS_VERSION_LO (OS_PFS_VERSION & 255)
#define PFS_FILE_NAME_LEN 16
#define PFS_FILE_EXT_LEN 4
#define BLOCKSIZE 32 /* bytes */
#define PFS_ONE_PAGE 8 /* blocks */
#define PFS_MAX_BANKS 62
/* File System flag */
#define PFS_READ 0
#define PFS_WRITE 1
#define PFS_CREATE 2
/* File System status */
#define PFS_INITIALIZED 0x1
#define PFS_CORRUPTED 0x2 /* File system was corrupted */
/* File System error number */
#define PFS_ERR_NOPACK 1 /* no memory card is plugged or */
#define PFS_ERR_NEW_PACK 2 /* ram pack has been changed to a */
/* different one */
#define PFS_ERR_INCONSISTENT 3 /* need to run Pfschecker */
#define PFS_ERR_CONTRFAIL CONT_OVERRUN_ERROR
#define PFS_ERR_INVALID 5 /* invalid parameter or file not exist*/
#define PFS_ERR_BAD_DATA 6 /* the data read from pack are bad*/
#define PFS_DATA_FULL 7 /* no free pages on ram pack */
#define PFS_DIR_FULL 8 /* no free directories on ram pack*/
#define PFS_ERR_EXIST 9 /* file exists */
#define PFS_ERR_ID_FATAL 10 /* dead ram pack */
#define PFS_ERR_DEVICE 11 /* wrong device type*/
/* definition for EEPROM */
#define EEPROM_MAXBLOCKS 64
@@ -739,6 +633,12 @@ extern s32 osMotorInit(OSMesgQueue *, OSPfs *, int);
extern s32 osMotorStop(OSPfs *);
extern s32 osMotorStart(OSPfs *);
#ifdef VERSION_CN
#define MOTOR_START 1
#define MOTOR_STOP 0
extern s32 __osMotorAccess(OSPfs *, s32);
#endif
/* Enhanced PI interface */
extern OSPiHandle *osCartRomInit(void);
+4 -4
View File
@@ -53,22 +53,22 @@ extern "C" {
typedef struct {
u16 type; /* Controller Type */
u8 status; /* Controller status */
u8 errnum;
u8 errnum;
}OSContStatus;
typedef struct {
u16 button;
s8 stick_x; /* -80 <= stick_x <= 80 */
s8 stick_y; /* -80 <= stick_y <= 80 */
u8 errnum;
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 addressCrc; /* CRC code for address */
u8 dataCrc; /* CRC code for data */
u8 errnum;
u8 errnum;
} OSContRamIo;
+8
View File
@@ -7,4 +7,12 @@
extern void bcopy(const void *, void *, size_t);
extern void bzero(void *, size_t);
/* Printf */
extern int sprintf(char *s, const char *fmt, ...);
extern void osSyncPrintf(const char *fmt, ...);
extern void osAsyncPrintf(const char *fmt, ...);
extern int osSyncGetChars(char *buf);
extern int osAsyncGetChars(char *buf);
#endif /* !_OS_LIBC_H_ */
+14 -1
View File
@@ -76,7 +76,10 @@ typedef struct OSMesgQueue_s {
*/
/* Events */
#ifdef _FINALROM
#ifdef BBPLAYER
#define OS_NUM_EVENTS 31
#elif defined(_FINALROM)
#define OS_NUM_EVENTS 15
#else
#define OS_NUM_EVENTS 23
@@ -107,6 +110,16 @@ typedef struct OSMesgQueue_s {
#define OS_EVENT_RDB_FLUSH_PROF 21
#define OS_EVENT_RDB_ACK_PROF 22
#endif
#ifdef BBPLAYER
#define OS_EVENT_FLASH 23 /* NAND flash operation complete */
#define OS_EVENT_AES 24 /* AES */
#define OS_EVENT_IDE 25 /* IDE? */
#define OS_EVENT_PI_ERR 26 /* PI Error? */
#define OS_EVENT_USB0 27 /* USB Controller 0 */
#define OS_EVENT_USB1 28 /* USB Controller 1 */
#define OS_EVENT_UNK_29 29 /* TODO does this exist at all */
#define OS_EVENT_MD 30 /* Related to card */
#endif
/* Flags to turn blocking on/off when sending/receiving message */
+75
View File
@@ -0,0 +1,75 @@
/*---------------------------------------------------------------------*
Copyright (C) 1998 Nintendo.
$RCSfile: os_motor.h,v $
$Revision: 1.1 $
$Date: 1998/10/09 08:01:15 $
*---------------------------------------------------------------------*/
#ifndef _OS_MOTOR_H_
#define _OS_MOTOR_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif
#include <PR/ultratypes.h>
#include "os_message.h"
#include "os_pfs.h"
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
/**************************************************************************
*
* Type definitions
*
*/
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
/**************************************************************************
*
* Global definitions
*
*/
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
/**************************************************************************
*
* Macro definitions
*
*/
/**************************************************************************
*
* Extern variables
*
*/
/**************************************************************************
*
* Function prototypes
*
*/
/* Rumble PAK interface */
extern s32 osMotorInit(OSMesgQueue *, OSPfs *, int);
extern s32 osMotorStop(OSPfs *);
extern s32 osMotorStart(OSPfs *);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
#ifdef _LANGUAGE_C_PLUS_PLUS
}
#endif
#endif /* !_OS_MOTOR_H_ */
+123
View File
@@ -0,0 +1,123 @@
/*====================================================================
* os_pfs.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_pfs.h,v $
$Revision: 1.1 $
$Date: 1998/10/09 08:01:16 $
*---------------------------------------------------------------------*/
#ifndef _OS_PFS_H_
#define _OS_PFS_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif
#include <PR/ultratypes.h>
#include "os_message.h"
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
/**************************************************************************
*
* Type definitions
*
*/
/*
* Structure for file system
*/
typedef struct {
int status;
OSMesgQueue *queue;
int channel;
u8 id[32];
u8 label[32];
int version;
int dir_size;
int inode_table; /* block location */
int minode_table; /* mirrioring inode_table */
int dir_table; /* block location */
int inode_start_page; /* page # */
u8 banks;
u8 activebank;
} OSPfs;
typedef struct {
u32 file_size; /* bytes */
u32 game_code;
u16 company_code;
char ext_name[4];
char game_name[16];
} OSPfsState;
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
/**************************************************************************
*
* Global definitions
*
*/
/* File System size */
#define OS_PFS_VERSION 0x0200
#define OS_PFS_VERSION_HI (OS_PFS_VERSION >> 8)
#define OS_PFS_VERSION_LO (OS_PFS_VERSION & 255)
#define PFS_FILE_NAME_LEN 16
#define PFS_FILE_EXT_LEN 4
#define BLOCKSIZE 32 /* bytes */
#define PFS_ONE_PAGE 8 /* blocks */
#define PFS_MAX_BANKS 62
/* File System flag */
#define PFS_READ 0
#define PFS_WRITE 1
#define PFS_CREATE 2
/* File System status */
#define PFS_INITIALIZED 0x1
#define PFS_CORRUPTED 0x2 /* File system was corrupted */
/* File System error number */
#define PFS_ERR_NOPACK 1 /* no memory card is plugged or */
#define PFS_ERR_NEW_PACK 2 /* ram pack has been changed to a */
#define PFS_ERR_INCONSISTENT 3 /* need to run Pfschecker */
#define PFS_ERR_CONTRFAIL CONT_OVERRUN_ERROR
#define PFS_ERR_INVALID 5 /* invalid parameter or file not exist*/
#define PFS_ERR_BAD_DATA 6 /* the data read from pack are bad*/
#define PFS_DATA_FULL 7 /* no free pages on ram pack */
#define PFS_DIR_FULL 8 /* no free directories on ram pack*/
#define PFS_ERR_EXIST 9 /* file exists*/
#define PFS_ERR_ID_FATAL 10 /* dead ram pack */
#define PFS_ERR_DEVICE 11 /* wrong device type*/
#ifdef _LANGUAGE_C_PLUS_PLUS
}
#endif
#endif
+1 -1
View File
@@ -61,7 +61,7 @@ typedef struct {
/*0x08*/ void *dramAddr;
/*0x0C*/ uintptr_t devAddr;
/*0x10*/ size_t size;
#if defined(VERSION_EU) || defined(VERSION_SH)
#if defined(VERSION_EU) || defined(VERSION_SH) || defined(VERSION_CN)
OSPiHandle *piHandle; // from the official definition
#endif
} OSIoMesg;
+4
View File
@@ -16,6 +16,8 @@
#define OS_STATE_RUNNING 4
#define OS_STATE_WAITING 8
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
/* Types */
typedef s32 OSPri;
@@ -73,3 +75,5 @@ void osStartThread(OSThread *thread);
void osStopThread(OSThread *thread);
#endif
#endif
+1 -1
View File
@@ -13,7 +13,7 @@ typedef struct OSTimer_str
u64 interval;
u64 remaining;
OSMesgQueue *mq;
OSMesg *msg;
OSMesg msg;
} OSTimer;
typedef u64 OSTime;
+14 -8
View File
@@ -4,6 +4,16 @@
#include <PR/ultratypes.h>
#include <PR/os_message.h>
//TODO: figure out what this is
#define VI_STATE_01 0x01
#define VI_STATE_XSCALE_UPDATED 0x02
#define VI_STATE_YSCALE_UPDATED 0x04
#define VI_STATE_08 0x08 //related to control regs changing
#define VI_STATE_10 0x10 //swap buffer
#define VI_STATE_BLACK 0x20 //probably related to a black screen
#define VI_STATE_REPEATLINE 0x40 //repeat line?
#define VI_STATE_FADE 0x80 //fade
/* Ultra64 Video Interface */
@@ -27,8 +37,7 @@
/* Types */
typedef struct
{
typedef struct {
u32 ctrl;
u32 width;
u32 burst;
@@ -40,8 +49,7 @@ typedef struct
u32 vCurrent;
} OSViCommonRegs;
typedef struct
{
typedef struct {
u32 origin;
u32 yScale;
u32 vStart;
@@ -49,15 +57,13 @@ typedef struct
u32 vIntr;
} OSViFieldRegs;
typedef struct
{
typedef struct {
u8 type;
OSViCommonRegs comRegs;
OSViFieldRegs fldRegs[2];
} OSViMode;
typedef struct
{
typedef struct {
/* 0x00 */ u16 unk00; //some kind of flags. swap buffer sets to 0x10
/* 0x02 */ u16 retraceCount;
/* 0x04 */ void* buffer;
+1
View File
@@ -161,6 +161,7 @@ The Indy development board use cartridge domain 1:
#define DEVICE_TYPE_BULK 1 /* ROM bulk */
#define DEVICE_TYPE_64DD 2 /* 64 Disk Drive */
#define DEVICE_TYPE_SRAM 3 /* SRAM */
#define DEVICE_TYPE_INIT 7 /* initial value */
/*************************************************************************
* SP Memory
+94
View File
@@ -0,0 +1,94 @@
/**************************************************************************
*
* $Revision: 1.6 $
* $Date: 1997/02/11 08:29:31 $
* $Source: /disk6/Master/cvsmdev2/PR/include/rdb.h,v $
*
**************************************************************************/
#ifndef _RDB_H
#define _RDB_H
/* U64 side address */
#define RDB_BASE_REG 0xc0000000
#define RDB_WRITE_INTR_REG (RDB_BASE_REG + 0x8)
#define RDB_READ_INTR_REG (RDB_BASE_REG + 0xc)
#define RDB_BASE_VIRTUAL_ADDR 0x80000000
/* packet type Have six bits, so can have up to 63 types */
#define RDB_TYPE_INVALID 0
#define RDB_TYPE_GtoH_PRINT 1
#define RDB_TYPE_GtoH_FAULT 2
#define RDB_TYPE_GtoH_LOG_CT 3
#define RDB_TYPE_GtoH_LOG 4
#define RDB_TYPE_GtoH_READY_FOR_DATA 5
#define RDB_TYPE_GtoH_DATA_CT 6
#define RDB_TYPE_GtoH_DATA 7
#define RDB_TYPE_GtoH_DEBUG 8
#define RDB_TYPE_GtoH_RAMROM 9
#define RDB_TYPE_GtoH_DEBUG_DONE 10
#define RDB_TYPE_GtoH_DEBUG_READY 11
#define RDB_TYPE_GtoH_KDEBUG 12
#define RDB_TYPE_GtoH_PROF_DATA 22
#define RDB_TYPE_HtoG_LOG_DONE 13
#define RDB_TYPE_HtoG_DEBUG 14
#define RDB_TYPE_HtoG_DEBUG_CT 15
#define RDB_TYPE_HtoG_DATA 16
#define RDB_TYPE_HtoG_DATA_DONE 17
#define RDB_TYPE_HtoG_REQ_RAMROM 18
#define RDB_TYPE_HtoG_FREE_RAMROM 19
#define RDB_TYPE_HtoG_KDEBUG 20
#define RDB_TYPE_HtoG_PROF_SIGNAL 21
#define RDB_PROF_ACK_SIG 1
#define RDB_PROF_FLUSH_SIG 2
#define PROF_BLOCK_SIZE 2048
#define RDB_LOG_MAX_BLOCK_SIZE 0x8000
#define RDB_DATA_MAX_BLOCK_SIZE 0x8000
/* GIO side address */
#define GIO_RDB_BASE_REG 0xbf480000
#define GIO_RDB_WRITE_INTR_REG (GIO_RDB_BASE_REG + 0x8)
#define GIO_RDB_READ_INTR_REG (GIO_RDB_BASE_REG + 0xc)
/* minor device number */
#define GIO_RDB_PRINT_MINOR 1
#define GIO_RDB_DEBUG_MINOR 2
/* interrupt bit */
#define GIO_RDB_WRITE_INTR_BIT 0x80000000
#define GIO_RDB_READ_INTR_BIT 0x40000000
/* debug command */
#define DEBUG_COMMAND_NULL 0
#define DEBUG_COMMAND_MEMORY 1
#define DEBUG_COMMAND_REGISTER 2
#define DEBUG_COMMAND_INVALID 255
/* debug state */
#define DEBUG_STATE_NULL 0
#define DEBUG_STATE_RECEIVE 1
#define DEBUG_STATE_INVALID 255
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
/* Structure for debug port */
typedef struct {
unsigned type : 2; /* 0: invalid, 1: print, 2: debug */
unsigned pad : 4; // CHANGED FROM THE ORIGINAL LIBULTRA HEADER
unsigned length : 2; /* 1, 2, or 3 */
unsigned char buf[3]; /* character buffer */
} rdbPacket;
extern unsigned int __osRdbWriteOK;
extern unsigned int __osRdbSendMessage;
#endif /* _LANGUAGE_C */
#endif /* !_RDB_H */
+1 -1
View File
@@ -18,7 +18,7 @@
/* Flags */
#define M_TASK_FLAG0 1
#define M_TASK_FLAG1 2
#ifdef VERSION_SH
#if defined(VERSION_SH) || defined(VERSION_CN)
#define M_TASK_FLAG2 4
#endif
+4
View File
@@ -1,6 +1,8 @@
#ifndef _ULTRA64_TYPES_H_
#define _ULTRA64_TYPES_H_
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
#ifndef NULL
#define NULL (void *)0
#endif
@@ -42,3 +44,5 @@ typedef ptrdiff_t ssize_t;
#endif
#endif
#endif
+71 -66
View File
@@ -3,6 +3,11 @@
#include "types.h"
#define BPARAM1(param) (((param) & 0xFF) << 24)
#define BPARAM2(param) (((param) & 0xFF) << 16)
#define BPARAM3(param) (((param) & 0xFF) << 8)
#define BPARAM4(param) (((param) & 0xFF) << 0)
extern const BehaviorScript bhvStarDoor[];
extern const BehaviorScript bhvMrI[];
extern const BehaviorScript bhvMrIBody[];
@@ -10,8 +15,8 @@ extern const BehaviorScript bhvMrIParticle[];
extern const BehaviorScript bhvPurpleParticle[];
extern const BehaviorScript bhvGiantPole[];
extern const BehaviorScript bhvPoleGrabbing[];
extern const BehaviorScript bhvThiHugeIslandTop[];
extern const BehaviorScript bhvThiTinyIslandTop[];
extern const BehaviorScript bhvTHIHugeIslandTop[];
extern const BehaviorScript bhvTHITinyIslandTop[];
extern const BehaviorScript bhvCapSwitchBase[];
extern const BehaviorScript bhvCapSwitch[];
extern const BehaviorScript bhvKingBobomb[];
@@ -37,12 +42,12 @@ extern const BehaviorScript bhvUnused05A8[];
extern const BehaviorScript bhvRotatingPlatform[];
extern const BehaviorScript bhvTower[];
extern const BehaviorScript bhvBulletBillCannon[];
extern const BehaviorScript bhvWfBreakableWallRight[];
extern const BehaviorScript bhvWfBreakableWallLeft[];
extern const BehaviorScript bhvWFBreakableWallRight[];
extern const BehaviorScript bhvWFBreakableWallLeft[];
extern const BehaviorScript bhvKickableBoard[];
extern const BehaviorScript bhvTowerDoor[];
extern const BehaviorScript bhvRotatingCounterClockwise[];
extern const BehaviorScript bhvWfRotatingWoodenPlatform[];
extern const BehaviorScript bhvWFRotatingWoodenPlatform[];
extern const BehaviorScript bhvKoopaShellUnderwater[];
extern const BehaviorScript bhvExitPodiumWarp[];
extern const BehaviorScript bhvFadingWarp[];
@@ -51,7 +56,7 @@ extern const BehaviorScript bhvWarpPipe[];
extern const BehaviorScript bhvWhitePuffExplosion[];
extern const BehaviorScript bhvSpawnedStar[];
extern const BehaviorScript bhvSpawnedStarNoLevelExit[];
extern const BehaviorScript bhvMrIBlueCoin[];
extern const BehaviorScript bhvSpawnedBlueCoin[];
extern const BehaviorScript bhvCoinInsideBoo[];
extern const BehaviorScript bhvCoinFormationSpawn[];
extern const BehaviorScript bhvCoinFormation[];
@@ -72,16 +77,16 @@ extern const BehaviorScript bhvTriangleParticleSpawner[];
extern const BehaviorScript bhvDoorWarp[];
extern const BehaviorScript bhvDoor[];
extern const BehaviorScript bhvGrindel[];
extern const BehaviorScript bhvThwomp2[];
extern const BehaviorScript bhvThwomp[];
extern const BehaviorScript bhvThwomp2[];
extern const BehaviorScript bhvTumblingBridgePlatform[];
extern const BehaviorScript bhvWfTumblingBridge[];
extern const BehaviorScript bhvBbhTumblingBridge[];
extern const BehaviorScript bhvLllTumblingBridge[];
extern const BehaviorScript bhvTumblingBridge[];
extern const BehaviorScript bhvBBHTumblingBridge[];
extern const BehaviorScript bhvLLLTumblingBridge[];
extern const BehaviorScript bhvFlame[];
extern const BehaviorScript bhvAnotherElavator[];
extern const BehaviorScript bhvRrElevatorPlatform[];
extern const BehaviorScript bhvHmcElevatorPlatform[];
extern const BehaviorScript bhvRRElevatorPlatform[];
extern const BehaviorScript bhvHMCElevatorPlatform[];
extern const BehaviorScript bhvWaterMist[];
extern const BehaviorScript bhvBreathParticleSpawner[];
extern const BehaviorScript bhvBreakBoxTriangle[];
@@ -99,15 +104,15 @@ extern const BehaviorScript bhvUkiki[];
extern const BehaviorScript bhvUkikiCageChild[];
extern const BehaviorScript bhvUkikiCageStar[];
extern const BehaviorScript bhvUkikiCage[];
extern const BehaviorScript bhvBitfsSinkingPlatforms[];
extern const BehaviorScript bhvBitfsSinkingCagePlatform[];
extern const BehaviorScript bhvDddMovingPole[];
extern const BehaviorScript bhvBitfsTiltingInvertedPyramid[];
extern const BehaviorScript bhvBitFSSinkingPlatforms[];
extern const BehaviorScript bhvBitFSSinkingCagePlatform[];
extern const BehaviorScript bhvDDDMovingPole[];
extern const BehaviorScript bhvBitFSTiltingInvertedPyramid[];
extern const BehaviorScript bhvSquishablePlatform[];
extern const BehaviorScript bhvCutOutObject[];
extern const BehaviorScript bhvBetaMovingFlamesSpawn[];
extern const BehaviorScript bhvBetaMovingFlames[];
extern const BehaviorScript bhvRrRotatingBridgePlatform[];
extern const BehaviorScript bhvRRRotatingBridgePlatform[];
extern const BehaviorScript bhvFlamethrower[];
extern const BehaviorScript bhvFlamethrowerFlame[];
extern const BehaviorScript bhvBouncingFireball[];
@@ -120,9 +125,9 @@ extern const BehaviorScript bhvBlackSmokeUpward[];
extern const BehaviorScript bhvBetaFishSplashSpawner[];
extern const BehaviorScript bhvSpindrift[];
extern const BehaviorScript bhvTowerPlatformGroup[];
extern const BehaviorScript bhvWfSlidingTowerPlatform[];
extern const BehaviorScript bhvWfElevatorTowerPlatform[];
extern const BehaviorScript bhvWfSolidTowerPlatform[];
extern const BehaviorScript bhvWFSlidingTowerPlatform[];
extern const BehaviorScript bhvWFElevatorTowerPlatform[];
extern const BehaviorScript bhvWFSolidTowerPlatform[];
extern const BehaviorScript bhvLeafParticleSpawner[];
extern const BehaviorScript bhvTreeSnow[];
extern const BehaviorScript bhvTreeLeaf[];
@@ -139,7 +144,7 @@ extern const BehaviorScript bhvBreakableBox[];
extern const BehaviorScript bhvPushableMetalBox[];
extern const BehaviorScript bhvHeaveHo[];
extern const BehaviorScript bhvHeaveHoThrowMario[];
extern const BehaviorScript bhvCcmTouchedStarSpawn[];
extern const BehaviorScript bhvCCMTouchedStarSpawn[];
extern const BehaviorScript bhvUnusedPoundablePlatform[];
extern const BehaviorScript bhvBetaTrampolineTop[];
extern const BehaviorScript bhvBetaTrampolineSpring[];
@@ -175,34 +180,34 @@ extern const BehaviorScript bhvBowserKeyUnlockDoor[];
extern const BehaviorScript bhvBowserKeyCourseExit[];
extern const BehaviorScript bhvInvisibleObjectsUnderBridge[];
extern const BehaviorScript bhvWaterLevelPillar[];
extern const BehaviorScript bhvDddWarp[];
extern const BehaviorScript bhvDDDWarp[];
extern const BehaviorScript bhvMoatGrills[];
extern const BehaviorScript bhvClockMinuteHand[];
extern const BehaviorScript bhvClockHourHand[];
extern const BehaviorScript bhvMacroUkiki[];
extern const BehaviorScript bhvStub1D0C[];
extern const BehaviorScript bhvLllRotatingHexagonalPlatform[];
extern const BehaviorScript bhvLllSinkingRockBlock[];
extern const BehaviorScript bhvLLLRotatingHexagonalPlatform[];
extern const BehaviorScript bhvLLLSinkingRockBlock[];
extern const BehaviorScript bhvStub1D70[];
extern const BehaviorScript bhvLllMovingOctagonalMeshPlatform[];
extern const BehaviorScript bhvLLLMovingOctagonalMeshPlatform[];
extern const BehaviorScript bhvSnowBall[];
extern const BehaviorScript bhvLllRotatingBlockWithFireBars[];
extern const BehaviorScript bhvLllRotatingHexFlame[];
extern const BehaviorScript bhvLllWoodPiece[];
extern const BehaviorScript bhvLllFloatingWoodBridge[];
extern const BehaviorScript bhvLLLRotatingBlockWithFireBars[];
extern const BehaviorScript bhvLLLRotatingHexFlame[];
extern const BehaviorScript bhvLLLWoodPiece[];
extern const BehaviorScript bhvLLLFloatingWoodBridge[];
extern const BehaviorScript bhvVolcanoFlames[];
extern const BehaviorScript bhvLllRotatingHexagonalRing[];
extern const BehaviorScript bhvLllSinkingRectangularPlatform[];
extern const BehaviorScript bhvLllSinkingSquarePlatforms[];
extern const BehaviorScript bhvLllTiltingInvertedPyramid[];
extern const BehaviorScript bhvLLLRotatingHexagonalRing[];
extern const BehaviorScript bhvLLLSinkingRectangularPlatform[];
extern const BehaviorScript bhvLLLSinkingSquarePlatforms[];
extern const BehaviorScript bhvLLLTiltingInvertedPyramid[];
extern const BehaviorScript bhvUnused1F30[];
extern const BehaviorScript bhvKoopaShell[];
extern const BehaviorScript bhvKoopaShellFlame[];
extern const BehaviorScript bhvToxBox[];
extern const BehaviorScript bhvPiranhaPlant[];
extern const BehaviorScript bhvLllHexagonalMesh[];
extern const BehaviorScript bhvLllBowserPuzzlePiece[];
extern const BehaviorScript bhvLllBowserPuzzle[];
extern const BehaviorScript bhvLLLHexagonalMesh[];
extern const BehaviorScript bhvLLLBowserPuzzlePiece[];
extern const BehaviorScript bhvLLLBowserPuzzle[];
extern const BehaviorScript bhvTuxiesMother[];
extern const BehaviorScript bhvPenguinBaby[];
extern const BehaviorScript bhvUnused20E0[];
@@ -212,8 +217,8 @@ extern const BehaviorScript bhvFewBlueFishSpawner[];
extern const BehaviorScript bhvFishSpawner[];
extern const BehaviorScript bhvFishCommon[];
extern const BehaviorScript bhvFish[];
extern const BehaviorScript bhvWdwExpressElevator[];
extern const BehaviorScript bhvWdwExpressElevatorPlatform[];
extern const BehaviorScript bhvWDWExpressElevator[];
extern const BehaviorScript bhvWDWExpressElevatorPlatform[];
extern const BehaviorScript bhvChirpChirp[];
extern const BehaviorScript bhvChirpChirpUnused[];
extern const BehaviorScript bhvBub[];
@@ -227,7 +232,7 @@ extern const BehaviorScript bhvBowserSubDoor[];
extern const BehaviorScript bhvBowsersSub[];
extern const BehaviorScript bhvSushiShark[];
extern const BehaviorScript bhvSushiSharkCollisionChild[];
extern const BehaviorScript bhvJrbSlidingBox[];
extern const BehaviorScript bhvJRBSlidingBox[];
extern const BehaviorScript bhvShipPart3[];
extern const BehaviorScript bhvInSunkenShip3[];
extern const BehaviorScript bhvSunkenShipPart[];
@@ -262,7 +267,7 @@ extern const BehaviorScript bhvMerryGoRoundBoo[];
extern const BehaviorScript bhvGhostHuntBoo[];
extern const BehaviorScript bhvHiddenStaircaseStep[];
extern const BehaviorScript bhvBooStaircase[];
extern const BehaviorScript bhvBbhTiltingTrapPlatform[];
extern const BehaviorScript bhvBBHTiltingTrapPlatform[];
extern const BehaviorScript bhvHauntedBookshelf[];
extern const BehaviorScript bhvMeshElevator[];
extern const BehaviorScript bhvMerryGoRound[];
@@ -371,22 +376,22 @@ extern const BehaviorScript bhvBowserBombSmoke[];
extern const BehaviorScript bhvCelebrationStar[];
extern const BehaviorScript bhvCelebrationStarSparkle[];
extern const BehaviorScript bhvStarKeyCollectionPuffSpawner[];
extern const BehaviorScript bhvLllDrawbridgeSpawner[];
extern const BehaviorScript bhvLllDrawbridge[];
extern const BehaviorScript bhvLLLDrawbridgeSpawner[];
extern const BehaviorScript bhvLLLDrawbridge[];
extern const BehaviorScript bhvSmallBomp[];
extern const BehaviorScript bhvLargeBomp[];
extern const BehaviorScript bhvWfSlidingPlatform[];
extern const BehaviorScript bhvWFSlidingPlatform[];
extern const BehaviorScript bhvMoneybag[];
extern const BehaviorScript bhvMoneybagHidden[];
extern const BehaviorScript bhvPitBowlingBall[];
extern const BehaviorScript bhvFreeBowlingBall[];
extern const BehaviorScript bhvBowlingBall[];
extern const BehaviorScript bhvTtmBowlingBallSpawner[];
extern const BehaviorScript bhvBobBowlingBallSpawner[];
extern const BehaviorScript bhvThiBowlingBallSpawner[];
extern const BehaviorScript bhvRrCruiserWing[];
extern const BehaviorScript bhvTTMBowlingBallSpawner[];
extern const BehaviorScript bhvBoBBowlingBallSpawner[];
extern const BehaviorScript bhvTHIBowlingBallSpawner[];
extern const BehaviorScript bhvRRCruiserWing[];
extern const BehaviorScript bhvSpindel[];
extern const BehaviorScript bhvSslMovingPyramidWall[];
extern const BehaviorScript bhvSSLMovingPyramidWall[];
extern const BehaviorScript bhvPyramidElevator[];
extern const BehaviorScript bhvPyramidElevatorTrajectoryMarkerBall[];
extern const BehaviorScript bhvPyramidTop[];
@@ -416,38 +421,38 @@ extern const BehaviorScript bhvRedCoin[];
extern const BehaviorScript bhvBowserCourseRedCoinStar[];
extern const BehaviorScript bhvHiddenStar[];
extern const BehaviorScript bhvHiddenStarTrigger[];
extern const BehaviorScript bhvTtmRollingLog[];
extern const BehaviorScript bhvLllVolcanoFallingTrap[];
extern const BehaviorScript bhvLllRollingLog[];
extern const BehaviorScript bhv1upWalking[];
extern const BehaviorScript bhv1upRunningAway[];
extern const BehaviorScript bhv1upSliding[];
extern const BehaviorScript bhvTTMRollingLog[];
extern const BehaviorScript bhvLLLVolcanoFallingTrap[];
extern const BehaviorScript bhvLLLRollingLog[];
extern const BehaviorScript bhv1UpWalking[];
extern const BehaviorScript bhv1UpRunningAway[];
extern const BehaviorScript bhv1UpSliding[];
extern const BehaviorScript bhv1Up[];
extern const BehaviorScript bhv1upJumpOnApproach[];
extern const BehaviorScript bhvHidden1up[];
extern const BehaviorScript bhvHidden1upTrigger[];
extern const BehaviorScript bhvHidden1upInPole[];
extern const BehaviorScript bhvHidden1upInPoleTrigger[];
extern const BehaviorScript bhvHidden1upInPoleSpawner[];
extern const BehaviorScript bhv1UpJumpOnApproach[];
extern const BehaviorScript bhvHidden1Up[];
extern const BehaviorScript bhvHidden1UpTrigger[];
extern const BehaviorScript bhvHidden1UpInPole[];
extern const BehaviorScript bhvHidden1UpInPoleTrigger[];
extern const BehaviorScript bhvHidden1UpInPoleSpawner[];
extern const BehaviorScript bhvControllablePlatform[];
extern const BehaviorScript bhvControllablePlatformSub[];
extern const BehaviorScript bhvBreakableBoxSmall[];
extern const BehaviorScript bhvSlidingSnowMound[];
extern const BehaviorScript bhvSnowMoundSpawn[];
extern const BehaviorScript bhvWdwSquareFloatingPlatform[];
extern const BehaviorScript bhvWdwRectangularFloatingPlatform[];
extern const BehaviorScript bhvJrbFloatingPlatform[];
extern const BehaviorScript bhvWDWSquareFloatingPlatform[];
extern const BehaviorScript bhvWDWRectangularFloatingPlatform[];
extern const BehaviorScript bhvJRBFloatingPlatform[];
extern const BehaviorScript bhvArrowLift[];
extern const BehaviorScript bhvOrangeNumber[];
extern const BehaviorScript bhvMantaRay[];
extern const BehaviorScript bhvFallingPillar[];
extern const BehaviorScript bhvFallingPillarHitbox[];
extern const BehaviorScript bhvPillarBase[];
extern const BehaviorScript bhvJrbFloatingBox[];
extern const BehaviorScript bhvJRBFloatingBox[];
extern const BehaviorScript bhvDecorativePendulum[];
extern const BehaviorScript bhvTreasureChestsShip[];
extern const BehaviorScript bhvTreasureChestsJrb[];
extern const BehaviorScript bhvTreasureChests[];
extern const BehaviorScript bhvTreasureChestsJRB[];
extern const BehaviorScript bhvTreasureChestsDDD[];
extern const BehaviorScript bhvTreasureChestBottom[];
extern const BehaviorScript bhvTreasureChestTop[];
extern const BehaviorScript bhvMips[];
+17 -12
View File
@@ -10,34 +10,39 @@
// Bug Fixes
// --| Post-JP Version Nintendo Bug Fixes
/// Fixes bug where obtaining over 999 coins sets the number of lives to 999 (or -25)
#define BUGFIX_MAX_LIVES (0 || VERSION_US || VERSION_EU || VERSION_SH)
#define BUGFIX_MAX_LIVES (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
/// Fixes bug where the Boss music won't fade out after defeating King Bob-omb
#define BUGFIX_KING_BOB_OMB_FADE_MUSIC (0 || VERSION_US || VERSION_EU || VERSION_SH)
/// Fixes bug in Bob-Omb Battlefield where entering a warp stops the Koopa race music
#define BUGFIX_KOOPA_RACE_MUSIC (0 || VERSION_US || VERSION_EU || VERSION_SH)
#define BUGFIX_KING_BOB_OMB_FADE_MUSIC (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
/// Fixes bug in Bob-omb Battlefield where entering a warp stops the Koopa race music
#define BUGFIX_KOOPA_RACE_MUSIC (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
/// Fixes bug where Piranha Plants do not reset their action state when the
/// player exits their activation radius.
#define BUGFIX_PIRANHA_PLANT_STATE_RESET (0 || VERSION_US || VERSION_EU || VERSION_SH)
#define BUGFIX_PIRANHA_PLANT_STATE_RESET (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
/// Fixes bug where sleeping Piranha Plants damage players that bump into them
#define BUGFIX_PIRANHA_PLANT_SLEEP_DAMAGE (0 || VERSION_US || VERSION_SH)
#define BUGFIX_PIRANHA_PLANT_SLEEP_DAMAGE (0 || VERSION_US || VERSION_SH || VERSION_CN)
/// Fixes bug where it shows a star when you grab a key in bowser battle stages
#define BUGFIX_STAR_BOWSER_KEY (0 || VERSION_US || VERSION_EU || VERSION_SH)
#define BUGFIX_STAR_BOWSER_KEY (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
/// Fixes bug that enables Mario in time stop even if is not ready to speak
#define BUGFIX_DIALOG_TIME_STOP (0 || VERSION_US || VERSION_EU || VERSION_SH)
#define BUGFIX_DIALOG_TIME_STOP (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
/// Fixes bug that causes Mario to still collide with Bowser in BitS after his defeat
#define BUGFIX_BOWSER_COLLIDE_BITS_DEAD (0 || VERSION_US || VERSION_EU || VERSION_SH)
#define BUGFIX_BOWSER_COLLIDE_BITS_DEAD (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
/// Fixes bug where Bowser wouldn't reset his speed when fallen off (and adds missing checks)
#define BUGFIX_BOWSER_FALLEN_OFF_STAGE (0 || VERSION_US || VERSION_EU || VERSION_SH)
#define BUGFIX_BOWSER_FALLEN_OFF_STAGE (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
/// Fixes bug where Bowser would look weird while fading out
#define BUGFIX_BOWSER_FADING_OUT (0 || VERSION_US || VERSION_EU || VERSION_SH)
#define BUGFIX_BOWSER_FADING_OUT (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
// Support Rumble Pak
#define ENABLE_RUMBLE (0 || VERSION_SH)
#define ENABLE_RUMBLE (0 || VERSION_SH || VERSION_CN)
// Screen Size Defines
#define SCREEN_WIDTH 320
#define SCREEN_HEIGHT 240
// Stack Size Defines
#define IDLE_STACKSIZE 0x800
#define STACKSIZE 0x2000
#define UNUSED_STACKSIZE 0x1400
// Border Height Define for NTSC Versions
#ifdef TARGET_N64
#ifndef VERSION_EU
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef DIALOG_IDS_H
#define DIALOG_IDS_H
enum DialogId {
enum DialogID {
DIALOG_NONE = -1,
DIALOG_000,
DIALOG_001,
+2 -2
View File
@@ -308,7 +308,7 @@
CMD_HH(ty, tz), \
CMD_PTR(displayList)
#define GEO_BILLBOARD() \
GEO_BILLBOARD_WITH_PARAMS(0, 0, 0, 0)
GEO_BILLBOARD_WITH_PARAMS(0, 0, 0, 0)
/**
* 0x15: Create plain display list scene graph node
@@ -357,7 +357,7 @@
CMD_BBH(0x19, 0x00, background), \
CMD_PTR(function)
#define GEO_BACKGROUND_COLOR(background) \
GEO_BACKGROUND(background, NULL)
GEO_BACKGROUND(background, NULL)
/**
* 0x1A: No operation
+11 -11
View File
@@ -214,19 +214,19 @@
CMD_PTR(unk4), \
CMD_W(unk8)
#define OBJECT_WITH_ACTS(model, posX, posY, posZ, angleX, angleY, angleZ, behParam, beh, acts) \
#define OBJECT_WITH_ACTS(model, posX, posY, posZ, angleX, angleY, angleZ, bhvParam, bhv, acts) \
CMD_BBBB(0x24, 0x18, acts, model), \
CMD_HHHHHH(posX, posY, posZ, angleX, angleY, angleZ), \
CMD_W(behParam), \
CMD_PTR(beh)
CMD_W(bhvParam), \
CMD_PTR(bhv)
#define OBJECT(model, posX, posY, posZ, angleX, angleY, angleZ, behParam, beh) \
OBJECT_WITH_ACTS(model, posX, posY, posZ, angleX, angleY, angleZ, behParam, beh, 0x1F)
#define OBJECT(model, posX, posY, posZ, angleX, angleY, angleZ, bhvParam, bhv) \
OBJECT_WITH_ACTS(model, posX, posY, posZ, angleX, angleY, angleZ, bhvParam, bhv, 0x1F)
#define MARIO(unk3, behArg, beh) \
CMD_BBBB(0x25, 0x0C, 0x00, unk3), \
CMD_W(behArg), \
CMD_PTR(beh)
#define MARIO(model, bhvArg, bhv) \
CMD_BBBB(0x25, 0x0C, 0x00, model), \
CMD_W(bhvArg), \
CMD_PTR(bhv)
#define WARP_NODE(id, destLevel, destArea, destNode, flags) \
CMD_BBBB(0x26, 0x08, id, destLevel), \
@@ -268,8 +268,8 @@
CMD_BBH(0x2F, 0x08, 0x0000), \
CMD_PTR(surfaceRooms)
#define SHOW_DIALOG(index, dialogId) \
CMD_BBBB(0x30, 0x04, index, dialogId)
#define SHOW_DIALOG(index, dialogID) \
CMD_BBBB(0x30, 0x04, index, dialogID)
#define TERRAIN_TYPE(terrainType) \
CMD_BBH(0x31, 0x04, terrainType)
+3 -3
View File
@@ -1,11 +1,11 @@
#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_WITH_BHV_PARAM(preset, yaw, posX, posY, posZ, bhvParam) \
((s16)((yaw * 0x10 / 45) << 9) | (preset + 0x1F)), posX, posY, posZ, bhvParam
#define MACRO_OBJECT(preset, yaw, posX, posY, posZ) \
MACRO_OBJECT_WITH_BEH_PARAM(preset, yaw, posX, posY, posZ, 0)
MACRO_OBJECT_WITH_BHV_PARAM(preset, yaw, posX, posY, posZ, 0)
#define MACRO_OBJECT_END() \
0x001E
+246 -1
View File
@@ -2,11 +2,256 @@
#define STDARG_H
// When not building with IDO, use the builtin vaarg macros for portability.
#ifndef __sgi
#if !defined(__sgi) && (__GNUC__ > 2)
#define va_list __builtin_va_list
#define va_start __builtin_va_start
#define va_arg __builtin_va_arg
#define va_end __builtin_va_end
#elif (__GNUC__ == 2)
typedef void *__gnuc_va_list;
typedef __gnuc_va_list va_list;
#ifndef _VA_MIPS_H_ENUM
#define _VA_MIPS_H_ENUM
enum {
__no_type_class = -1,
__void_type_class,
__integer_type_class,
__char_type_class,
__enumeral_type_class,
__boolean_type_class,
__pointer_type_class,
__reference_type_class,
__offset_type_class,
__real_type_class,
__complex_type_class,
__function_type_class,
__method_type_class,
__record_type_class,
__union_type_class,
__array_type_class,
__string_type_class,
__set_type_class,
__file_type_class,
__lang_type_class
};
#endif
/* In GCC version 2, we want an ellipsis at the end of the declaration
of the argument list. GCC version 1 can't parse it. */
#if __GNUC__ > 1
#define __va_ellipsis ...
#else
#define __va_ellipsis
#endif
#ifdef __mips64
#define __va_rounded_size(__TYPE) \
(((sizeof (__TYPE) + 8 - 1) / 8) * 8)
#else
#define __va_rounded_size(__TYPE) \
(((sizeof (__TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
#endif
#ifdef __mips64
#define __va_reg_size 8
#else
#define __va_reg_size 4
#endif
/* Get definitions for _MIPS_SIM_ABI64 etc. */
#ifdef _MIPS_SIM
//#include <sgidefs.h>
#endif
#ifdef STDARG_H
#if defined (__mips_eabi)
#if ! defined (__mips_soft_float) && ! defined (__mips_single_float)
#ifdef __mips64
#define va_start(__AP, __LASTARG) \
(__AP.__gp_regs = ((char *) __builtin_next_arg (__LASTARG) \
- (__builtin_args_info (2) < 8 \
? (8 - __builtin_args_info (2)) * __va_reg_size \
: 0)), \
__AP.__fp_left = 8 - __builtin_args_info (3), \
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * __va_reg_size)
#else /* ! defined (__mips64) */
#define va_start(__AP, __LASTARG) \
(__AP.__gp_regs = ((char *) __builtin_next_arg (__LASTARG) \
- (__builtin_args_info (2) < 8 \
? (8 - __builtin_args_info (2)) * __va_reg_size \
: 0)), \
__AP.__fp_left = (8 - __builtin_args_info (3)) / 2, \
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * 8, \
__AP.__fp_regs = (char *) ((int) __AP.__fp_regs & -8))
#endif /* ! defined (__mips64) */
#else /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float) ) */
#define va_start(__AP, __LASTARG) \
(__AP = ((__gnuc_va_list) __builtin_next_arg (__LASTARG) \
- (__builtin_args_info (2) >= 8 ? 0 \
: (8 - __builtin_args_info (2)) * __va_reg_size)))
#endif /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float) ) */
#else /* ! defined (__mips_eabi) */
#define va_start(__AP, __LASTARG) \
(__AP = (__gnuc_va_list) __builtin_next_arg (__LASTARG))
#endif /* ! (defined (__mips_eabi) && ! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
#else /* ! _STDARG_H */
#define va_alist __builtin_va_alist
#ifdef __mips64
/* This assumes that `long long int' is always a 64 bit type. */
#define va_dcl long long int __builtin_va_alist; __va_ellipsis
#else
#define va_dcl int __builtin_va_alist; __va_ellipsis
#endif
#if defined (__mips_eabi)
#if ! defined (__mips_soft_float) && ! defined (__mips_single_float)
#ifdef __mips64
#define va_start(__AP) \
(__AP.__gp_regs = ((char *) __builtin_next_arg () \
- (__builtin_args_info (2) < 8 \
? (8 - __builtin_args_info (2)) * __va_reg_size \
: __va_reg_size)), \
__AP.__fp_left = 8 - __builtin_args_info (3), \
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * __va_reg_size)
#else /* ! defined (__mips64) */
#define va_start(__AP) \
(__AP.__gp_regs = ((char *) __builtin_next_arg () \
- (__builtin_args_info (2) < 8 \
? (8 - __builtin_args_info (2)) * __va_reg_size \
: __va_reg_size)), \
__AP.__fp_left = (8 - __builtin_args_info (3)) / 2, \
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * 8, \
__AP.__fp_regs = (char *) ((int) __AP.__fp_regs & -8))
#endif /* ! defined (__mips64) */
#else /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
#define va_start(__AP) \
(__AP = ((__gnuc_va_list) __builtin_next_arg () \
- (__builtin_args_info (2) >= 8 ? __va_reg_size \
: (8 - __builtin_args_info (2)) * __va_reg_size)))
#endif /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
/* Need alternate code for _MIPS_SIM_ABI64. */
#elif defined(_MIPS_SIM) && (_MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32)
#define va_start(__AP) \
(__AP = (__gnuc_va_list) __builtin_next_arg () \
+ (__builtin_args_info (2) >= 8 ? -8 : 0))
#else
#define va_start(__AP) __AP = (char *) &__builtin_va_alist
#endif
#endif /* ! _STDARG_H */
#ifndef va_end
void va_end (__gnuc_va_list); /* Defined in libgcc.a */
#endif
#define va_end(__AP) ((void)0)
#if defined (__mips_eabi)
#if ! defined (__mips_soft_float) && ! defined (__mips_single_float)
#ifdef __mips64
#define __va_next_addr(__AP, __type) \
((__builtin_classify_type (*(__type *) 0) == __real_type_class \
&& __AP.__fp_left > 0) \
? (--__AP.__fp_left, (__AP.__fp_regs += 8) - 8) \
: (__AP.__gp_regs += __va_reg_size) - __va_reg_size)
#else
#define __va_next_addr(__AP, __type) \
((__builtin_classify_type (*(__type *) 0) == __real_type_class \
&& __AP.__fp_left > 0) \
? (--__AP.__fp_left, (__AP.__fp_regs += 8) - 8) \
: (((__builtin_classify_type (* (__type *) 0) < __record_type_class \
&& __alignof__ (__type) > 4) \
? __AP.__gp_regs = (char *) (((int) __AP.__gp_regs + 8 - 1) & -8) \
: (char *) 0), \
(__builtin_classify_type (* (__type *) 0) >= __record_type_class \
? (__AP.__gp_regs += __va_reg_size) - __va_reg_size \
: ((__AP.__gp_regs += __va_rounded_size (__type)) \
- __va_rounded_size (__type)))))
#endif
#else /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
#ifdef __mips64
#define __va_next_addr(__AP, __type) \
((__AP += __va_reg_size) - __va_reg_size)
#else
#define __va_next_addr(__AP, __type) \
(((__builtin_classify_type (* (__type *) 0) < __record_type_class \
&& __alignof__ (__type) > 4) \
? __AP = (char *) (((__PTRDIFF_TYPE__) __AP + 8 - 1) & -8) \
: (char *) 0), \
(__builtin_classify_type (* (__type *) 0) >= __record_type_class \
? (__AP += __va_reg_size) - __va_reg_size \
: ((__AP += __va_rounded_size (__type)) \
- __va_rounded_size (__type))))
#endif
#endif /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
#ifdef __MIPSEB__
#define va_arg(__AP, __type) \
((__va_rounded_size (__type) <= __va_reg_size) \
? *(__type *) (void *) (__va_next_addr (__AP, __type) \
+ __va_reg_size \
- sizeof (__type)) \
: (__builtin_classify_type (*(__type *) 0) >= __record_type_class \
? **(__type **) (void *) (__va_next_addr (__AP, __type) \
+ __va_reg_size \
- sizeof (char *)) \
: *(__type *) (void *) __va_next_addr (__AP, __type)))
#else
#define va_arg(__AP, __type) \
((__va_rounded_size (__type) <= __va_reg_size) \
? *(__type *) (void *) __va_next_addr (__AP, __type) \
: (__builtin_classify_type (* (__type *) 0) >= __record_type_class \
? **(__type **) (void *) __va_next_addr (__AP, __type) \
: *(__type *) (void *) __va_next_addr (__AP, __type)))
#endif
#else /* ! defined (__mips_eabi) */
/* We cast to void * and then to TYPE * because this avoids
a warning about increasing the alignment requirement. */
/* The __mips64 cases are reversed from the 32 bit cases, because the standard
32 bit calling convention left-aligns all parameters smaller than a word,
whereas the __mips64 calling convention does not (and hence they are
right aligned). */
#ifdef __mips64
#ifdef __MIPSEB__
#define va_arg(__AP, __type) \
((__type *) (void *) (__AP = (char *) \
((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \
+ __va_rounded_size (__type))))[-1]
#else
#define va_arg(__AP, __type) \
((__AP = (char *) ((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \
+ __va_rounded_size (__type))), \
*(__type *) (void *) (__AP - __va_rounded_size (__type)))
#endif
#else /* not __mips64 */
#ifdef __MIPSEB__
/* For big-endian machines. */
#define va_arg(__AP, __type) \
((__AP = (char *) ((__alignof__ (__type) > 4 \
? ((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8 \
: ((__PTRDIFF_TYPE__)__AP + 4 - 1) & -4) \
+ __va_rounded_size (__type))), \
*(__type *) (void *) (__AP - __va_rounded_size (__type)))
#else
/* For little-endian machines. */
#define va_arg(__AP, __type) \
((__type *) (void *) (__AP = (char *) ((__alignof__(__type) > 4 \
? ((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8 \
: ((__PTRDIFF_TYPE__)__AP + 4 - 1) & -4) \
+ __va_rounded_size(__type))))[-1]
#endif
#endif
#endif /* ! defined (__mips_eabi) */
/* Copy __gnuc_va_list into another variable of this type. */
#define __va_copy(dest, src) (dest) = (src)
#else
typedef char *va_list;
-373
View File
@@ -1,373 +0,0 @@
#ifndef MACRO_PRESET_NAMES_H
#define MACRO_PRESET_NAMES_H
enum MacroPresets {
macro_yellow_coin,
macro_yellow_coin_2,
macro_moving_blue_coin,
macro_sliding_blue_coin,
macro_red_coin,
macro_empty_5,
macro_coin_line_horizontal,
macro_coin_ring_horizontal,
macro_coin_arrow,
macro_coin_line_horizontal_flying,
macro_coin_line_vertical,
macro_coin_ring_horizontal_flying,
macro_coin_ring_vertical,
macro_coin_arrow_flying,
macro_hidden_star_trigger,
macro_empty_15,
macro_empty_16,
macro_empty_17,
macro_empty_18,
macro_empty_19,
macro_fake_star,
macro_wooden_signpost,
macro_cannon_closed,
macro_bobomb_buddy_opens_cannon,
macro_butterfly,
macro_bouncing_fireball_copy,
macro_fish_group_3,
macro_fish_group,
macro_unknown_28,
macro_hidden_1up_in_pole,
macro_huge_goomba,
macro_tiny_goomba,
macro_goomba_triplet_spawner,
macro_goomba_quintuplet_spawner,
macro_sign_on_wall,
macro_chuckya,
macro_cannon_open,
macro_goomba,
macro_homing_amp,
macro_circling_amp,
macro_unknown_40,
macro_unknown_41,
macro_free_bowling_ball,
macro_snufit,
macro_recovery_heart,
macro_1up_sliding,
macro_1up,
macro_1up_jump_on_approach,
macro_hidden_1up,
macro_hidden_1up_trigger,
macro_1up_2,
macro_1up_3,
macro_empty_52,
macro_blue_coin_switch,
macro_hidden_blue_coin,
macro_wing_cap_switch,
macro_metal_cap_switch,
macro_vanish_cap_switch,
macro_yellow_cap_switch,
macro_unknown_59,
macro_box_wing_cap,
macro_box_metal_cap,
macro_box_vanish_cap,
macro_box_koopa_shell,
macro_box_one_coin,
macro_box_three_coins,
macro_box_ten_coins,
macro_box_1up,
macro_box_star_1,
macro_breakable_box_no_coins,
macro_breakable_box_three_coins,
macro_pushable_metal_box,
macro_breakable_box_small,
macro_floor_switch_hidden_objects,
macro_hidden_box,
macro_hidden_object_2,
macro_hidden_object_3,
macro_breakable_box_giant,
macro_koopa_shell_underwater,
macro_box_1up_running_away,
macro_empty_80,
macro_bullet_bill_cannon,
macro_heave_ho,
macro_empty_83,
macro_thwomp,
macro_fire_spitter,
macro_fire_fly_guy,
macro_jumping_box,
macro_butterfly_triplet,
macro_butterfly_triplet_2,
macro_empty_90,
macro_empty_91,
macro_empty_92,
macro_bully,
macro_bully_2,
macro_empty_95,
macro_unknown_96,
macro_bouncing_fireball,
macro_flamethrower,
macro_empty_99,
macro_empty_100,
macro_empty_101,
macro_empty_102,
macro_empty_103,
macro_empty_104,
macro_empty_105,
macro_wooden_post,
macro_water_bomb_spawner,
macro_enemy_lakitu,
macro_bob_koopa_the_quick,
macro_koopa_race_endpoint,
macro_bobomb,
macro_water_bomb_cannon_copy,
macro_bobomb_buddy_opens_cannon_copy,
macro_water_bomb_cannon,
macro_bobomb_still,
macro_empty_116,
macro_empty_117,
macro_empty_118,
macro_empty_119,
macro_empty_120,
macro_empty_121,
macro_empty_122,
macro_unknown_123,
macro_empty_124,
macro_unagi,
macro_sushi,
macro_empty_127,
macro_empty_128,
macro_empty_129,
macro_empty_130,
macro_empty_131,
macro_empty_132,
macro_empty_133,
macro_empty_134,
macro_empty_135,
macro_empty_136,
macro_unknown_137,
macro_tornado,
macro_pokey,
macro_pokey_copy,
macro_tox_box,
macro_empty_142,
macro_empty_143,
macro_empty_144,
macro_empty_145,
macro_empty_146,
macro_empty_147,
macro_empty_148,
macro_empty_149,
macro_empty_150,
macro_monty_mole_2,
macro_monty_mole,
macro_monty_mole_hole,
macro_fly_guy,
macro_empty_155,
macro_wiggler,
macro_empty_157,
macro_empty_158,
macro_empty_159,
macro_empty_160,
macro_empty_161,
macro_empty_162,
macro_empty_163,
macro_empty_164,
macro_spindrift,
macro_mr_blizzard,
macro_mr_blizzard_copy,
macro_empty_168,
macro_small_penguin,
macro_tuxies_mother,
macro_tuxies_mother_copy,
macro_mr_blizzard_2,
macro_empty_173,
macro_empty_174,
macro_empty_175,
macro_empty_176,
macro_empty_177,
macro_empty_178,
macro_empty_179,
macro_empty_180,
macro_empty_181,
macro_empty_182,
macro_empty_183,
macro_empty_184,
macro_empty_185,
macro_empty_186,
macro_empty_187,
macro_empty_188,
macro_haunted_chair_copy,
macro_haunted_chair,
macro_haunted_chair_copy2,
macro_boo,
macro_boo_copy,
macro_boo_group,
macro_boo_with_cage,
macro_beta_key,
macro_empty_197,
macro_empty_198,
macro_empty_199,
macro_empty_200,
macro_empty_201,
macro_empty_202,
macro_empty_203,
macro_empty_204,
macro_empty_205,
macro_empty_206,
macro_empty_207,
macro_empty_208,
macro_empty_209,
macro_empty_210,
macro_empty_211,
macro_empty_212,
macro_empty_213,
macro_empty_214,
macro_empty_215,
macro_empty_216,
macro_empty_217,
macro_empty_218,
macro_empty_219,
macro_empty_220,
macro_empty_221,
macro_empty_222,
macro_empty_223,
macro_empty_224,
macro_empty_225,
macro_empty_226,
macro_empty_227,
macro_empty_228,
macro_empty_229,
macro_empty_230,
macro_empty_231,
macro_empty_232,
macro_empty_233,
macro_chirp_chirp,
macro_seaweed_bundle,
macro_beta_chest,
macro_water_mine,
macro_fish_group_4,
macro_fish_group_2,
macro_jet_stream_ring_spawner,
macro_jet_stream_ring_spawner_copy,
macro_skeeter,
macro_clam_shell,
macro_empty_244,
macro_empty_245,
macro_empty_246,
macro_empty_247,
macro_empty_248,
macro_empty_249,
macro_empty_250,
macro_ukiki,
macro_ukiki_2,
macro_piranha_plant,
macro_empty_254,
macro_whomp,
macro_chain_chomp,
macro_empty_257,
macro_koopa,
macro_koopa_shellless,
macro_wooden_post_copy,
macro_fire_piranha_plant,
macro_fire_piranha_plant_2,
macro_thi_koopa_the_quick,
macro_empty_264,
macro_empty_265,
macro_empty_266,
macro_empty_267,
macro_empty_268,
macro_empty_269,
macro_empty_270,
macro_empty_271,
macro_empty_272,
macro_empty_273,
macro_empty_274,
macro_empty_275,
macro_empty_276,
macro_empty_277,
macro_empty_278,
macro_empty_279,
macro_empty_280,
macro_moneybag,
macro_empty_282,
macro_empty_283,
macro_empty_284,
macro_empty_285,
macro_empty_286,
macro_empty_287,
macro_empty_288,
macro_swoop,
macro_swoop_2,
macro_mr_i,
macro_scuttlebug_spawner,
macro_scuttlebug,
macro_empty_294,
macro_empty_295,
macro_empty_296,
macro_empty_297,
macro_empty_298,
macro_empty_299,
macro_empty_300,
macro_empty_301,
macro_empty_302,
macro_unknown_303,
macro_empty_304,
macro_empty_305,
macro_empty_306,
macro_empty_307,
macro_empty_308,
macro_empty_309,
macro_empty_310,
macro_empty_311,
macro_empty_312,
macro_ttc_rotating_cube,
macro_ttc_rotating_prism,
macro_ttc_pendulum,
macro_ttc_large_treadmill,
macro_ttc_small_treadmill,
macro_ttc_push_block,
macro_ttc_rotating_hexagon,
macro_ttc_rotating_triangle,
macro_ttc_pit_block,
macro_ttc_pit_block_2,
macro_ttc_elevator_platform,
macro_ttc_clock_hand,
macro_ttc_spinner,
macro_ttc_small_gear,
macro_ttc_large_gear,
macro_ttc_large_treadmill_2,
macro_ttc_small_treadmill_2,
macro_empty_330,
macro_empty_331,
macro_empty_332,
macro_empty_333,
macro_empty_334,
macro_empty_335,
macro_empty_336,
macro_empty_337,
macro_empty_338,
macro_box_star_2,
macro_box_star_3,
macro_box_star_4,
macro_box_star_5,
macro_box_star_6,
macro_empty_344,
macro_empty_345,
macro_empty_346,
macro_empty_347,
macro_empty_348,
macro_empty_349,
macro_bits_sliding_platform,
macro_bits_twin_sliding_platforms,
macro_bits_unknown_352,
macro_bits_octagonal_platform,
macro_bits_staircase,
macro_empty_355,
macro_empty_356,
macro_bits_ferris_wheel_axle,
macro_bits_arrow_platform,
macro_bits_seesaw_platform,
macro_bits_tilting_w_platform,
macro_empty_361,
macro_empty_362,
macro_empty_363,
macro_empty_364,
macro_empty_365
};
#endif // MACRO_PRESET_NAMES_H
+368 -376
View File
@@ -1,383 +1,375 @@
#ifndef MACRO_PRESETS_H
#define MACRO_PRESETS_H
#include "macro_preset_names.h"
#include "behavior_data.h"
#include "model_ids.h"
enum MacroPresets {
macro_yellow_coin_1,
macro_yellow_coin_2,
macro_moving_blue_coin,
macro_sliding_blue_coin,
macro_red_coin,
macro_empty_5,
macro_coin_line_horizontal,
macro_coin_ring_horizontal,
macro_coin_arrow,
macro_coin_line_horizontal_flying,
macro_coin_line_vertical_flying,
macro_coin_ring_horizontal_flying,
macro_coin_ring_vertical_flying,
macro_coin_arrow_flying,
macro_hidden_star_trigger,
macro_empty_15,
macro_empty_16,
macro_empty_17,
macro_empty_18,
macro_empty_19,
macro_fake_star,
macro_wooden_signpost,
macro_cannon_closed,
macro_bobomb_buddy_opens_cannon_1,
macro_butterfly,
macro_bouncing_fireball_1,
macro_fish_spawner_many_blue,
macro_fish_spawner_few_blue,
macro_unknown_28,
macro_hidden_1up_in_pole,
macro_huge_goomba,
macro_tiny_goomba,
macro_goomba_triplet_spawner,
macro_goomba_quintuplet_spawner,
macro_sign_on_wall,
macro_chuckya,
macro_cannon_open,
macro_goomba,
macro_homing_amp,
macro_circling_amp,
macro_unknown_40,
macro_unknown_41,
macro_free_bowling_ball,
macro_snufit,
macro_recovery_heart,
macro_1up_sliding,
macro_1up,
macro_1up_jump_on_approach,
macro_hidden_1up,
macro_hidden_1up_trigger,
macro_1up_beat_bitdw_bowser,
macro_1up_beat_bitfs_bowser,
macro_empty_52,
macro_blue_coin_switch,
macro_hidden_blue_coin,
macro_wing_cap_switch,
macro_metal_cap_switch,
macro_vanish_cap_switch,
macro_yellow_cap_switch,
macro_unknown_59,
macro_box_wing_cap,
macro_box_metal_cap,
macro_box_vanish_cap,
macro_box_koopa_shell,
macro_box_one_coin,
macro_box_three_coins,
macro_box_ten_coins,
macro_box_1up,
macro_box_star_act_1,
macro_breakable_box_no_coins,
macro_breakable_box_three_coins,
macro_pushable_metal_box,
macro_breakable_box_small,
macro_floor_switch_hidden_objects,
macro_hidden_breakable_box,
macro_hidden_unbreakable_box_1,
macro_hidden_unbreakable_box_2,
macro_breakable_box_giant,
macro_koopa_shell_underwater,
macro_box_1up_running_away,
macro_empty_80,
macro_bullet_bill_cannon,
macro_heave_ho,
macro_empty_83,
macro_thwomp,
macro_fire_spitter,
macro_fire_fly_guy,
macro_jumping_box,
macro_butterfly_triplet,
macro_butterfly_triplet_no_bombs,
macro_empty_90,
macro_empty_91,
macro_empty_92,
macro_small_bully,
macro_big_bully,
macro_empty_95,
macro_unknown_96,
macro_bouncing_fireball_2,
macro_flamethrower,
macro_empty_99,
macro_empty_100,
macro_empty_101,
macro_empty_102,
macro_empty_103,
macro_empty_104,
macro_empty_105,
macro_wooden_post_1,
macro_water_bomb_spawner,
macro_enemy_lakitu,
macro_bob_koopa_the_quick,
macro_koopa_race_endpoint,
macro_bobomb,
macro_water_bomb_cannon_1,
macro_bobomb_buddy_opens_cannon_2,
macro_water_bomb_cannon_2,
macro_bobomb_stationary,
macro_empty_116,
macro_empty_117,
macro_empty_118,
macro_empty_119,
macro_empty_120,
macro_empty_121,
macro_empty_122,
macro_unknown_123,
macro_empty_124,
macro_unagi,
macro_sushi,
macro_empty_127,
macro_empty_128,
macro_empty_129,
macro_empty_130,
macro_empty_131,
macro_empty_132,
macro_empty_133,
macro_empty_134,
macro_empty_135,
macro_empty_136,
macro_unknown_137,
macro_tornado,
macro_pokey_1,
macro_pokey_2,
macro_tox_box,
macro_empty_142,
macro_empty_143,
macro_empty_144,
macro_empty_145,
macro_empty_146,
macro_empty_147,
macro_empty_148,
macro_empty_149,
macro_empty_150,
macro_monty_mole_no_rock,
macro_monty_mole,
macro_monty_mole_hole,
macro_fly_guy,
macro_empty_155,
macro_wiggler,
macro_empty_157,
macro_empty_158,
macro_empty_159,
macro_empty_160,
macro_empty_161,
macro_empty_162,
macro_empty_163,
macro_empty_164,
macro_spindrift,
macro_mr_blizzard_1,
macro_mr_blizzard_2,
macro_empty_168,
macro_small_penguin,
macro_tuxies_mother_1,
macro_tuxies_mother_2,
macro_mr_blizzard_jumping,
macro_empty_173,
macro_empty_174,
macro_empty_175,
macro_empty_176,
macro_empty_177,
macro_empty_178,
macro_empty_179,
macro_empty_180,
macro_empty_181,
macro_empty_182,
macro_empty_183,
macro_empty_184,
macro_empty_185,
macro_empty_186,
macro_empty_187,
macro_empty_188,
macro_haunted_chair_1,
macro_haunted_chair_2,
macro_haunted_chair_3,
macro_boo_1,
macro_boo_2,
macro_boo_group,
macro_boo_with_cage,
macro_beta_key,
macro_empty_197,
macro_empty_198,
macro_empty_199,
macro_empty_200,
macro_empty_201,
macro_empty_202,
macro_empty_203,
macro_empty_204,
macro_empty_205,
macro_empty_206,
macro_empty_207,
macro_empty_208,
macro_empty_209,
macro_empty_210,
macro_empty_211,
macro_empty_212,
macro_empty_213,
macro_empty_214,
macro_empty_215,
macro_empty_216,
macro_empty_217,
macro_empty_218,
macro_empty_219,
macro_empty_220,
macro_empty_221,
macro_empty_222,
macro_empty_223,
macro_empty_224,
macro_empty_225,
macro_empty_226,
macro_empty_227,
macro_empty_228,
macro_empty_229,
macro_empty_230,
macro_empty_231,
macro_empty_232,
macro_empty_233,
macro_chirp_chirp,
macro_seaweed_bundle,
macro_beta_chest,
macro_water_mine,
macro_fish_spawner_many_cyan,
macro_fish_spawner_few_cyan,
macro_jet_stream_ring_spawner_1,
macro_jet_stream_ring_spawner_2,
macro_skeeter,
macro_clam_shell,
macro_empty_244,
macro_empty_245,
macro_empty_246,
macro_empty_247,
macro_empty_248,
macro_empty_249,
macro_empty_250,
macro_cage_ukiki,
macro_cap_ukiki,
macro_piranha_plant,
macro_empty_254,
macro_whomp,
macro_chain_chomp,
macro_empty_257,
macro_koopa,
macro_koopa_shellless,
macro_wooden_post_2,
macro_fire_piranha_plant_1,
macro_fire_piranha_plant_2,
macro_koopa_tiny,
macro_empty_264,
macro_empty_265,
macro_empty_266,
macro_empty_267,
macro_empty_268,
macro_empty_269,
macro_empty_270,
macro_empty_271,
macro_empty_272,
macro_empty_273,
macro_empty_274,
macro_empty_275,
macro_empty_276,
macro_empty_277,
macro_empty_278,
macro_empty_279,
macro_empty_280,
macro_moneybag,
macro_empty_282,
macro_empty_283,
macro_empty_284,
macro_empty_285,
macro_empty_286,
macro_empty_287,
macro_empty_288,
macro_swoop_1,
macro_swoop_2,
macro_mr_i,
macro_scuttlebug_spawner,
macro_scuttlebug,
macro_empty_294,
macro_empty_295,
macro_empty_296,
macro_empty_297,
macro_empty_298,
macro_empty_299,
macro_empty_300,
macro_empty_301,
macro_empty_302,
macro_unknown_303,
macro_empty_304,
macro_empty_305,
macro_empty_306,
macro_empty_307,
macro_empty_308,
macro_empty_309,
macro_empty_310,
macro_empty_311,
macro_empty_312,
macro_ttc_rotating_cube,
macro_ttc_rotating_prism,
macro_ttc_pendulum,
macro_ttc_large_treadmill_1,
macro_ttc_small_treadmill_1,
macro_ttc_push_block,
macro_ttc_rotating_hexagon,
macro_ttc_rotating_triangle,
macro_ttc_pit_block_1,
macro_ttc_pit_block_2,
macro_ttc_elevator_platform,
macro_ttc_clock_hand,
macro_ttc_spinner,
macro_ttc_small_gear,
macro_ttc_large_gear,
macro_ttc_large_treadmill_2,
macro_ttc_small_treadmill_2,
macro_empty_330,
macro_empty_331,
macro_empty_332,
macro_empty_333,
macro_empty_334,
macro_empty_335,
macro_empty_336,
macro_empty_337,
macro_empty_338,
macro_box_star_act_2,
macro_box_star_act_3,
macro_box_star_act_4,
macro_box_star_act_5,
macro_box_star_act_6,
macro_empty_344,
macro_empty_345,
macro_empty_346,
macro_empty_347,
macro_empty_348,
macro_empty_349,
macro_bits_sliding_platform,
macro_bits_twin_sliding_platforms,
macro_bits_unknown_352,
macro_bits_octagonal_platform,
macro_bits_staircase,
macro_empty_355,
macro_empty_356,
macro_bits_ferris_wheel_axle,
macro_bits_arrow_platform,
macro_bits_seesaw_platform,
macro_bits_tilting_w_platform,
macro_empty_361,
macro_empty_362,
macro_empty_363,
macro_empty_364,
macro_empty_365,
struct MacroPreset {
/*0x00*/ const BehaviorScript *behavior;
/*0x04*/ s16 model;
/*0x06*/ s16 param;
};
struct MacroPreset MacroObjectPresets[] = {
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvOneCoin, MODEL_YELLOW_COIN, 0},
{bhvMovingBlueCoin, MODEL_BLUE_COIN, 0},
{bhvBlueCoinSliding, MODEL_BLUE_COIN, 0}, // unused
{bhvRedCoin, MODEL_RED_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvCoinFormation, MODEL_NONE, 0},
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_RING},
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_ARROW},
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING},
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING | COIN_FORMATION_FLAG_VERTICAL},
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING | COIN_FORMATION_FLAG_RING},
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING | COIN_FORMATION_FLAG_RING | COIN_FORMATION_FLAG_VERTICAL},
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING | COIN_FORMATION_FLAG_ARROW}, // unused
{bhvHiddenStarTrigger, MODEL_NONE, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvUnusedFakeStar, MODEL_STAR, 0}, // unused
{bhvMessagePanel, MODEL_WOODEN_SIGNPOST, 0},
{bhvCannonClosed, MODEL_DL_CANNON_LID, 0},
{bhvBobombBuddyOpensCannon, MODEL_BOBOMB_BUDDY, 0},
{bhvButterfly, MODEL_BUTTERFLY, 0}, // unused
{bhvBouncingFireball, MODEL_NONE, 0}, // unused
{bhvFishSpawner, MODEL_NONE, 0}, // unused
{bhvFishSpawner, MODEL_NONE, 1},
{bhvBetaFishSplashSpawner, MODEL_NONE, 0},
{bhvHidden1upInPoleSpawner, MODEL_NONE, 0},
{bhvGoomba, MODEL_GOOMBA, 1},
{bhvGoomba, MODEL_GOOMBA, 2},
{bhvGoombaTripletSpawner, MODEL_NONE, 0},
{bhvGoombaTripletSpawner, MODEL_NONE, 8}, // unused
{bhvSignOnWall, MODEL_NONE, 0},
{bhvChuckya, MODEL_CHUCKYA, 0},
{bhvCannon, MODEL_CANNON_BASE, 0},
{bhvGoomba, MODEL_GOOMBA, 0},
{bhvHomingAmp, MODEL_AMP, 0},
{bhvCirclingAmp, MODEL_AMP, 0},
{bhvCarrySomething1, MODEL_UNKNOWN_7D, 0}, // unused
{bhvBetaTrampolineTop, MODEL_TRAMPOLINE, 0}, // unused
{bhvFreeBowlingBall, MODEL_BOWLING_BALL, 0}, // unused
{bhvSnufit, MODEL_SNUFIT, 0},
{bhvRecoveryHeart, MODEL_HEART, 0},
{bhv1upSliding, MODEL_1UP, 0},
{bhv1Up, MODEL_1UP, 0},
{bhv1upJumpOnApproach, MODEL_1UP, 0}, // unused
{bhvHidden1up, MODEL_1UP, 0},
{bhvHidden1upTrigger, MODEL_NONE, 0},
{bhv1Up, MODEL_1UP, 1},
{bhv1Up, MODEL_1UP, 2},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvBlueCoinSwitch, MODEL_BLUE_COIN_SWITCH, 0},
{bhvHiddenBlueCoin, MODEL_BLUE_COIN, 0},
{bhvCapSwitch, MODEL_CAP_SWITCH, 0}, // unused
{bhvCapSwitch, MODEL_CAP_SWITCH, 1}, // unused
{bhvCapSwitch, MODEL_CAP_SWITCH, 2}, // unused
{bhvCapSwitch, MODEL_CAP_SWITCH, 3}, // unused
{bhvWaterLevelDiamond, MODEL_BREAKABLE_BOX, 0}, // unused
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 0},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 1},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 2},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 3},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 4}, // unused
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 5},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 6},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 7},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 8},
{bhvBreakableBox, MODEL_BREAKABLE_BOX, 0},
{bhvBreakableBox, MODEL_BREAKABLE_BOX, 1},
{bhvPushableMetalBox, MODEL_METAL_BOX, 0},
{bhvBreakableBoxSmall, MODEL_BREAKABLE_BOX_SMALL, 0},
{bhvFloorSwitchHiddenObjects, MODEL_PURPLE_SWITCH, 0},
{bhvHiddenObject, MODEL_BREAKABLE_BOX, 0},
{bhvHiddenObject, MODEL_BREAKABLE_BOX, 1}, // unused
{bhvHiddenObject, MODEL_BREAKABLE_BOX, 2}, // unused
{bhvBreakableBox, MODEL_BREAKABLE_BOX, 3},
{bhvKoopaShellUnderwater, MODEL_KOOPA_SHELL, 0},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 9},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvBulletBill, MODEL_BULLET_BILL, 0}, // unused
{bhvHeaveHo, MODEL_HEAVE_HO, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvThwomp2, MODEL_THWOMP, 0}, // unused
{bhvFireSpitter, MODEL_BOWLING_BALL, 0},
{bhvFlyGuy, MODEL_FLYGUY, 1},
{bhvJumpingBox, MODEL_BREAKABLE_BOX, 0},
{bhvTripletButterfly, MODEL_BUTTERFLY, 0},
{bhvTripletButterfly, MODEL_BUTTERFLY, 4},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvSmallBully, MODEL_BULLY, 0},
{bhvSmallBully, MODEL_BULLY_BOSS, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvStub1D0C, MODEL_UNKNOWN_58, 0}, // unused
{bhvBouncingFireball, MODEL_NONE, 0},
{bhvFlamethrower, MODEL_NONE, 4},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvWoodenPost, MODEL_WOODEN_POST, 0},
{bhvWaterBombSpawner, MODEL_NONE, 0},
{bhvEnemyLakitu, MODEL_ENEMY_LAKITU, 0},
{bhvKoopa, MODEL_KOOPA_WITH_SHELL, 2}, // unused
{bhvKoopaRaceEndpoint, MODEL_NONE, 0}, // unused
{bhvBobomb, MODEL_BLACK_BOBOMB, 0},
{bhvWaterBombCannon, MODEL_CANNON_BASE, 0}, // unused
{bhvBobombBuddyOpensCannon, MODEL_BOBOMB_BUDDY, 0}, // unused
{bhvWaterBombCannon, MODEL_CANNON_BASE, 0},
{bhvBobomb, MODEL_BLACK_BOBOMB, 1},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvUnusedFakeStar, MODEL_UNKNOWN_54, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvUnagi, MODEL_UNAGI, 0}, // unused
{bhvSushiShark, MODEL_SUSHI, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvStaticObject, MODEL_KLEPTO, 0}, // unused
{bhvTweester, MODEL_TWEESTER, 0}, // unused
{bhvPokey, MODEL_NONE, 0},
{bhvPokey, MODEL_NONE, 0}, // unused
{bhvToxBox, MODEL_SSL_TOX_BOX, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvMontyMole, MODEL_MONTY_MOLE, 0}, // unused
{bhvMontyMole, MODEL_MONTY_MOLE, 1},
{bhvMontyMoleHole, MODEL_DL_MONTY_MOLE_HOLE, 0},
{bhvFlyGuy, MODEL_FLYGUY, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvWigglerHead, MODEL_WIGGLER_HEAD, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvSpindrift, MODEL_SPINDRIFT, 0},
{bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, 0},
{bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvSmallPenguin, MODEL_PENGUIN, 0}, // unused
{bhvTuxiesMother, MODEL_PENGUIN, 0}, // unused
{bhvTuxiesMother, MODEL_PENGUIN, 0}, // unused
{bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, 1}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0}, // unused
{bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0},
{bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0}, // unused
{bhvGhostHuntBoo, MODEL_BOO, 0}, // unused
{bhvGhostHuntBoo, MODEL_BOO, 0}, // unused
{bhvCourtyardBooTriplet, MODEL_BOO, 0}, // unused
{bhvBooWithCage, MODEL_BOO, 0}, // unused
{bhvAlphaBooKey, MODEL_BETA_BOO_KEY, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvChirpChirp, MODEL_NONE, 0},
{bhvSeaweedBundle, MODEL_NONE, 0},
{bhvBetaChestBottom, MODEL_TREASURE_CHEST_BASE, 0}, // unused
{bhvBowserBomb, MODEL_WATER_MINE, 0}, // unused
{bhvFishSpawner, MODEL_NONE, 2}, // unused
{bhvFishSpawner, MODEL_NONE, 3},
{bhvJetStreamRingSpawner, MODEL_WATER_RING, 0}, // unused
{bhvJetStreamRingSpawner, MODEL_WATER_RING, 0}, // unused
{bhvSkeeter, MODEL_SKEETER, 0},
{bhvClamShell, MODEL_CLAM_SHELL, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvMacroUkiki, MODEL_UKIKI, 0}, // unused
{bhvMacroUkiki, MODEL_UKIKI, 1}, // unused
{bhvPiranhaPlant, MODEL_PIRANHA_PLANT, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvSmallWhomp, MODEL_WHOMP, 0},
{bhvChainChomp, MODEL_CHAIN_CHOMP, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvKoopa, MODEL_KOOPA_WITH_SHELL, 1},
{bhvKoopa, MODEL_KOOPA_WITHOUT_SHELL, 0}, // unused
{bhvWoodenPost, MODEL_WOODEN_POST, 0}, // unused
{bhvFirePiranhaPlant, MODEL_PIRANHA_PLANT, 0},
{bhvFirePiranhaPlant, MODEL_PIRANHA_PLANT, 1}, // unused
{bhvKoopa, MODEL_KOOPA_WITH_SHELL, 4},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvMoneybagHidden, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvSwoop, MODEL_SWOOP, 0},
{bhvSwoop, MODEL_SWOOP, 1},
{bhvMrI, MODEL_NONE, 0},
{bhvScuttlebugSpawn, MODEL_NONE, 0},
{bhvScuttlebug, MODEL_SCUTTLEBUG, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_UNKNOWN_54, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvTTCRotatingSolid, MODEL_TTC_ROTATING_CUBE, 0},
{bhvTTCRotatingSolid, MODEL_TTC_ROTATING_PRISM, 1},
{bhvTTCPendulum, MODEL_TTC_PENDULUM, 0},
{bhvTTCTreadmill, MODEL_TTC_LARGE_TREADMILL, 0},
{bhvTTCTreadmill, MODEL_TTC_SMALL_TREADMILL, 1},
{bhvTTCMovingBar, MODEL_TTC_PUSH_BLOCK, 0},
{bhvTTCCog, MODEL_TTC_ROTATING_HEXAGON, 0},
{bhvTTCCog, MODEL_TTC_ROTATING_TRIANGLE, 2},
{bhvTTCPitBlock, MODEL_TTC_PIT_BLOCK, 0},
{bhvTTCPitBlock, MODEL_TTC_PIT_BLOCK_UNUSED, 1}, // unused
{bhvTTCElevator, MODEL_TTC_ELEVATOR_PLATFORM, 0},
{bhvTTC2DRotator, MODEL_TTC_CLOCK_HAND, 0},
{bhvTTCSpinner, MODEL_TTC_SPINNER, 0},
{bhvTTC2DRotator, MODEL_TTC_SMALL_GEAR, 1},
{bhvTTC2DRotator, MODEL_TTC_LARGE_GEAR, 1},
{bhvTTCTreadmill, MODEL_TTC_LARGE_TREADMILL, 2},
{bhvTTCTreadmill, MODEL_TTC_SMALL_TREADMILL, 3},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 10},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 11},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 12},
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 13}, // unused
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 14},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvSlidingPlatform2, MODEL_BITS_SLIDING_PLATFORM, 0}, // unused
{bhvSlidingPlatform2, MODEL_BITS_TWIN_SLIDING_PLATFORMS, 0}, // unused
{bhvAnotherTiltingPlatform, MODEL_BITDW_SLIDING_PLATFORM, 0}, // unused
{bhvOctagonalPlatformRotating, MODEL_BITS_OCTAGONAL_PLATFORM, 0}, // unused
{bhvAnimatesOnFloorSwitchPress, MODEL_BITS_STAIRCASE, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvFerrisWheelAxle, MODEL_BITS_FERRIS_WHEEL_AXLE, 0}, // unused
{bhvActivatedBackAndForthPlatform, MODEL_BITS_ARROW_PLATFORM, 0}, // unused
{bhvSeesawPlatform, MODEL_BITS_SEESAW_PLATFORM, 0}, // unused
{bhvSeesawPlatform, MODEL_BITS_TILTING_W_PLATFORM, 0}, // unused
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
{bhvYellowCoin, MODEL_YELLOW_COIN, 0}
macro_count
};
#endif // MACRO_PRESETS_H
+379
View File
@@ -0,0 +1,379 @@
#include "macro_presets.h"
struct MacroPreset {
/* 0x00 */ const BehaviorScript *behavior;
/* 0x04 */ s16 model;
/* 0x06 */ s16 param;
};
static struct MacroPreset sMacroObjectPresets[] = {
/* macro_yellow_coin_1 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_yellow_coin_2 */ { bhvOneCoin, MODEL_YELLOW_COIN, 0 },
/* macro_moving_blue_coin */ { bhvMovingBlueCoin, MODEL_BLUE_COIN, 0 },
/* macro_sliding_blue_coin */ { bhvBlueCoinSliding, MODEL_BLUE_COIN, 0 }, // unused
/* macro_red_coin */ { bhvRedCoin, MODEL_RED_COIN, 0 },
/* macro_empty_5 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_coin_line_horizontal */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_LINE_HORIZONTAL },
/* macro_coin_ring_horizontal */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_RING_HORIZONTAL },
/* macro_coin_arrow */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_ARROW },
/* macro_coin_line_horizontal_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_LINE_HORIZONTAL | COIN_FORMATION_BP_FLAG_FLYING },
/* macro_coin_line_vertical_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_LINE_VERTICAL | COIN_FORMATION_BP_FLAG_FLYING },
/* macro_coin_ring_horizontal_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_RING_HORIZONTAL | COIN_FORMATION_BP_FLAG_FLYING },
/* macro_coin_ring_vertical_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_RING_VERTICAL | COIN_FORMATION_BP_FLAG_FLYING },
/* macro_coin_arrow_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_ARROW | COIN_FORMATION_BP_FLAG_FLYING }, // unused
/* macro_hidden_star_trigger */ { bhvHiddenStarTrigger, MODEL_NONE, 0 },
/* macro_empty_15 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_16 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_17 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_18 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_19 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_fake_star */ { bhvUnusedFakeStar, MODEL_STAR, 0 }, // unused
/* macro_wooden_signpost */ { bhvMessagePanel, MODEL_WOODEN_SIGNPOST, 0 },
/* macro_cannon_closed */ { bhvCannonClosed, MODEL_DL_CANNON_LID, 0 },
/* macro_bobomb_buddy_opens_cannon_1 */ { bhvBobombBuddyOpensCannon, MODEL_BOBOMB_BUDDY, 0 },
/* macro_butterfly */ { bhvButterfly, MODEL_BUTTERFLY, 0 }, // unused
/* macro_bouncing_fireball_1 */ { bhvBouncingFireball, MODEL_NONE, 0 }, // unused
/* macro_fish_spawner_many_blue */ { bhvFishSpawner, MODEL_NONE, FISH_SPAWNER_BP_MANY_BLUE }, // unused
/* macro_fish_spawner_few_blue */ { bhvFishSpawner, MODEL_NONE, FISH_SPAWNER_BP_FEW_BLUE },
/* macro_unknown_28 */ { bhvBetaFishSplashSpawner, MODEL_NONE, 0 },
/* macro_hidden_1up_in_pole */ { bhvHidden1UpInPoleSpawner, MODEL_NONE, 0 },
/* macro_huge_goomba */ { bhvGoomba, MODEL_GOOMBA, GOOMBA_SIZE_HUGE },
/* macro_tiny_goomba */ { bhvGoomba, MODEL_GOOMBA, GOOMBA_SIZE_TINY },
/* macro_goomba_triplet_spawner */ { bhvGoombaTripletSpawner, MODEL_NONE, GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS(0) | GOOMBA_SIZE_REGULAR },
/* macro_goomba_quintuplet_spawner */ { bhvGoombaTripletSpawner, MODEL_NONE, GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS(2) | GOOMBA_SIZE_REGULAR }, // unused
/* macro_sign_on_wall */ { bhvSignOnWall, MODEL_NONE, 0 },
/* macro_chuckya */ { bhvChuckya, MODEL_CHUCKYA, 0 },
/* macro_cannon_open */ { bhvCannon, MODEL_CANNON_BASE, 0 },
/* macro_goomba */ { bhvGoomba, MODEL_GOOMBA, 0 },
/* macro_homing_amp */ { bhvHomingAmp, MODEL_AMP, 0 },
/* macro_circling_amp */ { bhvCirclingAmp, MODEL_AMP, AMP_BP_ROT_RADIUS_200 },
/* macro_unknown_40 */ { bhvCarrySomething1, MODEL_UNKNOWN_7D, 0 }, // unused
/* macro_unknown_41 */ { bhvBetaTrampolineTop, MODEL_TRAMPOLINE, 0 }, // unused
/* macro_free_bowling_ball */ { bhvFreeBowlingBall, MODEL_BOWLING_BALL, 0 }, // unused
/* macro_snufit */ { bhvSnufit, MODEL_SNUFIT, 0 },
/* macro_recovery_heart */ { bhvRecoveryHeart, MODEL_HEART, 0 },
/* macro_1up_sliding */ { bhv1UpSliding, MODEL_1UP, 0 },
/* macro_1up */ { bhv1Up, MODEL_1UP, 0 },
/* macro_1up_jump_on_approach */ { bhv1UpJumpOnApproach, MODEL_1UP, 0 }, // unused
/* macro_hidden_1up */ { bhvHidden1Up, MODEL_1UP, 0 },
/* macro_hidden_1up_trigger */ { bhvHidden1UpTrigger, MODEL_NONE, 0 },
/* macro_1up_beat_bitdw_bowser */ { bhv1Up, MODEL_1UP, ONE_UP_BP_BEAT_BITDW_BOWSER },
/* macro_1up_beat_bitfs_bowser */ { bhv1Up, MODEL_1UP, ONE_UP_BP_BEAT_BITFS_BOWSER },
/* macro_empty_52 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_blue_coin_switch */ { bhvBlueCoinSwitch, MODEL_BLUE_COIN_SWITCH, 0 },
/* macro_hidden_blue_coin */ { bhvHiddenBlueCoin, MODEL_BLUE_COIN, 0 },
/* macro_wing_cap_switch */ { bhvCapSwitch, MODEL_CAP_SWITCH, CAP_SWITCH_BP_RED }, // unused
/* macro_metal_cap_switch */ { bhvCapSwitch, MODEL_CAP_SWITCH, CAP_SWITCH_BP_GREEN }, // unused
/* macro_vanish_cap_switch */ { bhvCapSwitch, MODEL_CAP_SWITCH, CAP_SWITCH_BP_BLUE }, // unused
/* macro_yellow_cap_switch */ { bhvCapSwitch, MODEL_CAP_SWITCH, CAP_SWITCH_BP_YELLOW }, // unused
/* macro_unknown_59 */ { bhvWaterLevelDiamond, MODEL_BREAKABLE_BOX, 0 }, // unused
/* macro_box_wing_cap */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_WING_CAP },
/* macro_box_metal_cap */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_METAL_CAP },
/* macro_box_vanish_cap */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_VANISH_CAP },
/* macro_box_koopa_shell */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_KOOPA_SHELL },
/* macro_box_one_coin */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_ONE_COIN }, // unused
/* macro_box_three_coins */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_THREE_COINS },
/* macro_box_ten_coins */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_TEN_COINS },
/* macro_box_1up */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_1UP_WALKING },
/* macro_box_star_act_1 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_1 },
/* macro_breakable_box_no_coins */ { bhvBreakableBox, MODEL_BREAKABLE_BOX, BREAKABLE_BOX_BP_NO_COINS },
/* macro_breakable_box_three_coins */ { bhvBreakableBox, MODEL_BREAKABLE_BOX, BREAKABLE_BOX_BP_3_COINS },
/* macro_pushable_metal_box */ { bhvPushableMetalBox, MODEL_METAL_BOX, 0 },
/* macro_breakable_box_small */ { bhvBreakableBoxSmall, MODEL_BREAKABLE_BOX_SMALL, 0 },
/* macro_floor_switch_hidden_objects */ { bhvFloorSwitchHiddenObjects, MODEL_PURPLE_SWITCH, 0 },
/* macro_hidden_breakable_box */ { bhvHiddenObject, MODEL_BREAKABLE_BOX, HIDDEN_OBJECT_BP_BREAKABLE_BOX },
/* macro_hidden_unbreakable_box_1 */ { bhvHiddenObject, MODEL_BREAKABLE_BOX, HIDDEN_OBJECT_BP_UNBREAKABLE_BOX_UNUSED_1 }, // unused
/* macro_hidden_unbreakable_box_2 */ { bhvHiddenObject, MODEL_BREAKABLE_BOX, HIDDEN_OBJECT_BP_UNBREAKABLE_BOX_UNUSED_2 }, // unused
/* macro_breakable_box_giant */ { bhvBreakableBox, MODEL_BREAKABLE_BOX, BREAKABLE_BOX_BP_GIANT },
/* macro_koopa_shell_underwater */ { bhvKoopaShellUnderwater, MODEL_KOOPA_SHELL, 0 },
/* macro_box_1up_running_away */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_1UP_RUNNING_AWAY },
/* macro_empty_80 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_bullet_bill_cannon */ { bhvBulletBill, MODEL_BULLET_BILL, 0 }, // unused
/* macro_heave_ho */ { bhvHeaveHo, MODEL_HEAVE_HO, 0 },
/* macro_empty_83 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_thwomp */ { bhvThwomp, MODEL_THWOMP, 0 }, // unused
/* macro_fire_spitter */ { bhvFireSpitter, MODEL_BOWLING_BALL, 0 },
/* macro_fire_fly_guy */ { bhvFlyGuy, MODEL_FLYGUY, FLY_GUY_BP_FIRE },
/* macro_jumping_box */ { bhvJumpingBox, MODEL_BREAKABLE_BOX, 0 },
/* macro_butterfly_triplet */ { bhvTripletButterfly, MODEL_BUTTERFLY, 0 },
/* macro_butterfly_triplet_no_bombs */ { bhvTripletButterfly, MODEL_BUTTERFLY, TRIPLET_BUTTERFLY_BP_NO_BOMBS },
/* macro_empty_90 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_91 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_92 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_small_bully */ { bhvSmallBully, MODEL_BULLY, 0 },
/* macro_big_bully */ { bhvSmallBully, MODEL_BULLY_BOSS, 0 }, // unused
/* macro_empty_95 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_unknown_96 */ { bhvStub1D0C, MODEL_UNKNOWN_58, 0 }, // unused
/* macro_bouncing_fireball_2 */ { bhvBouncingFireball, MODEL_NONE, 0 },
/* macro_flamethrower */ { bhvFlamethrower, MODEL_NONE, 4 },
/* macro_empty_99 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_100 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_101 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_102 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_103 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_104 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_105 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_wooden_post_1 */ { bhvWoodenPost, MODEL_WOODEN_POST, 0 },
/* macro_water_bomb_spawner */ { bhvWaterBombSpawner, MODEL_NONE, 0 },
/* macro_enemy_lakitu */ { bhvEnemyLakitu, MODEL_ENEMY_LAKITU, 0 },
/* macro_bob_koopa_the_quick */ { bhvKoopa, MODEL_KOOPA_WITH_SHELL, KOOPA_BP_KOOPA_THE_QUICK_BOB }, // unused
/* macro_koopa_race_endpoint */ { bhvKoopaRaceEndpoint, MODEL_NONE, 0 }, // unused
/* macro_bobomb */ { bhvBobomb, MODEL_BLACK_BOBOMB, BOBOMB_BP_STYPE_GENERIC },
/* macro_water_bomb_cannon_1 */ { bhvWaterBombCannon, MODEL_CANNON_BASE, 0 }, // unused
/* macro_bobomb_buddy_opens_cannon_2 */ { bhvBobombBuddyOpensCannon, MODEL_BOBOMB_BUDDY, 0 }, // unused
/* macro_water_bomb_cannon_2 */ { bhvWaterBombCannon, MODEL_CANNON_BASE, 0 },
/* macro_bobomb_stationary */ { bhvBobomb, MODEL_BLACK_BOBOMB, BOBOMB_BP_STYPE_STATIONARY },
/* macro_empty_116 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_117 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_118 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_119 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_120 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_121 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_122 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_unknown_123 */ { bhvUnusedFakeStar, MODEL_UNKNOWN_54, 0 }, // unused
/* macro_empty_124 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_unagi */ { bhvUnagi, MODEL_UNAGI, 0 }, // unused
/* macro_sushi */ { bhvSushiShark, MODEL_SUSHI, 0 }, // unused
/* macro_empty_127 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_128 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_129 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_130 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_131 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_132 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_133 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_134 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_135 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_136 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_unknown_137 */ { bhvStaticObject, MODEL_KLEPTO, 0 }, // unused
/* macro_tornado */ { bhvTweester, MODEL_TWEESTER, 0 }, // unused
/* macro_pokey_1 */ { bhvPokey, MODEL_NONE, 0 },
/* macro_pokey_2 */ { bhvPokey, MODEL_NONE, 0 }, // unused
/* macro_tox_box */ { bhvToxBox, MODEL_SSL_TOX_BOX, TOX_BOX_BP_MOVEMENT_PATTERN_1 }, // unused
/* macro_empty_142 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_143 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_144 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_145 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_146 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_147 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_148 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_149 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_150 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_monty_mole_no_rock */ { bhvMontyMole, MODEL_MONTY_MOLE, MONTY_MOLE_BP_NO_ROCK }, // unused
/* macro_monty_mole */ { bhvMontyMole, MODEL_MONTY_MOLE, MONTY_MOLE_BP_GENERIC },
/* macro_monty_mole_hole */ { bhvMontyMoleHole, MODEL_DL_MONTY_MOLE_HOLE, 0 },
/* macro_fly_guy */ { bhvFlyGuy, MODEL_FLYGUY, FLY_GUY_BP_GENERIC },
/* macro_empty_155 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_wiggler */ { bhvWigglerHead, MODEL_WIGGLER_HEAD, 0 }, // unused
/* macro_empty_157 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_158 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_159 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_160 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_161 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_162 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_163 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_164 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_spindrift */ { bhvSpindrift, MODEL_SPINDRIFT, 0 },
/* macro_mr_blizzard_1 */ { bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, MR_BLIZZARD_STYPE_GENERIC },
/* macro_mr_blizzard_2 */ { bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, MR_BLIZZARD_STYPE_GENERIC }, // unused
/* macro_empty_168 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_small_penguin */ { bhvSmallPenguin, MODEL_PENGUIN, 0 }, // unused
/* macro_tuxies_mother_1 */ { bhvTuxiesMother, MODEL_PENGUIN, 0 }, // unused
/* macro_tuxies_mother_2 */ { bhvTuxiesMother, MODEL_PENGUIN, 0 }, // unused
/* macro_mr_blizzard_jumping */ { bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, MR_BLIZZARD_STYPE_JUMPING }, // unused
/* macro_empty_173 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_174 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_175 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_176 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_177 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_178 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_179 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_180 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_181 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_182 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_183 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_184 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_185 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_186 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_187 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_188 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_haunted_chair_1 */ { bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0 }, // unused
/* macro_haunted_chair_2 */ { bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0 },
/* macro_haunted_chair_3 */ { bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0 }, // unused
/* macro_boo_1 */ { bhvGhostHuntBoo, MODEL_BOO, BOO_BP_GHOST_HUNT }, // unused
/* macro_boo_2 */ { bhvGhostHuntBoo, MODEL_BOO, BOO_BP_GHOST_HUNT }, // unused
/* macro_boo_group */ { bhvCourtyardBooTriplet, MODEL_BOO, 0 }, // unused
/* macro_boo_with_cage */ { bhvBooWithCage, MODEL_BOO, 0 }, // unused
/* macro_beta_key */ { bhvAlphaBooKey, MODEL_BETA_BOO_KEY, 0 }, // unused
/* macro_empty_197 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_198 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_199 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_200 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_201 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_202 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_203 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_204 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_205 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_206 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_207 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_208 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_209 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_210 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_211 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_212 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_213 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_214 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_215 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_216 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_217 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_218 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_219 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_220 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_221 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_222 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_223 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_224 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_225 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_226 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_227 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_228 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_229 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_230 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_231 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_232 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_233 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_chirp_chirp */ { bhvChirpChirp, MODEL_NONE, 0 },
/* macro_seaweed_bundle */ { bhvSeaweedBundle, MODEL_NONE, 0 },
/* macro_beta_chest */ { bhvBetaChestBottom, MODEL_TREASURE_CHEST_BASE, 0 }, // unused
/* macro_water_mine */ { bhvBowserBomb, MODEL_WATER_MINE, 0 }, // unused
/* macro_fish_spawner_many_cyan */ { bhvFishSpawner, MODEL_NONE, FISH_SPAWNER_BP_MANY_CYAN }, // unused
/* macro_fish_spawner_few_cyan */ { bhvFishSpawner, MODEL_NONE, FISH_SPAWNER_BP_FEW_CYAN },
/* macro_jet_stream_ring_spawner_1 */ { bhvJetStreamRingSpawner, MODEL_WATER_RING, 0 }, // unused
/* macro_jet_stream_ring_spawner_2 */ { bhvJetStreamRingSpawner, MODEL_WATER_RING, 0 }, // unused
/* macro_skeeter */ { bhvSkeeter, MODEL_SKEETER, 0 },
/* macro_clam_shell */ { bhvClamShell, MODEL_CLAM_SHELL, 0 },
/* macro_empty_244 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_245 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_246 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_247 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_248 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_249 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_250 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_cage_ukiki */ { bhvMacroUkiki, MODEL_UKIKI, UKIKI_BP_CAGE }, // unused
/* macro_cap_ukiki */ { bhvMacroUkiki, MODEL_UKIKI, UKIKI_BP_CAP }, // unused
/* macro_piranha_plant */ { bhvPiranhaPlant, MODEL_PIRANHA_PLANT, 0 }, // unused
/* macro_empty_254 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_whomp */ { bhvSmallWhomp, MODEL_WHOMP, 0 },
/* macro_chain_chomp */ { bhvChainChomp, MODEL_CHAIN_CHOMP, 0 },
/* macro_empty_257 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_koopa */ { bhvKoopa, MODEL_KOOPA_WITH_SHELL, KOOPA_BP_NORMAL },
/* macro_koopa_shellless */ { bhvKoopa, MODEL_KOOPA_WITHOUT_SHELL, KOOPA_BP_UNSHELLED }, // unused
/* macro_wooden_post_2 */ { bhvWoodenPost, MODEL_WOODEN_POST, 0 }, // unused
/* macro_fire_piranha_plant_1 */ { bhvFirePiranhaPlant, MODEL_PIRANHA_PLANT, 0 },
/* macro_fire_piranha_plant_2 */ { bhvFirePiranhaPlant, MODEL_PIRANHA_PLANT, 1 }, // unused
/* macro_koopa_tiny */ { bhvKoopa, MODEL_KOOPA_WITH_SHELL, KOOPA_BP_TINY },
/* macro_empty_264 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_265 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_266 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_267 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_268 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_269 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_270 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_271 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_272 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_273 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_274 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_275 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_276 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_277 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_278 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_279 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_280 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_moneybag */ { bhvMoneybagHidden, MODEL_YELLOW_COIN, 0 },
/* macro_empty_282 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_283 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_284 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_285 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_286 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_287 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_288 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_swoop_1 */ { bhvSwoop, MODEL_SWOOP, 0 },
/* macro_swoop_2 */ { bhvSwoop, MODEL_SWOOP, 1 },
/* macro_mr_i */ { bhvMrI, MODEL_NONE, 0 },
/* macro_scuttlebug_spawner */ { bhvScuttlebugSpawn, MODEL_NONE, 0 },
/* macro_scuttlebug */ { bhvScuttlebug, MODEL_SCUTTLEBUG, 0 },
/* macro_empty_294 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_295 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_296 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_297 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_298 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_299 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_300 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_301 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_302 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_unknown_303 */ { bhvYellowCoin, MODEL_UNKNOWN_54, 0 }, // unused
/* macro_empty_304 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_305 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_306 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_307 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_308 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_309 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_310 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_311 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_312 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_ttc_rotating_cube */ { bhvTTCRotatingSolid, MODEL_TTC_ROTATING_CUBE, TTC_ROTATING_SOLID_BP_CUBE },
/* macro_ttc_rotating_prism */ { bhvTTCRotatingSolid, MODEL_TTC_ROTATING_PRISM, TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM },
/* macro_ttc_pendulum */ { bhvTTCPendulum, MODEL_TTC_PENDULUM, 0 },
/* macro_ttc_large_treadmill_1 */ { bhvTTCTreadmill, MODEL_TTC_LARGE_TREADMILL, TTC_TREADMILL_BP_LARGE_1 },
/* macro_ttc_small_treadmill_1 */ { bhvTTCTreadmill, MODEL_TTC_SMALL_TREADMILL, TTC_TREADMILL_BP_SMALL_1 },
/* macro_ttc_push_block */ { bhvTTCMovingBar, MODEL_TTC_PUSH_BLOCK, 0 },
/* macro_ttc_rotating_hexagon */ { bhvTTCCog, MODEL_TTC_ROTATING_HEXAGON, TTC_COG_BP_SHAPE_HEXAGON | TTC_COG_BP_DIR_CCW },
/* macro_ttc_rotating_triangle */ { bhvTTCCog, MODEL_TTC_ROTATING_TRIANGLE, TTC_COG_BP_SHAPE_TRIANGLE | TTC_COG_BP_DIR_CCW },
/* macro_ttc_pit_block_1 */ { bhvTTCPitBlock, MODEL_TTC_PIT_BLOCK, 0 },
/* macro_ttc_pit_block_2 */ { bhvTTCPitBlock, MODEL_TTC_PIT_BLOCK_UNUSED, 1 }, // unused
/* macro_ttc_elevator_platform */ { bhvTTCElevator, MODEL_TTC_ELEVATOR_PLATFORM, 0 },
/* macro_ttc_clock_hand */ { bhvTTC2DRotator, MODEL_TTC_CLOCK_HAND, 0 },
/* macro_ttc_spinner */ { bhvTTCSpinner, MODEL_TTC_SPINNER, 0 },
/* macro_ttc_small_gear */ { bhvTTC2DRotator, MODEL_TTC_SMALL_GEAR, 1 },
/* macro_ttc_large_gear */ { bhvTTC2DRotator, MODEL_TTC_LARGE_GEAR, 1 },
/* macro_ttc_large_treadmill_2 */ { bhvTTCTreadmill, MODEL_TTC_LARGE_TREADMILL, TTC_TREADMILL_BP_LARGE_2 },
/* macro_ttc_small_treadmill_2 */ { bhvTTCTreadmill, MODEL_TTC_SMALL_TREADMILL, TTC_TREADMILL_BP_SMALL_2 },
/* macro_empty_330 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_331 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_332 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_333 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_334 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_335 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_336 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_337 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_338 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_box_star_act_2 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_2 },
/* macro_box_star_act_3 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_3 },
/* macro_box_star_act_4 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_4 },
/* macro_box_star_act_5 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_5 }, // unused
/* macro_box_star_act_6 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_6 },
/* macro_empty_344 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_345 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_346 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_347 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_348 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_349 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_bits_sliding_platform */ { bhvSlidingPlatform2, MODEL_BITS_SLIDING_PLATFORM, 0 }, // unused
/* macro_bits_twin_sliding_platforms */ { bhvSlidingPlatform2, MODEL_BITS_TWIN_SLIDING_PLATFORMS, 0 }, // unused
/* macro_bits_unknown_352 */ { bhvAnotherTiltingPlatform, MODEL_BITDW_SLIDING_PLATFORM, 0 }, // unused
/* macro_bits_octagonal_platform */ { bhvOctagonalPlatformRotating, MODEL_BITS_OCTAGONAL_PLATFORM, 0 }, // unused
/* macro_bits_staircase */ { bhvAnimatesOnFloorSwitchPress, MODEL_BITS_STAIRCASE, 0 }, // unused
/* macro_empty_355 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_356 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_bits_ferris_wheel_axle */ { bhvFerrisWheelAxle, MODEL_BITS_FERRIS_WHEEL_AXLE, 0 }, // unused
/* macro_bits_arrow_platform */ { bhvActivatedBackAndForthPlatform, MODEL_BITS_ARROW_PLATFORM, 0 }, // unused
/* macro_bits_seesaw_platform */ { bhvSeesawPlatform, MODEL_BITS_SEESAW_PLATFORM, 0 }, // unused
/* macro_bits_tilting_w_platform */ { bhvSeesawPlatform, MODEL_BITS_TILTING_W_PLATFORM, 0 }, // unused
/* macro_empty_361 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_362 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_363 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_364 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
/* macro_empty_365 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
};
STATIC_ASSERT(ARRAY_COUNT(sMacroObjectPresets) == macro_count,
"change this array if you are adding macro objects");
+19
View File
@@ -25,6 +25,12 @@
#define UNUSED
#endif
#ifdef VERSION_CN
#define UNUSED_CN UNUSED
#else
#define UNUSED_CN
#endif
// Avoid undefined behaviour for non-returning functions
#ifdef __GNUC__
#define NORETURN __attribute__((noreturn))
@@ -69,4 +75,17 @@
#define VIRTUAL_TO_PHYSICAL2(addr) ((void *)(addr))
#endif
// Stubbed CN debug prints
#ifdef VERSION_CN
#define CN_DEBUG_PRINTF(args) osSyncPrintf args
#else
#define CN_DEBUG_PRINTF(args)
#endif
#ifdef VERSION_CN
#define FORCE_BSS __attribute__((nocommon)) __attribute__((section (".bss_cn")))
#else
#define FORCE_BSS
#endif
#endif // MACROS_H
+6 -4
View File
@@ -1,8 +1,10 @@
// Assembly Macros
#ifndef VERSION_CN
.set gp=64
#endif
.set K0BASE, 0x80000000
.set K1BASE, 0xA0000000
.set K2BASE, 0xC0000000
.equ K0BASE, 0x80000000
.equ K1BASE, 0xA0000000
.equ K2BASE, 0xC0000000
.macro glabel label
.global \label
-5
View File
@@ -14,11 +14,6 @@
#define ALL_ACTS_MACRO ACT_1 | ACT_2 | ACT_3 | ACT_4 | ACT_5
#define ALL_ACTS ACT_1 | ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6
#define COIN_FORMATION_FLAG_VERTICAL (1 << 0)
#define COIN_FORMATION_FLAG_RING (1 << 1)
#define COIN_FORMATION_FLAG_ARROW (1 << 2)
#define COIN_FORMATION_FLAG_FLYING (1 << 4)
#define MODEL_NONE 0x00
/* Global models that are loaded for every level */
+336 -146
View File
@@ -18,7 +18,6 @@
#define ACTIVE_FLAG_UNK9 (1 << 9) // 0x0200
#define ACTIVE_FLAG_UNK10 (1 << 10) // 0x0400
/* respawnInfoType */
#define RESPAWN_INFO_TYPE_NULL 0
#define RESPAWN_INFO_TYPE_32 1
@@ -86,10 +85,10 @@
#endif
#define OBJ_MOVE_MASK_ON_GROUND (OBJ_MOVE_LANDED | OBJ_MOVE_ON_GROUND)
#define OBJ_MOVE_MASK_IN_WATER (\
OBJ_MOVE_ENTERED_WATER |\
OBJ_MOVE_AT_WATER_SURFACE |\
OBJ_MOVE_UNDERWATER_OFF_GROUND |\
#define OBJ_MOVE_MASK_IN_WATER ( \
OBJ_MOVE_ENTERED_WATER | \
OBJ_MOVE_AT_WATER_SURFACE | \
OBJ_MOVE_UNDERWATER_OFF_GROUND | \
OBJ_MOVE_UNDERWATER_ON_GROUND)
/* oActiveParticleFlags */
@@ -122,6 +121,15 @@
#define OBJ_ACT_VERTICAL_KNOCKBACK 101
#define OBJ_ACT_SQUISHED 102
/* Star Index */
#define STAR_INDEX_ACT_1 0
#define STAR_INDEX_ACT_2 1
#define STAR_INDEX_ACT_3 2
#define STAR_INDEX_ACT_4 3
#define STAR_INDEX_ACT_5 4
#define STAR_INDEX_ACT_6 5
#define STAR_INDEX_100_COINS 6
/* gTTCSpeedSetting */
#define TTC_SPEED_SLOW 0
#define TTC_SPEED_FAST 1
@@ -129,18 +137,41 @@
#define TTC_SPEED_STOPPED 3
/* Bob-omb */
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define BOBOMB_BP_STYPE_GENERIC 0
#define BOBOMB_BP_STYPE_STATIONARY 1
/* oAction */
#define BOBOMB_ACT_PATROL 0
#define BOBOMB_ACT_LAUNCHED 1
#define BOBOMB_ACT_CHASE_MARIO 2
#define BOBOMB_ACT_EXPLODE 3
#define BOBOMB_ACT_PATROL 0
#define BOBOMB_ACT_LAUNCHED 1
#define BOBOMB_ACT_CHASE_MARIO 2
#define BOBOMB_ACT_EXPLODE 3
#define BOBOMB_ACT_LAVA_DEATH 100
#define BOBOMB_ACT_DEATH_PLANE_DEATH 101
/* Coin Formation */
/* oAction */
#define COIN_FORMATION_ACT_SPAWN_COINS 0
#define COIN_FORMATION_ACT_IDLE 1
#define COIN_FORMATION_ACT_RESPAWN_COINS 2
/* oBhvParams2ndByte */
#define COIN_FORMATION_BP_FLAG_HORIZONTAL (0 << 0)
#define COIN_FORMATION_BP_FLAG_VERTICAL (1 << 0)
#define COIN_FORMATION_BP_FLAG_RING (1 << 1)
#define COIN_FORMATION_BP_FLAG_ARROW (1 << 2)
#define COIN_FORMATION_BP_FLAG_FLYING (1 << 4)
#define COIN_FORMATION_BP_FLAG_MASK (COIN_FORMATION_BP_FLAG_HORIZONTAL | \
COIN_FORMATION_BP_FLAG_VERTICAL | \
COIN_FORMATION_BP_FLAG_RING | \
COIN_FORMATION_BP_FLAG_ARROW)
#define COIN_FORMATION_BP_LINE_HORIZONTAL (COIN_FORMATION_BP_FLAG_HORIZONTAL)
#define COIN_FORMATION_BP_LINE_VERTICAL (COIN_FORMATION_BP_FLAG_VERTICAL)
#define COIN_FORMATION_BP_RING_HORIZONTAL (COIN_FORMATION_BP_FLAG_HORIZONTAL | COIN_FORMATION_BP_FLAG_RING)
#define COIN_FORMATION_BP_RING_VERTICAL (COIN_FORMATION_BP_FLAG_VERTICAL | COIN_FORMATION_BP_FLAG_RING)
#define COIN_FORMATION_BP_ARROW (COIN_FORMATION_BP_FLAG_ARROW)
/* Hidden Blue Coin */
/* oAction */
#define HIDDEN_BLUE_COIN_ACT_INACTIVE 0
@@ -160,13 +191,13 @@
/* Moving Yellow Coin */
/* oAction */
#define MOV_YCOIN_ACT_IDLE 0
#define MOV_YCOIN_ACT_BLINKING 1
#define MOV_YCOIN_ACT_IDLE 0
#define MOV_YCOIN_ACT_BLINKING 1
#define MOV_YCOIN_ACT_LAVA_DEATH 100
#define MOV_YCOIN_ACT_DEATH_PLANE_DEATH 101
/* Bob-omb Buddy */
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define BOBOMB_BUDDY_BP_STYPE_GENERIC 0
#define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS_KBB 1
#define BOBOMB_BUDDY_BP_STYPE_BOB_CANNON_KBB 2
@@ -248,7 +279,7 @@
#define BOWSER_ANIM_FLIP 25
#define BOWSER_ANIM_STAND_UP_FROM_FLIP 26
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define BOWSER_BP_BITDW 0
#define BOWSER_BP_BITFS 1
#define BOWSER_BP_BITS 2
@@ -292,13 +323,13 @@
#define BOWSER_SUB_ACT_HIT_MINE_START 0
#define BOWSER_SUB_ACT_HIT_MINE_FALL 1
#define BOWSER_SUB_ACT_HIT_MINE_STOP 2
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_IDLE 0
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_START 1
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_LAND 2
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_STOP 3
/* Bowser Bits Platform*/
/* Bowser BitS Platform */
/* oAction */
#define BOWSER_BITS_PLAT_ACT_START 0
#define BOWSER_BITS_PLAT_ACT_CHECK 1
@@ -308,9 +339,9 @@
/* oAction */
#define FISH_SPAWNER_ACT_SPAWN 0
#define FISH_SPAWNER_ACT_IDLE 1
#define FISH_SPAWNER_ACT_RESPAWN 2
#define FISH_SPAWNER_ACT_RESPAWN 2
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define FISH_SPAWNER_BP_MANY_BLUE 0
#define FISH_SPAWNER_BP_FEW_BLUE 1
#define FISH_SPAWNER_BP_MANY_CYAN 2
@@ -322,7 +353,7 @@
#define FISH_ACT_ROAM 1
#define FISH_ACT_FLEE 2
/* Blue_Fish */
/* Blue Fish */
/* oAction */
#define BLUE_FISH_ACT_DIVE 0
#define BLUE_FISH_ACT_TURN 1
@@ -350,7 +381,7 @@
#define HOMING_AMP_ACT_ATTACK_COOLDOWN 4
/* Amp */
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define AMP_BP_ROT_RADIUS_200 0
#define AMP_BP_ROT_RADIUS_300 1
#define AMP_BP_ROT_RADIUS_400 2
@@ -377,27 +408,27 @@
#define HOOT_ACT_CARRY 1
#define HOOT_ACT_TIRED 2
/* Bully (all variants) */
/* oBehParams2ndByte */
/* Bully (All variants) */
/* oBhvParams2ndByte */
#define BULLY_BP_SIZE_SMALL 0
#define BULLY_BP_SIZE_BIG 1
/* oAction */
#define BULLY_ACT_PATROL 0
#define BULLY_ACT_CHASE_MARIO 1
#define BULLY_ACT_KNOCKBACK 2
#define BULLY_ACT_BACK_UP 3
#define BULLY_ACT_INACTIVE 4
#define BULLY_ACT_ACTIVATE_AND_FALL 5
#define BULLY_ACT_PATROL 0
#define BULLY_ACT_CHASE_MARIO 1
#define BULLY_ACT_KNOCKBACK 2
#define BULLY_ACT_BACK_UP 3
#define BULLY_ACT_INACTIVE 4
#define BULLY_ACT_ACTIVATE_AND_FALL 5
#define BULLY_ACT_LAVA_DEATH 100
#define BULLY_ACT_DEATH_PLANE_DEATH 101
/* oBullySubtype */
#define BULLY_STYPE_GENERIC 0
#define BULLY_STYPE_MINION 1
#define BULLY_STYPE_GENERIC 0
#define BULLY_STYPE_MINION 1
#define BULLY_STYPE_CHILL 16
/* Water Ring (all variants) */
/* Water Ring (All variants) */
/* oAction */
#define WATER_RING_ACT_NOT_COLLECTED 0
#define WATER_RING_ACT_COLLECTED 1
@@ -417,7 +448,7 @@
#define LLL_DRAWBRIDGE_ACT_LOWER 0
#define LLL_DRAWBRIDGE_ACT_RAISE 1
/* Bomp (both variants) */
/* Bomp (Both variants) */
/* oAction */
#define BOMP_ACT_WAIT 0
#define BOMP_ACT_POKE_OUT 1
@@ -425,7 +456,7 @@
#define BOMP_ACT_RETRACT 3
/* WF Sliding Brick Platform */
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_10 1
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_15 2
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_20 3
@@ -462,8 +493,8 @@
#define BBALL_ACT_INITIALIZE 0
#define BBALL_ACT_ROLL 1
/* Bowling Ball + Bowling Ball Spawner (all variants) */
/* oBehParams2ndByte */
/* Bowling Ball + Bowling Ball Spawner (All variants) */
/* oBhvParams2ndByte */
#define BBALL_BP_STYPE_BOB_UPPER 0
#define BBALL_BP_STYPE_TTM 1
#define BBALL_BP_STYPE_BOB_LOWER 2
@@ -495,10 +526,21 @@
#define BOO_DEATH_STATUS_DEAD 2
/* attackStatus */
#define BOO_NOT_ATTACKED 0
#define BOO_ATTACKED 1
#define BOO_NOT_ATTACKED 0
#define BOO_ATTACKED 1
#define BOO_BOUNCED_ON -1
/* oBhvParams2ndByte */
#define BOO_BP_GHOST_HUNT 0
#define BOO_BP_GENERIC 1
#define BOO_BP_MERRY_GO_ROUND 2
/* Big Boo */
/* oBhvParams2ndByte */
#define BIG_BOO_BP_GHOST_HUNT 0
#define BIG_BOO_BP_MERRY_GO_ROUND 1
#define BIG_BOO_BP_BALCONY 2
/* Beta Boo Key */
/* oAction */
#define BETA_BOO_KEY_ACT_IN_BOO 0
@@ -521,7 +563,7 @@
/* BBH Merry-Go-Round */
/* gMarioCurrentRoom */
#define BBH_NEAR_MERRY_GO_ROUND_ROOM 10
#define BBH_DYNAMIC_SURFACE_ROOM 0
#define BBH_DYNAMIC_SURFACE_ROOM 0
#define BBH_OUTSIDE_ROOM 13
/* Coffin Spawner */
@@ -533,7 +575,7 @@
#define COFFIN_ACT_IDLE 0
#define COFFIN_ACT_STAND_UP 1
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define COFFIN_BP_STATIC 0
/* WDW Arrow Lift */
@@ -548,12 +590,12 @@
/* Yoshi */
/* oAction */
#define YOSHI_ACT_IDLE 0
#define YOSHI_ACT_WALK 1
#define YOSHI_ACT_TALK 2
#define YOSHI_ACT_WALK_JUMP_OFF_ROOF 3
#define YOSHI_ACT_FINISH_JUMPING_AND_DESPAWN 4
#define YOSHI_ACT_GIVE_PRESENT 5
#define YOSHI_ACT_IDLE 0
#define YOSHI_ACT_WALK 1
#define YOSHI_ACT_TALK 2
#define YOSHI_ACT_WALK_JUMP_OFF_ROOF 3
#define YOSHI_ACT_FINISH_JUMPING_AND_DESPAWN 4
#define YOSHI_ACT_GIVE_PRESENT 5
#define YOSHI_ACT_CREDITS 10
/* Koopa */
@@ -590,7 +632,7 @@
#define KOOPA_THE_QUICK_BOB_INDEX 0
#define KOOPA_THE_QUICK_THI_INDEX 1
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define KOOPA_BP_UNSHELLED 0
#define KOOPA_BP_NORMAL 1
#define KOOPA_BP_KOOPA_THE_QUICK_BASE 2
@@ -609,35 +651,40 @@
#define SWOOP_ACT_IDLE 0
#define SWOOP_ACT_MOVE 1
/* Fly guy */
/* Fly Guy */
/* oAction */
#define FLY_GUY_ACT_IDLE 0
#define FLY_GUY_ACT_APPROACH_MARIO 1
#define FLY_GUY_ACT_LUNGE 2
#define FLY_GUY_ACT_SHOOT_FIRE 3
/* Goomba triplet spawner */
/* oBehParams2ndByte */
#define GOOMBA_TRIPLET_SPAWNER_BP_SIZE_MASK 0x00000003
#define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK 0x000000FC
/* oAction */
#define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0
#define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 1
/* oBhvParams2ndByte */
#define FLY_GUY_BP_GENERIC 0
#define FLY_GUY_BP_FIRE 1
/* Goomba */
/* oBehParams2ndByte */
#define GOOMBA_BP_SIZE_MASK 0x00000003
#define GOOMBA_SIZE_REGULAR 0
#define GOOMBA_SIZE_HUGE 1
#define GOOMBA_SIZE_TINY 2
#define GOOMBA_BP_TRIPLET_FLAG_MASK 0x000000FC
/* oAction */
#define GOOMBA_ACT_WALK 0
#define GOOMBA_ACT_ATTACKED_MARIO 1
#define GOOMBA_ACT_JUMP 2
/* Chain chomp */
/* oBhvParams2ndByte */
#define GOOMBA_SIZE_REGULAR 0
#define GOOMBA_SIZE_HUGE 1
#define GOOMBA_SIZE_TINY 2
#define GOOMBA_BP_SIZE_MASK (GOOMBA_SIZE_REGULAR | GOOMBA_SIZE_HUGE | GOOMBA_SIZE_TINY)
#define GOOMBA_BP_TRIPLET_RESPAWN_FLAG_MASK (0x000000FF & ~GOOMBA_BP_SIZE_MASK)
/* Goomba Triplet Spawner */
/* oAction */
#define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0
#define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 1
/* oBhvParams2ndByte */
#define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK (0x000000FF & ~GOOMBA_BP_SIZE_MASK)
#define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS(num) ((num) << 2)
/* Chain Chomp */
/* oAction */
#define CHAIN_CHOMP_ACT_UNINITIALIZED 0
#define CHAIN_CHOMP_ACT_MOVE 1
@@ -655,12 +702,12 @@
#define CHAIN_CHOMP_RELEASED_JUMP_AWAY 4
#define CHAIN_CHOMP_RELEASED_END_CUTSCENE 5
/* Chain chomp chain part */
/* oBehParams2ndByte */
/* Chain Chomp Chain Part */
/* oBhvParams2ndByte */
#define CHAIN_CHOMP_CHAIN_PART_BP_PIVOT 0
/* Wooden post */
/* oBehParams */
/* Wooden Post */
/* oBhvParams */
#define WOODEN_POST_BP_NO_COINS_MASK 0x0000FF00
/* Wiggler */
@@ -684,7 +731,7 @@
#define SPINY_ACT_THROWN_BY_LAKITU 2
#define SPINY_ACT_ATTACKED_MARIO 3
/* Evil lakitu */
/* Evil Lakitu */
/* oAction */
#define ENEMY_LAKITU_ACT_UNINITIALIZED 0
#define ENEMY_LAKITU_ACT_MAIN 1
@@ -701,17 +748,17 @@
#define CLOUD_ACT_UNLOAD 2
#define CLOUD_ACT_FWOOSH_HIDDEN 3
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define CLOUD_BP_FWOOSH 0
#define CLOUD_BP_LAKITU_CLOUD 1
/* Camera lakitu */
/* Camera Lakitu */
/* oAction */
#define CAMERA_LAKITU_INTRO_ACT_TRIGGER_CUTSCENE 0
#define CAMERA_LAKITU_INTRO_ACT_SPAWN_CLOUD 1
#define CAMERA_LAKITU_INTRO_ACT_UNK2 2
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define CAMERA_LAKITU_BP_FOLLOW_CAMERA 0
#define CAMERA_LAKITU_BP_INTRO 1
@@ -720,7 +767,7 @@
#define MANTA_ACT_SPAWN_RINGS 0
#define MANTA_ACT_NO_RINGS 1
/* Monty mole */
/* Monty Mole */
/* oAction */
#define MONTY_MOLE_ACT_SELECT_HOLE 0
#define MONTY_MOLE_ACT_RISE_FROM_HOLE 1
@@ -731,10 +778,11 @@
#define MONTY_MOLE_ACT_HIDE 6
#define MONTY_MOLE_ACT_JUMP_OUT_OF_HOLE 7
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define MONTY_MOLE_BP_NO_ROCK 0
#define MONTY_MOLE_BP_GENERIC 1
/* Monty mole rock */
/* Monty Mole Rock */
/* oAction */
#define MONTY_MOLE_ROCK_ACT_HELD 0
#define MONTY_MOLE_ROCK_ACT_MOVE 1
@@ -776,21 +824,21 @@
#define UKIKI_TEXT_DO_NOT_LET_GO 6
#define UKIKI_TEXT_STEAL_CAP 7
/* oBehParams2ndByte */
#define UKIKI_CAGE 0
#define UKIKI_CAP 1
/* oBhvParams2ndByte */
#define UKIKI_BP_CAGE 0
#define UKIKI_BP_CAP 1
/* Animations */
#define UKIKI_ANIM_RUN 0
#define UKIKI_ANIM_UNUSED_WALK 1
#define UKIKI_ANIM_UNUSED_APOSE 2
#define UKIKI_ANIM_UNUSED_DEATH 3
#define UKIKI_ANIM_SCREECH 4
#define UKIKI_ANIM_JUMP_CLAP 5
#define UKIKI_ANIM_UNUSED_HOP 6
#define UKIKI_ANIM_LAND 7
#define UKIKI_ANIM_JUMP 8
#define UKIKI_ANIM_ITCH 9
#define UKIKI_ANIM_RUN 0
#define UKIKI_ANIM_UNUSED_WALK 1
#define UKIKI_ANIM_UNUSED_APOSE 2
#define UKIKI_ANIM_UNUSED_DEATH 3
#define UKIKI_ANIM_SCREECH 4
#define UKIKI_ANIM_JUMP_CLAP 5
#define UKIKI_ANIM_UNUSED_HOP 6
#define UKIKI_ANIM_LAND 7
#define UKIKI_ANIM_JUMP 8
#define UKIKI_ANIM_ITCH 9
#define UKIKI_ANIM_HANDSTAND 10
#define UKIKI_ANIM_TURN 11
#define UKIKI_ANIM_HELD 12
@@ -830,12 +878,13 @@
/* oPiranhaPlantSleepMusicState */
#define PIRANHA_PLANT_SLEEP_MUSIC_PLAYING 0
/* Piranha Plant bubble */
/* Piranha Plant Bubble */
/* oAction */
#define PIRANHA_PLANT_BUBBLE_ACT_IDLE 0
#define PIRANHA_PLANT_BUBBLE_ACT_GROW_SHRINK_LOOP 1
#define PIRANHA_PLANT_BUBBLE_ACT_BURST 2
/* Platform on track */
/* Platform on Track */
/* oAction */
#define PLATFORM_ON_TRACK_ACT_INIT 0
#define PLATFORM_ON_TRACK_ACT_WAIT_FOR_MARIO 1
@@ -843,11 +892,11 @@
#define PLATFORM_ON_TRACK_ACT_PAUSE_BRIEFLY 3
#define PLATFORM_ON_TRACK_ACT_FALL 4
/* oBehParams >> 16 */
#define PLATFORM_ON_TRACK_BP_MASK_PATH 0xF
#define PLATFORM_ON_TRACK_BP_MASK_TYPE (0x7 << 4)
#define PLATFORM_ON_TRACK_BP_RETURN_TO_START (1 << 8)
#define PLATFORM_ON_TRACK_BP_DONT_DISAPPEAR (1 << 9)
/* oBhvParams >> 16 */
#define PLATFORM_ON_TRACK_BP_MASK_PATH 0x000F
#define PLATFORM_ON_TRACK_BP_MASK_TYPE 0x0070
#define PLATFORM_ON_TRACK_BP_RETURN_TO_START (1 << 8)
#define PLATFORM_ON_TRACK_BP_DONT_DISAPPEAR (1 << 9)
#define PLATFORM_ON_TRACK_BP_DONT_TURN_YAW (1 << 10)
#define PLATFORM_ON_TRACK_BP_DONT_TURN_ROLL (1 << 11)
@@ -856,35 +905,38 @@
#define PLATFORM_ON_TRACK_TYPE_CHECKERED 2
#define PLATFORM_ON_TRACK_TYPE_GRATE 3
/* Purple switch */
#define PURPLE_SWITCH_IDLE 0
#define PURPLE_SWITCH_PRESSED 1
#define PURPLE_SWITCH_TICKING 2
#define PURPLE_SWITCH_UNPRESSED 3
#define PURPLE_SWITCH_WAIT_FOR_MARIO_TO_GET_OFF 4
/* Purple Switch */
/* oAction */
#define PURPLE_SWITCH_ACT_IDLE 0
#define PURPLE_SWITCH_ACT_PRESSED 1
#define PURPLE_SWITCH_ACT_TICKING 2
#define PURPLE_SWITCH_ACT_UNPRESSED 3
#define PURPLE_SWITCH_ACT_WAIT_FOR_MARIO_TO_GET_OFF 4
/* Pyramid elevator */
#define PYRAMID_ELEVATOR_IDLE 0
#define PYRAMID_ELEVATOR_START_MOVING 1
#define PYRAMID_ELEVATOR_CONSTANT_VELOCITY 2
#define PYRAMID_ELEVATOR_AT_BOTTOM 3
/* Pyramid Elevator */
/* oAction */
#define PYRAMID_ELEVATOR_ACT_IDLE 0
#define PYRAMID_ELEVATOR_ACT_START_MOVING 1
#define PYRAMID_ELEVATOR_ACT_CONSTANT_VELOCITY 2
#define PYRAMID_ELEVATOR_ACT_AT_BOTTOM 3
/* Pyramid top */
/* Pyramid Top */
/* oAction */
#define PYRAMID_TOP_ACT_CHECK_IF_SOLVED 0
#define PYRAMID_TOP_ACT_SPINNING 1
#define PYRAMID_TOP_ACT_EXPLODE 2
/* Pyramid wall */
/* Pyramid Wall */
/* oAction */
#define PYRAMID_WALL_ACT_MOVING_DOWN 0
#define PYRAMID_WALL_ACT_MOVING_UP 1
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define PYRAMID_WALL_BP_POSITION_HIGH 0
#define PYRAMID_WALL_BP_POSITION_MIDDLE 1
#define PYRAMID_WALL_BP_POSITION_LOW 2
/* Penguins (general) */
/* Penguins (General) */
/* Walking sounds */
#define PENGUIN_WALK_BABY 0
#define PENGUIN_WALK_BIG 1
@@ -893,7 +945,7 @@
#define PENGUIN_ANIM_WALK 0
#define PENGUIN_ANIM_IDLE 3
/* Racing penguin */
/* Racing Penguin */
/* oAction */
#define RACING_PENGUIN_ACT_WAIT_FOR_MARIO 0
#define RACING_PENGUIN_ACT_SHOW_INIT_TEXT 1
@@ -902,80 +954,98 @@
#define RACING_PENGUIN_ACT_FINISH_RACE 4
#define RACING_PENGUIN_ACT_SHOW_FINAL_TEXT 5
/* SL walking penguin */
/* oBhvParams2ndByte */
#define RACING_PENGUIN_BP_THIN 0
#define RACING_PENGUIN_BP_FAT 1
/* SL Walking Penguin */
/* oAction */
#define SL_WALKING_PENGUIN_ACT_MOVING_FORWARDS 0
#define SL_WALKING_PENGUIN_ACT_TURNING_BACK 1
#define SL_WALKING_PENGUIN_ACT_RETURNING 2
#define SL_WALKING_PENGUIN_ACT_TURNING_FORWARDS 3
/* Snowman wind */
/* Snowman Wind */
/* oSubAction */
#define SL_SNOWMAN_WIND_ACT_IDLE 0
#define SL_SNOWMAN_WIND_ACT_TALKING 1
#define SL_SNOWMAN_WIND_ACT_BLOWING 2
/* Water bomb */
/* Water Bomb */
/* oAction */
#define WATER_BOMB_ACT_SHOT_FROM_CANNON 0
#define WATER_BOMB_ACT_INIT 1
#define WATER_BOMB_ACT_DROP 2
#define WATER_BOMB_ACT_EXPLODE 3
/* TTC rotating solid */
/* oBehParams2ndByte */
/* TTC Rotating Solid */
/* oBhvParams2ndByte */
#define TTC_ROTATING_SOLID_BP_CUBE 0
#define TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM 1
/* TTC moving bar */
/* TTC Treadmill */
/* oBhvParams2ndByte */
#define TTC_TREADMILL_BP_FLAG_LARGE (0 << 0)
#define TTC_TREADMILL_BP_FLAG_SMALL (1 << 0)
#define TTC_TREADMILL_BP_FLAG_MASK (TTC_TREADMILL_BP_FLAG_LARGE | TTC_TREADMILL_BP_FLAG_SMALL)
#define TTC_TREADMILL_BP_LARGE_1 ((0 << 1) | TTC_TREADMILL_BP_FLAG_LARGE)
#define TTC_TREADMILL_BP_SMALL_1 ((0 << 1) | TTC_TREADMILL_BP_FLAG_SMALL)
#define TTC_TREADMILL_BP_LARGE_2 ((1 << 1) | TTC_TREADMILL_BP_FLAG_LARGE)
#define TTC_TREADMILL_BP_SMALL_2 ((1 << 1) | TTC_TREADMILL_BP_FLAG_SMALL)
/* TTC Moving Bar */
/* oAction */
#define TTC_MOVING_BAR_ACT_WAIT 0
#define TTC_MOVING_BAR_ACT_PULL_BACK 1
#define TTC_MOVING_BAR_ACT_EXTEND 2
#define TTC_MOVING_BAR_ACT_RETRACT 3
/* TTC cog */
/* oBehParams2ndByte */
#define TTC_COG_BP_SHAPE_MASK 0x00000002
/* TTC Cog */
/* oBhvParams2ndByte */
#define TTC_COG_BP_SHAPE_HEXAGON (0 << 1)
#define TTC_COG_BP_SHAPE_TRIANGLE (1 << 1)
#define TTC_COG_BP_DIR_MASK 0x00000001
#define TTC_COG_BP_SHAPE_MASK (TTC_COG_BP_SHAPE_HEXAGON | TTC_COG_BP_SHAPE_TRIANGLE)
#define TTC_COG_BP_DIR_CCW (0 << 0) // TODO: Check these
#define TTC_COG_BP_DIR_CW (1 << 0)
#define TTC_COG_BP_DIR_MASK (TTC_COG_BP_DIR_CCW | TTC_COG_BP_DIR_CW)
/* TTC 2D Rotator */
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define TTC_2D_ROTATOR_BP_HAND 0
#define TTC_2D_ROTATOR_BP_2D_COG 1
/* Activated Back-and-Forth Platform */
/* ((u16)(o->oBehParams >> 16) & 0x0300) >> 8 aka platform type */
#define ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT 0
#define ACTIVATED_BF_PLAT_TYPE_BITFS_MESH_PLAT 1
#define ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR 2
/* oBhvParams >> 16 */
#define ACTIVATED_BF_PLAT_BP_MASK_TYPE ((ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT | \
ACTIVATED_BF_PLAT_TYPE_BITFS_MESH_PLAT | \
ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR) << 8)
/* Dorrie */
/* oAction */
#define DORRIE_ACT_MOVE 0
#define DORRIE_ACT_LOWER_HEAD 1
#define DORRIE_ACT_RAISE_HEAD 2
/* Mad piano */
/* Mad Piano */
/* oAction */
#define MAD_PIANO_ACT_WAIT 0
#define MAD_PIANO_ACT_ATTACK 1
/* Fire piranha plant */
/* Fire Piranha Plant */
/* oAction */
#define FIRE_PIRANHA_PLANT_ACT_HIDE 0
#define FIRE_PIRANHA_PLANT_ACT_GROW 1
/* Fire spitter */
/* Fire Spitter */
/* oAction */
#define FIRE_SPITTER_ACT_IDLE 0
#define FIRE_SPITTER_ACT_SPIT_FIRE 1
/* Eyerok boss */
/* Eyerok Boss */
/* oAction */
#define EYEROK_BOSS_ACT_SLEEP 0
#define EYEROK_BOSS_ACT_WAKE_UP 1
@@ -983,18 +1053,18 @@
#define EYEROK_BOSS_ACT_FIGHT 3
#define EYEROK_BOSS_ACT_DIE 4
/* Eyerok hand */
/* Eyerok Hand */
/* oAction */
#define EYEROK_HAND_ACT_SLEEP 0
#define EYEROK_HAND_ACT_IDLE 1
#define EYEROK_HAND_ACT_OPEN 2
#define EYEROK_HAND_ACT_SHOW_EYE 3
#define EYEROK_HAND_ACT_CLOSE 4
#define EYEROK_HAND_ACT_RETREAT 5
#define EYEROK_HAND_ACT_TARGET_MARIO 6
#define EYEROK_HAND_ACT_SMASH 7
#define EYEROK_HAND_ACT_FIST_PUSH 8
#define EYEROK_HAND_ACT_FIST_SWEEP 9
#define EYEROK_HAND_ACT_SLEEP 0
#define EYEROK_HAND_ACT_IDLE 1
#define EYEROK_HAND_ACT_OPEN 2
#define EYEROK_HAND_ACT_SHOW_EYE 3
#define EYEROK_HAND_ACT_CLOSE 4
#define EYEROK_HAND_ACT_RETREAT 5
#define EYEROK_HAND_ACT_TARGET_MARIO 6
#define EYEROK_HAND_ACT_SMASH 7
#define EYEROK_HAND_ACT_FIST_PUSH 8
#define EYEROK_HAND_ACT_FIST_SWEEP 9
#define EYEROK_HAND_ACT_BEGIN_DOUBLE_POUND 10 // raising for double smash
#define EYEROK_HAND_ACT_DOUBLE_POUND 11 // double smashing
#define EYEROK_HAND_ACT_ATTACKED 12
@@ -1023,7 +1093,7 @@
#define BIRD_ACT_INACTIVE 0
#define BIRD_ACT_FLY 1
/* oBehParams2ndByte */
/* oBhvParams2ndByte */
#define BIRD_BP_SPAWNED 0
#define BIRD_BP_SPAWNER 1
@@ -1049,23 +1119,28 @@
#define TWEESTER_SUB_ACT_CHASE 0
/* Triplet butterfly */
/* Triplet Butterfly */
/* oAction */
#define TRIPLET_BUTTERFLY_ACT_INIT 0
#define TRIPLET_BUTTERFLY_ACT_WANDER 1
#define TRIPLET_BUTTERFLY_ACT_ACTIVATE 2
#define TRIPLET_BUTTERFLY_ACT_EXPLODE 3
/* oBehParams2ndByte */
#define TRIPLET_BUTTERFLY_BP_BUTTERFLY_NUM 0x00000003
#define TRIPLET_BUTTERFLY_BP_NO_BOMBS 0x00000004
/* oBhvParams2ndByte */
#define TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNER (0 << 0)
#define TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNED_1 (1 << 0)
#define TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNED_2 (1 << 1)
#define TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_MASK (TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNER | \
TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNED_1 | \
TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNED_2)
#define TRIPLET_BUTTERFLY_BP_NO_BOMBS (1 << 2)
/* oTripletButterflyType */
#define TRIPLET_BUTTERFLY_TYPE_NORMAL -1
#define TRIPLET_BUTTERFLY_TYPE_EXPLODES 0
#define TRIPLET_BUTTERFLY_TYPE_SPAWN_1UP 1
#define TRIPLET_BUTTERFLY_TYPE_EXPLODES 0
#define TRIPLET_BUTTERFLY_TYPE_SPAWN_1UP 1
/* Water level diamond */
/* Water Level Diamond */
/* oAction */
// Loading
#define WATER_LEVEL_DIAMOND_ACT_INIT 0
@@ -1089,6 +1164,10 @@
#define MIPS_STAR_STATUS_SHOULD_SPAWN_STAR 1
#define MIPS_STAR_STATUS_ALREADY_SPAWNED_STAR 2
/* oBhvParams2ndByte */
#define MIPS_BP_15_STARS 0
#define MIPS_BP_50_STARS 1
/* Falling Pillar */
/* oAction */
#define FALLING_PILLAR_ACT_IDLE 0
@@ -1112,8 +1191,119 @@
#define MR_BLIZZARD_ACT_DEATH 6
#define MR_BLIZZARD_ACT_JUMP 7
/* oBehParams2ndByte */
#define MR_BLIZZARD_STYPE_NO_CAP 0
/* oBhvParams2ndByte */
#define MR_BLIZZARD_STYPE_GENERIC 0
#define MR_BLIZZARD_STYPE_JUMPING 1
#define MR_BLIZZARD_STYPE_CAP 2
/* Whomp */
/* oBhvParams2ndByte */
#define WHOMP_BP_SMALL 0
#define WHOMP_BP_KING 1
/* 1-Up Mushroom */
/* oBhvParams2ndByte */
#define ONE_UP_BP_GENERIC 0
#define ONE_UP_BP_BEAT_BITDW_BOWSER 1
#define ONE_UP_BP_BEAT_BITFS_BOWSER 2
/* Breakable Box */
/* oBhvParams2ndByte */
#define BREAKABLE_BOX_BP_NO_COINS 0
#define BREAKABLE_BOX_BP_3_COINS 1
#define BREAKABLE_BOX_BP_5_COINS 2
#define BREAKABLE_BOX_BP_GIANT 3
/* Hidden Object */
/* oAction */
#define HIDDEN_OBJECT_ACT_INACTIVE 0
#define HIDDEN_OBJECT_ACT_ACTIVE 1
#define HIDDEN_OBJECT_ACT_BROKEN 2
/* oBhvParams2ndByte */
#define HIDDEN_OBJECT_BP_BREAKABLE_BOX 0
#define HIDDEN_OBJECT_BP_WDW_PLATFORM 1
#define HIDDEN_OBJECT_BP_UNBREAKABLE_BOX_UNUSED_1 1
#define HIDDEN_OBJECT_BP_UNBREAKABLE_BOX_UNUSED_2 2
/* Exclamation Box */
/* oAnimState */
#define EXCLAMATION_BOX_ANIM_STATE_WING_CAP 0
#define EXCLAMATION_BOX_ANIM_STATE_METAL_CAP 1
#define EXCLAMATION_BOX_ANIM_STATE_VANISH_CAP 2
#define EXCLAMATION_BOX_ANIM_STATE_DEFAULT 3
/* oBhvParams2ndByte */
#define EXCLAMATION_BOX_BP_WING_CAP 0
#define EXCLAMATION_BOX_BP_METAL_CAP 1
#define EXCLAMATION_BOX_BP_VANISH_CAP 2
#define EXCLAMATION_BOX_BP_SPECIAL_CAP_END 2
#define EXCLAMATION_BOX_BP_KOOPA_SHELL 3
#define EXCLAMATION_BOX_BP_ONE_COIN 4
#define EXCLAMATION_BOX_BP_THREE_COINS 5
#define EXCLAMATION_BOX_BP_TEN_COINS 6
#define EXCLAMATION_BOX_BP_1UP_WALKING 7
#define EXCLAMATION_BOX_BP_STAR_ACT_1 8
#define EXCLAMATION_BOX_BP_1UP_RUNNING_AWAY 9
#define EXCLAMATION_BOX_BP_STAR_ACT_2 10
#define EXCLAMATION_BOX_BP_STAR_ACT_3 11
#define EXCLAMATION_BOX_BP_STAR_ACT_4 12
#define EXCLAMATION_BOX_BP_STAR_ACT_5 13
#define EXCLAMATION_BOX_BP_STAR_ACT_6 14
#define EXCLAMATION_BOX_BP_END 99
/* Cap Switch */
/* oBhvParams2ndByte */
#define CAP_SWITCH_BP_RED 0
#define CAP_SWITCH_BP_GREEN 1
#define CAP_SWITCH_BP_BLUE 2
#define CAP_SWITCH_BP_YELLOW 3
/* Openable Grill */
/* oBhvParams2ndByte */
#define OPENABLE_GRILL_BP_BOB 0
#define OPENABLE_GRILL_BP_HMC 1
/* WF Rotating Wooden Platform */
/* oAction */
#define WF_ROTATING_WOODEN_PLATFORM_ACT_IDLE 0
#define WF_ROTATING_WOODEN_PLATFORM_ACT_ROTATING 1
/* Rotating Platform */
/* oBhvParams2ndByte */
#define ROTATING_PLATFORM_BP_WF 0
#define ROTATING_PLATFORM_BP_WDW 1
/* Tumbling Bridge */
/* oBhvParams2ndByte */
#define TUMBLING_BRIDGE_BP_WF 0
#define TUMBLING_BRIDGE_BP_BBH 1
#define TUMBLING_BRIDGE_BP_LLL 2
#define TUMBLING_BRIDGE_BP_BITFS 3
/* Grindel or Thwomp */
/* oAction */
#define GRINDEL_THWOMP_ACT_RAISE 0
#define GRINDEL_THWOMP_ACT_IDLE_AT_TOP 1
#define GRINDEL_THWOMP_ACT_LOWER 2
#define GRINDEL_THWOMP_ACT_LAND 3
#define GRINDEL_THWOMP_ACT_IDLE_AT_BOTTOM 4
/* Tox Box */
/* oAction */
#define TOX_BOX_ACT_INIT 0
#define TOX_BOX_ACT_ROLL_LAND 1
#define TOX_BOX_ACT_IDLE 2
#define TOX_BOX_ACT_UNUSED_IDLE 3
#define TOX_BOX_ACT_ROLL_FORWARD 4
#define TOX_BOX_ACT_ROLL_BACKWARD 5
#define TOX_BOX_ACT_ROLL_RIGHT 6
#define TOX_BOX_ACT_ROLL_LEFT 7
#define TOX_BOX_ACT_TABLE_END -1
/* oBhvParams2ndByte */
#define TOX_BOX_BP_MOVEMENT_PATTERN_1 0
#define TOX_BOX_BP_MOVEMENT_PATTERN_2 1
#define TOX_BOX_BP_MOVEMENT_PATTERN_3 2
#endif // OBJECT_CONSTANTS_H
+34 -34
View File
@@ -101,7 +101,7 @@
#define /*0x138*/ oParentRelativePosX OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 0)
#define /*0x13C*/ oParentRelativePosY OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 1)
#define /*0x140*/ oParentRelativePosZ OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 2)
#define /*0x144*/ oBehParams2ndByte OBJECT_FIELD_S32(0x2F)
#define /*0x144*/ oBhvParams2ndByte OBJECT_FIELD_S32(0x2F)
// 0x148 unused, possibly a third param byte.
#define /*0x14C*/ oAction OBJECT_FIELD_S32(0x31)
#define /*0x150*/ oSubAction OBJECT_FIELD_S32(0x32)
@@ -118,7 +118,7 @@
#define /*0x17C*/ oOpacity OBJECT_FIELD_S32(0x3D)
#define /*0x180*/ oDamageOrCoinValue OBJECT_FIELD_S32(0x3E)
#define /*0x184*/ oHealth OBJECT_FIELD_S32(0x3F)
#define /*0x188*/ oBehParams OBJECT_FIELD_S32(0x40)
#define /*0x188*/ oBhvParams OBJECT_FIELD_S32(0x40)
#define /*0x18C*/ oPrevAction OBJECT_FIELD_S32(0x41)
#define /*0x190*/ oInteractionSubtype OBJECT_FIELD_U32(0x42)
#define /*0x194*/ oCollisionDistance OBJECT_FIELD_F32(0x43)
@@ -126,7 +126,7 @@
#define /*0x19C*/ oDrawingDistance OBJECT_FIELD_F32(0x45)
#define /*0x1A0*/ oRoom OBJECT_FIELD_S32(0x46)
// 0x1A4 is unused, possibly related to 0x1A8 in removed macro purposes.
#define /*0x1A8*/ oUnk1A8 OBJECT_FIELD_U32(0x48)
#define /*0x1A8*/ oUnusedBhvParams OBJECT_FIELD_U32(0x48)
// 0x1AC-0x1B2 (0x48-0x4A) are object specific and defined below the common fields.
#define /*0x1B4*/ oWallAngle OBJECT_FIELD_S32(0x4B)
#define /*0x1B8*/ oFloorType OBJECT_FIELD_S16(0x4C, 0)
@@ -165,8 +165,8 @@
#define /*0x110*/ oMarioSteepJumpYaw OBJECT_FIELD_S32(0x22)
#define /*0x110*/ oMarioWalkingPitch OBJECT_FIELD_S32(0x22)
/* 1-Up Hidden */
#define /*0x0F4*/ o1UpHiddenUnkF4 OBJECT_FIELD_S32(0x1B)
/* Hidden 1-Up */
#define /*0x0F4*/ oHidden1UpNumTouchedTriggers OBJECT_FIELD_S32(0x1B)
/* Activated Back and Forth Platform */
#define /*0x0F4*/ oActivatedBackAndForthPlatformMaxOffset OBJECT_FIELD_F32(0x1B)
@@ -278,7 +278,7 @@
#define /*0x0F4*/ oBowserStatus OBJECT_FIELD_S32(0x1B)
#define /*0x0F8*/ oBowserTimer OBJECT_FIELD_S32(0x1C)
#define /*0x0FC*/ oBowserDistToCenter OBJECT_FIELD_F32(0x1D)
#define /*0x106*/ oBowserBitsJustJump OBJECT_FIELD_S16(0x1F, 1)
#define /*0x106*/ oBowserBitSJustJump OBJECT_FIELD_S16(0x1F, 1)
#define /*0x108*/ oBowserRandSplitFloor OBJECT_FIELD_S16(0x20, 0)
#define /*0x10A*/ oBowserHeldAnglePitch OBJECT_FIELD_S16(0x20, 1)
#define /*0x10D*/ oBowserHeldAngleVelYaw OBJECT_FIELD_S16(0x21, 0)
@@ -398,11 +398,11 @@
#define /*0x1AC*/ oCloudFwooshMovementRadius OBJECT_FIELD_S16(0x49, 0)
/* Coin */
#define /*0x0F4*/ oCoinUnkF4 OBJECT_FIELD_S32(0x1B)
#define /*0x0F8*/ oCoinUnkF8 OBJECT_FIELD_S32(0x1C)
#define /*0x110*/ oCoinUnk110 OBJECT_FIELD_F32(0x22)
#define /*0x0F4*/ oCoinCollectedFlags OBJECT_FIELD_S32(0x1B)
#define /*0x0F8*/ oCoinOnGround OBJECT_FIELD_S32(0x1C)
#define /*0x110*/ oCoinBaseVelY OBJECT_FIELD_F32(0x22)
#ifndef VERSION_JP
#define /*0x1B0*/ oCoinUnk1B0 OBJECT_FIELD_S32(0x4A)
#define /*0x1B0*/ oCoinNumBounceSoundPlayed OBJECT_FIELD_S32(0x4A)
#endif
/* Collision Particle */
@@ -569,7 +569,7 @@
#define /*0x0F4*/ oHeaveHoUnkF4 OBJECT_FIELD_F32(0x1B)
/* Hidden Object */
#define /*0x0F4*/ oHiddenObjectUnkF4 OBJECT_FIELD_OBJ(0x1B)
#define /*0x0F4*/ oHiddenObjectPurpleSwitch OBJECT_FIELD_OBJ(0x1B)
/* Hoot */
#define /*0x0F4*/ oHootAvailability OBJECT_FIELD_S32(0x1B)
@@ -724,8 +724,8 @@
#define /*0x0FC*/ oRespawnerBehaviorToRespawn OBJECT_FIELD_CVPTR(0x1D)
/* Openable Grill */
#define /*0x088*/ oOpenableGrillUnk88 OBJECT_FIELD_S32(0x00)
#define /*0x0F4*/ oOpenableGrillUnkF4 OBJECT_FIELD_OBJ(0x1B)
#define /*0x088*/ oOpenableGrillUnk88 OBJECT_FIELD_S32(0x00)
#define /*0x0F4*/ oOpenableGrillPurpleSwitch OBJECT_FIELD_OBJ(0x1B)
/* Intro Cutscene Peach */
#define /*0x108*/ oIntroPeachYawFromFocus OBJECT_FIELD_F32(0x20)
@@ -770,12 +770,12 @@
#define /*0x0F8*/ oPitouneUnkF8 OBJECT_FIELD_F32(0x1C)
#define /*0x0FC*/ oPitouneUnkFC OBJECT_FIELD_F32(0x1D)
/* Falling Rising Bitfs Platform */
#define /*0x0F4*/ oBitfsPlatformTimer OBJECT_FIELD_S32(0x1B)
/* Falling Rising BitFS Platform */
#define /*0x0F4*/ oBitFSPlatformTimer OBJECT_FIELD_S32(0x1B)
/* Falling Bowser Bits Platform */
#define /*0x0F8*/ oBitsPlatformBowser OBJECT_FIELD_OBJ(0x1C)
#define /*0x0FC*/ oBitsPlatformTimer OBJECT_FIELD_S32(0x1D)
/* Falling Bowser BitS Platform */
#define /*0x0F8*/ oBitSPlatformBowser OBJECT_FIELD_OBJ(0x1C)
#define /*0x0FC*/ oBitSPlatformTimer OBJECT_FIELD_S32(0x1D)
/* WF Platform */
#define /*0x10C*/ oPlatformUnk10C OBJECT_FIELD_F32(0x21)
@@ -831,10 +831,10 @@
/* Rolling Log */
#define /*0x0F4*/ oRollingLogUnkF4 OBJECT_FIELD_F32(0x1B)
/* Lll Rotating Hex Flame */
#define /*0x0F4*/ oLllRotatingHexFlameUnkF4 OBJECT_FIELD_F32(0x1B)
#define /*0x0F8*/ oLllRotatingHexFlameUnkF8 OBJECT_FIELD_F32(0x1C)
#define /*0x0FC*/ oLllRotatingHexFlameUnkFC OBJECT_FIELD_F32(0x1D)
/* LLL Rotating Hex Flame */
#define /*0x0F4*/ oLLLRotatingHexFlameUnkF4 OBJECT_FIELD_F32(0x1B)
#define /*0x0F8*/ oLLLRotatingHexFlameUnkF8 OBJECT_FIELD_F32(0x1C)
#define /*0x0FC*/ oLLLRotatingHexFlameUnkFC OBJECT_FIELD_F32(0x1D)
/* Scuttlebug */
#define /*0x0F4*/ oScuttlebugUnkF4 OBJECT_FIELD_S32(0x1B)
@@ -863,10 +863,10 @@
#define /*0x100*/ oSkeeterWaitTime OBJECT_FIELD_S32(0x1E)
#define /*0x1AC*/ oSkeeterUnk1AC OBJECT_FIELD_S16(0x49, 0)
/* Jrb Sliding Box */
#define /*0x0F4*/ oJrbSlidingBoxUnkF4 OBJECT_FIELD_OBJ(0x1B)
#define /*0x0F8*/ oJrbSlidingBoxUnkF8 OBJECT_FIELD_S32(0x1C)
#define /*0x0FC*/ oJrbSlidingBoxUnkFC OBJECT_FIELD_F32(0x1D)
/* JRB Sliding Box */
#define /*0x0F4*/ oJRBSlidingBoxUnkF4 OBJECT_FIELD_OBJ(0x1B)
#define /*0x0F8*/ oJRBSlidingBoxUnkF8 OBJECT_FIELD_S32(0x1C)
#define /*0x0FC*/ oJRBSlidingBoxUnkFC OBJECT_FIELD_F32(0x1D)
/* WF Sliding Brick Platform */
#define /*0x0F4*/ oWFSlidBrickPtfmMovVel OBJECT_FIELD_F32(0x1B)
@@ -952,8 +952,8 @@
#define /*0x0F8*/ oSwoopTargetPitch OBJECT_FIELD_S32(0x1C)
#define /*0x0FC*/ oSwoopTargetYaw OBJECT_FIELD_S32(0x1D)
/* Thwomp */
#define /*0x0F4*/ oThwompRandomTimer OBJECT_FIELD_S32(0x1B)
/* Grindel or Thwomp */
#define /*0x0F4*/ oGrindelThwompRandomTimer OBJECT_FIELD_S32(0x1B)
/* Tilting Platform */
#define /*0x0F4*/ oTiltingPyramidNormalX OBJECT_FIELD_F32(0x1B)
@@ -962,13 +962,13 @@
#define /*0x10C*/ oTiltingPyramidMarioOnPlatform OBJECT_FIELD_S32(0x21)
/* Toad Message */
#define /*0x108*/ oToadMessageDialogId OBJECT_FIELD_U32(0x20)
#define /*0x108*/ oToadMessageDialogID OBJECT_FIELD_U32(0x20)
#define /*0x10C*/ oToadMessageRecentlyTalked OBJECT_FIELD_S32(0x21)
#define /*0x110*/ oToadMessageState OBJECT_FIELD_S32(0x22)
/* Tox Box */
#define /*0x1AC*/ oToxBoxMovementPattern OBJECT_FIELD_VPTR(0x49)
#define /*0x1B0*/ oToxBoxMovementStep OBJECT_FIELD_S32(0x4A)
#define /*0x1AC*/ oToxBoxActionTable OBJECT_FIELD_VPTR(0x49)
#define /*0x1B0*/ oToxBoxActionStep OBJECT_FIELD_S32(0x4A)
/* TTC Rotating Solid */
#define /*0x0F4*/ oTTCRotatingSolidNumTurns OBJECT_FIELD_S32(0x1B)
@@ -1033,7 +1033,7 @@
#define /*0x0F8*/ oTreasureChestUnkF8 OBJECT_FIELD_S32(0x1C)
#define /*0x0FC*/ oTreasureChestUnkFC OBJECT_FIELD_S32(0x1D)
/* Tree Snow Or Leaf */
/* Tree Snow or Leaf */
#define /*0x0F4*/ oTreeSnowOrLeafUnkF4 OBJECT_FIELD_S32(0x1B)
#define /*0x0F8*/ oTreeSnowOrLeafUnkF8 OBJECT_FIELD_S32(0x1C)
#define /*0x0FC*/ oTreeSnowOrLeafUnkFC OBJECT_FIELD_S32(0x1D)
@@ -1146,8 +1146,8 @@
#define /*0x1AC*/ oWigglerUnused OBJECT_FIELD_S16(0x49, 0)
#define /*0x1AE*/ oWigglerTextStatus OBJECT_FIELD_S16(0x49, 1)
/* Lll Wood Piece */
#define /*0x0F4*/ oLllWoodPieceOscillationTimer OBJECT_FIELD_S32(0x1B)
/* LLL Wood Piece */
#define /*0x0F4*/ oLLLWoodPieceOscillationTimer OBJECT_FIELD_S32(0x1B)
/* Wooden Post */
#define /*0x0F4*/ oWoodenPostTotalMarioAngle OBJECT_FIELD_S32(0x1B)
+7
View File
@@ -40,8 +40,15 @@ DECLARE_SEGMENT(engine)
DECLARE_SEGMENT(behavior)
DECLARE_SEGMENT(scripts)
DECLARE_SEGMENT(goddard)
extern u8 _goddardSegmentStart[];
#ifdef USE_EXT_RAM
extern u8 _engineSegmentStart[];
extern u8 _framebuffersSegmentNoloadStart[];
extern u8 _framebuffersSegmentNoloadEnd[];
#endif
DECLARE_LEVEL_SEGMENT(menu)
DECLARE_LEVEL_SEGMENT(intro)
DECLARE_LEVEL_SEGMENT(ending)
+27 -23
View File
@@ -13,30 +13,29 @@
* linker script syntax.
*/
#define SEG_START 0x8005C000
#define SEG_FRAMEBUFFERS_SIZE (2 * SCREEN_WIDTH * SCREEN_HEIGHT * 3)
#define SEG_GODDARD_POOL_OFFSET 0x52000 // Offset from right side of pool
#define SEG_GODDARD (SEG_POOL_END - SEG_GODDARD_POOL_OFFSET)
#ifndef USE_EXT_RAM /* Default: Runs out of memory quickly when importing custom assets. */
#define SEG_POOL_START 0x8005C000
#define SEG_POOL_END SEG_BUFFERS
#define RDRAM_END 0x80400000
#define SEG_GODDARD 0x8016F000
#define SEG_POOL_START SEG_START
#define SEG_POOL_SIZE 0x165000
#define SEG_POOL_END (SEG_POOL_START + SEG_POOL_SIZE)
#define SEG_BUFFERS 0x801C1000
#if defined(VERSION_SH) || ENABLE_RUMBLE
#define SEG_MAIN 0x80249000
#elif defined(VERSION_EU)
#define SEG_MAIN 0x80241800 // TODO: Investigate why it's different?
#else
#define SEG_MAIN 0x80246000
#endif
#define SEG_BUFFERS SEG_POOL_END
#ifdef VERSION_EU
#define SEG_ENGINE 0x8036FF00
#define SEG_ENGINE 0x8036FF00
#else
#define SEG_ENGINE 0x80378800
#define SEG_ENGINE 0x80378800
#endif
#define SEG_FRAMEBUFFERS 0x8038F800
#define SEG_FRAMEBUFFERS (RDRAM_END - SEG_FRAMEBUFFERS_SIZE)
#else /* Use Expansion Pak space for pool. */
@@ -45,14 +44,19 @@
* importing large custom content.
*/
#define SEG_BUFFERS 0x8005C000 // 0x0085000 in size
#define SEG_MAIN 0x800E1000 // 0x0132800 in size
#define SEG_ENGINE 0x80213800 // 0x0017000 in size
#define SEG_FRAMEBUFFERS 0x8022A800 // 0x0070800 in size
#define SEG_POOL_START 0x8029B000 // 0x0165000 in size
#define SEG_POOL_END 0x80800000
#define SEG_POOL_END_4MB 0x80400000 // For the error message screen enhancement.
#define SEG_GODDARD SEG_POOL_START + 0x113000
#ifdef VERSION_CN
#define RDRAM_END 0x807C0000 // iQue has stuff like EEPROM mapped at 807C0000 onwards. TODO: Code this using osMemSize
#else
#define RDRAM_END 0x80800000
#endif
#define SEG_BUFFERS SEG_START
#define SEG_ENGINE ((u32) &_engineSegmentStart)
#define SEG_FRAMEBUFFERS ((u32) &_framebuffersSegmentNoloadStart)
#define SEG_POOL_START ((u32) &_framebuffersSegmentNoloadEnd)
#define SEG_POOL_END RDRAM_END
#define SEG_POOL_END_4MB 0x80400000 // For the error message screen enhancement.
#endif
#endif // SEGMENTS_H
+2 -2
View File
@@ -155,7 +155,7 @@
.byte 0xff
.endm
#ifdef VERSION_SH
#if defined(VERSION_SH) || defined(VERSION_CN)
.macro seq_unreservenotes
.byte 0xf0
@@ -462,7 +462,7 @@
var_long \a
.endm
#ifdef VERSION_SH
#if defined(VERSION_SH) || defined(VERSION_CN)
.macro chan_setnotepriority a
.byte 0xe9
+1 -1
View File
@@ -98,7 +98,7 @@
/**
* 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.
* different priorities), they are given distinguishing suffixes.
* A _2 suffix means the sound is the same despite a different sound ID.
*/
-93
View File
@@ -1,93 +0,0 @@
#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
+85 -103
View File
@@ -1,111 +1,93 @@
#ifndef SPECIAL_PRESETS_H
#define SPECIAL_PRESETS_H
#include "special_preset_names.h"
#include "behavior_data.h"
#include "model_ids.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 Preset types
#define SPTYPE_NO_YROT_OR_PARAMS 0 // object is 8-bytes long, no y-rotation or any behavior params
#define SPTYPE_YROT_NO_PARAMS 1 // object is 10-bytes long, has y-rotation but no params
#define SPTYPE_PARAMS_AND_YROT 2 // object is 12-bytes long, has y-rotation and params
#define SPTYPE_UNKNOWN 3 // object is 14-bytes long, has 3 extra shorts that get converted to floats.
#define SPTYPE_DEF_PARAM_AND_YROT 4 // object is 10-bytes long, has y-rotation and uses the default param
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,
struct SpecialPreset {
/*00*/ u8 preset_id;
/*01*/ u8 type; // Determines whether object is 8, 10, 12 or 14 bytes long.
/*02*/ u8 defParam; // Default parameter, only used when type is SPTYPE_DEF_PARAM_AND_YROT
/*03*/ u8 model;
/*04*/ const BehaviorScript *behavior;
};
// Some Models ID's are missing their names because they are probably unused
static struct SpecialPreset SpecialObjectPresets[] = {
{0x00, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_NONE, NULL},
{0x01, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_YELLOW_COIN, bhvYellowCoin},
{0x02, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_YELLOW_COIN, bhvYellowCoin},
{0x03, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_UNKNOWN_B8, bhvStaticObject},
{0x04, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BOO, bhvCourtyardBooTriplet},
{0x05, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_UNKNOWN_AC, bhvCastleFloorTrap},
{0x06, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_MOVING_OCTAGONAL_MESH_PLATFORM, bhvLllMovingOctagonalMeshPlatform},
{0x07, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_CCM_SNOWMAN_HEAD, bhvSnowBall},
{0x08, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LLL_DRAWBRIDGE_PART, bhvLllDrawbridgeSpawner},
{0x09, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
{0x0A, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_ROTATING_BLOCK_FIRE_BARS, bhvLllRotatingBlockWithFireBars},
{0x0B, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvLllFloatingWoodBridge},
{0x0C, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvLllTumblingBridge},
{0x0D, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_ROTATING_HEXAGONAL_RING , bhvLllRotatingHexagonalRing},
{0x0E, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, bhvLllSinkingRectangularPlatform},
{0x0F, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_SINKING_SQUARE_PLATFORMS, bhvLllSinkingSquarePlatforms},
{0x10, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_TILTING_SQUARE_PLATFORM, bhvLllTiltingInvertedPyramid},
{0x11, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvLllBowserPuzzle},
{0x12, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvMrI},
{0x13, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BULLY, bhvSmallBully},
{0x14, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BULLY_BOSS, bhvBigBully},
{0x15, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
{0x16, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
{0x17, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
{0x18, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
{0x19, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
{0x1A, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_YELLOW_COIN, bhvMovingBlueCoin},
{0x1B, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_TREASURE_CHEST_BASE, bhvBetaChestBottom},
{0x1C, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WATER_RING, bhvJetStreamRingSpawner},
{0x1D, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WATER_MINE, bhvBowserBomb},
{0x1E, SPTYPE_UNKNOWN , 0x00, MODEL_NONE, bhvStaticObject},
{0x1F, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
{0x20, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BUTTERFLY, bhvButterfly},
{0x21, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BOWSER, bhvBowser},
{0x22, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WF_ROTATING_WOODEN_PLATFORM, bhvWfRotatingWoodenPlatform},
{0x23, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_WF_SMALL_BOMP, bhvSmallBomp},
{0x24, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_WF_SLIDING_PLATFORM, bhvWfSlidingPlatform},
{0x25, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvTowerPlatformGroup},
{0x26, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvRotatingCounterClockwise},
{0x27, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WF_TUMBLING_BRIDGE, bhvWfTumblingBridge},
{0x28, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WF_LARGE_BOMP, bhvLargeBomp},
{0x65, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_03, bhvStaticObject},
{0x66, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_04, bhvStaticObject},
{0x67, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_05, bhvStaticObject},
{0x68, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_06, bhvStaticObject},
{0x69, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_07, bhvStaticObject},
{0x6A, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_08, bhvStaticObject},
{0x6B, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_09, bhvStaticObject},
{0x6C, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0A, bhvStaticObject},
{0x6D, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0B, bhvStaticObject},
{0x6E, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0C, bhvStaticObject},
{0x6F, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0D, bhvStaticObject},
{0x70, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0E, bhvStaticObject},
{0x71, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0F, bhvStaticObject},
{0x72, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_10, bhvStaticObject},
{0x73, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_11, bhvStaticObject},
{0x74, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_12, bhvStaticObject},
{0x75, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_13, bhvStaticObject},
{0x76, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_14, bhvStaticObject},
{0x77, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_15, bhvStaticObject},
{0x78, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_16, bhvStaticObject},
{0x79, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BOB_BUBBLY_TREE, bhvTree},
{0x7A, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_COURTYARD_SPIKY_TREE, bhvTree},
{0x7B, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_CCM_SNOW_TREE, bhvTree},
{0x7C, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_UNKNOWN_TREE_1A, bhvTree},
{0x7D, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_SSL_PALM_TREE, bhvTree},
{0x89, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_CASTLE_CASTLE_DOOR_UNUSED, bhvDoor},
{0x7E, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_CASTLE_WOODEN_DOOR_UNUSED, bhvDoor},
{0x7F, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_UNKNOWN_DOOR_1E, bhvDoor},
{0x80, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_HMC_METAL_DOOR, bhvDoor},
{0x81, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_HMC_HAZY_MAZE_DOOR, bhvDoor},
{0x82, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_UNKNOWN_DOOR_21, bhvDoor},
{0x8A, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_DOOR_0_STARS, bhvDoor},
{0x8B, SPTYPE_DEF_PARAM_AND_YROT, 0x01, MODEL_CASTLE_DOOR_1_STAR, bhvDoor},
{0x8C, SPTYPE_DEF_PARAM_AND_YROT, 0x03, MODEL_CASTLE_DOOR_3_STARS, bhvDoor},
{0x8D, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_KEY_DOOR, bhvDoor},
{0x88, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_CASTLE_CASTLE_DOOR, bhvDoorWarp},
{0x83, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_CASTLE_WOODEN_DOOR, bhvDoorWarp},
{0x84, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_UNKNOWN_DOOR_28, bhvDoorWarp},
{0x85, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_CASTLE_METAL_DOOR, bhvDoorWarp},
{0x86, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_UNKNOWN_DOOR_2A, bhvDoorWarp},
{0x87, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_UNKNOWN_DOOR_2B, bhvDoorWarp},
{0xFF, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, NULL}
special_null_end = 0xFF
};
#endif // SPECIAL_PRESETS_H
+104
View File
@@ -0,0 +1,104 @@
#include "special_presets.h"
// Special Preset types
#define SPTYPE_NO_YROT_OR_PARAMS 0 // object is 8-bytes long, no y-rotation or any behavior params
#define SPTYPE_YROT_NO_PARAMS 1 // object is 10-bytes long, has y-rotation but no params
#define SPTYPE_PARAMS_AND_YROT 2 // object is 12-bytes long, has y-rotation and params
#define SPTYPE_UNKNOWN 3 // object is 14-bytes long, has 3 extra shorts that get converted to floats.
#define SPTYPE_DEF_PARAM_AND_YROT 4 // object is 10-bytes long, has y-rotation and uses the default param
struct SpecialPreset {
/* 0x00 */ u8 presetID;
/* 0x01 */ u8 type; // Determines whether object is 8, 10, 12 or 14 bytes long.
/* 0x02 */ u8 defParam; // Default parameter, only used when type is SPTYPE_DEF_PARAM_AND_YROT
/* 0x03 */ u8 model;
/* 0x04 */ const BehaviorScript *behavior;
};
// Some Models ID's are missing their names because they are probably unused
static struct SpecialPreset sSpecialObjectPresets[] = {
{ special_null_start, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_NONE, NULL },
{ special_yellow_coin, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_YELLOW_COIN, bhvYellowCoin },
{ special_yellow_coin_2, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_YELLOW_COIN, bhvYellowCoin },
{ special_unknown_3, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_UNKNOWN_B8, bhvStaticObject },
{ special_boo, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BOO, bhvCourtyardBooTriplet },
{ special_unknown_5, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_UNKNOWN_AC, bhvCastleFloorTrap },
{ special_lll_moving_octagonal_mesh_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_MOVING_OCTAGONAL_MESH_PLATFORM, bhvLLLMovingOctagonalMeshPlatform },
{ special_snow_ball, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_CCM_SNOWMAN_HEAD, bhvSnowBall },
{ special_lll_drawbridge_spawner, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LLL_DRAWBRIDGE_PART, bhvLLLDrawbridgeSpawner },
{ special_empty_9, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
{ special_lll_rotating_block_with_fire_bars, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_ROTATING_BLOCK_FIRE_BARS, bhvLLLRotatingBlockWithFireBars },
{ special_lll_floating_wood_bridge, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvLLLFloatingWoodBridge },
{ special_tumbling_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvLLLTumblingBridge },
{ special_lll_rotating_hexagonal_ring, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_ROTATING_HEXAGONAL_RING , bhvLLLRotatingHexagonalRing },
{ special_lll_sinking_rectangular_platform, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, bhvLLLSinkingRectangularPlatform },
{ special_lll_sinking_square_platforms, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_SINKING_SQUARE_PLATFORMS, bhvLLLSinkingSquarePlatforms },
{ special_lll_tilting_square_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_TILTING_SQUARE_PLATFORM, bhvLLLTiltingInvertedPyramid },
{ special_lll_bowser_puzzle, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvLLLBowserPuzzle },
{ special_mr_i, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvMrI },
{ special_small_bully, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BULLY, bhvSmallBully },
{ special_big_bully, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BULLY_BOSS, bhvBigBully },
{ special_empty_21, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
{ special_empty_22, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
{ special_empty_23, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
{ special_empty_24, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
{ special_empty_25, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
{ special_moving_blue_coin, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_YELLOW_COIN, bhvMovingBlueCoin },
{ special_jrb_chest, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_TREASURE_CHEST_BASE, bhvBetaChestBottom },
{ special_water_ring, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WATER_RING, bhvJetStreamRingSpawner },
{ special_mine, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WATER_MINE, bhvBowserBomb },
{ special_empty_30, SPTYPE_UNKNOWN, 0x00, MODEL_NONE, bhvStaticObject },
{ special_empty_31, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
{ special_butterfly, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BUTTERFLY, bhvButterfly },
{ special_bowser, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BOWSER, bhvBowser },
{ special_wf_rotating_wooden_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WF_ROTATING_WOODEN_PLATFORM, bhvWFRotatingWoodenPlatform },
{ special_small_bomp, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_WF_SMALL_BOMP, bhvSmallBomp },
{ special_wf_sliding_platform, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_WF_SLIDING_PLATFORM, bhvWFSlidingPlatform },
{ special_tower_platform_group, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvTowerPlatformGroup },
{ special_rotating_counter_clockwise, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvRotatingCounterClockwise },
{ special_wf_tumbling_bridge, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WF_TUMBLING_BRIDGE, bhvTumblingBridge },
{ special_large_bomp, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WF_LARGE_BOMP, bhvLargeBomp },
{ special_level_geo_03, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_03, bhvStaticObject },
{ special_level_geo_04, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_04, bhvStaticObject },
{ special_level_geo_05, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_05, bhvStaticObject },
{ special_level_geo_06, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_06, bhvStaticObject },
{ special_level_geo_07, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_07, bhvStaticObject },
{ special_level_geo_08, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_08, bhvStaticObject },
{ special_level_geo_09, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_09, bhvStaticObject },
{ special_level_geo_0A, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0A, bhvStaticObject },
{ special_level_geo_0B, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0B, bhvStaticObject },
{ special_level_geo_0C, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0C, bhvStaticObject },
{ special_level_geo_0D, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0D, bhvStaticObject },
{ special_level_geo_0E, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0E, bhvStaticObject },
{ special_level_geo_0F, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0F, bhvStaticObject },
{ special_level_geo_10, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_10, bhvStaticObject },
{ special_level_geo_11, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_11, bhvStaticObject },
{ special_level_geo_12, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_12, bhvStaticObject },
{ special_level_geo_13, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_13, bhvStaticObject },
{ special_level_geo_14, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_14, bhvStaticObject },
{ special_level_geo_15, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_15, bhvStaticObject },
{ special_level_geo_16, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_16, bhvStaticObject },
{ special_bubble_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BOB_BUBBLY_TREE, bhvTree },
{ special_spiky_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_COURTYARD_SPIKY_TREE, bhvTree },
{ special_snow_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_CCM_SNOW_TREE, bhvTree },
{ special_unknown_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_UNKNOWN_TREE_1A, bhvTree },
{ special_palm_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_SSL_PALM_TREE, bhvTree },
{ special_castle_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_CASTLE_CASTLE_DOOR_UNUSED, bhvDoor },
{ special_wooden_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_CASTLE_WOODEN_DOOR_UNUSED, bhvDoor },
{ special_unknown_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_UNKNOWN_DOOR_1E, bhvDoor },
{ special_metal_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_HMC_METAL_DOOR, bhvDoor },
{ special_hmc_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_HMC_HAZY_MAZE_DOOR, bhvDoor },
{ special_unknown2_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_UNKNOWN_DOOR_21, bhvDoor },
{ special_0stars_door, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_DOOR_0_STARS, bhvDoor },
{ special_1star_door, SPTYPE_DEF_PARAM_AND_YROT, 0x01, MODEL_CASTLE_DOOR_1_STAR, bhvDoor },
{ special_3star_door, SPTYPE_DEF_PARAM_AND_YROT, 0x03, MODEL_CASTLE_DOOR_3_STARS, bhvDoor },
{ special_key_door, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_KEY_DOOR, bhvDoor },
{ special_castle_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_CASTLE_CASTLE_DOOR, bhvDoorWarp },
{ special_wooden_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_CASTLE_WOODEN_DOOR, bhvDoorWarp },
{ special_unknown1_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_UNKNOWN_DOOR_28, bhvDoorWarp },
{ special_metal_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_CASTLE_METAL_DOOR, bhvDoorWarp },
{ special_unknown2_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_UNKNOWN_DOOR_2A, bhvDoorWarp },
{ special_unknown3_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_UNKNOWN_DOOR_2B, bhvDoorWarp },
{ special_null_end, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, NULL },
};
+3 -3
View File
@@ -102,9 +102,9 @@
#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_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)
+3 -1
View File
@@ -2,17 +2,19 @@
#define TEXT_MENU_STRINGS_H
// These strings use a different table defined in menu_hud_lut
// Unlike text_strings.h.in, the charmap is different and
// Unlike text_strings.h.in, the charmap is different and
// uses char values from charmap_menu.txt
/**
* File Select JP HUD Text
*/
#if defined(VERSION_JP) || defined(VERSION_SH)
#define TEXT_JPHUD_MARIO _("マリオ")
#define TEXT_JPHUD_SELECT_FILE _("ファイルセレクト")
#define TEXT_JPHUD_CHECK_FILE _("どのスコアをみる?")
#define TEXT_JPHUD_COPY_FILE _("ファイルコピーする")
#define TEXT_JPHUD_ERASE_FILE _("ファイルけす")
#define TEXT_JPHUD_SOUND_SELECT _("サウンドセレクト")
#endif
#endif // TEXT_MENU_STRINGS_H
+115 -2
View File
@@ -6,30 +6,48 @@
/**
* Global Symbols
*/
#define TEXT_ZERO _("0")
#define TEXT_EMPTY_STRING _("")
#define TEXT_ZERO _%("0")
#define TEXT_COIN _("$")
#define TEXT_STAR _("★")
#define TEXT_COIN_X _("$×")
#define TEXT_STAR_X _("★×")
#define TEXT_VARIABLE_X _("×")
#ifdef VERSION_CN
#define TEXT_STAR_DIFF _("★ ")
#define TEXT_UNFILLED_STAR _("☆ ")
#else
#define TEXT_STAR_DIFF TEXT_STAR
#define TEXT_UNFILLED_STAR _("☆")
#endif
/**
* Global Text
*/
// File Select
#define TEXT_NEW _("NEW") // New File Text
#define TEXT_4DASHES _("----") // Used in Score File Menu
#ifdef VERSION_CN
#define TEXT_NEW 0x7E, 0x7F, 0x82, 0x83, 0xFE, 0x80, 0x81, 0x84, 0x85, 0xFF
#else
#define TEXT_NEW _("NEW") // New File Text
#endif
// Ingame Menu
#ifdef VERSION_CN
#define TEXT_PAUSE 0x86, 0x87, 0x8A, 0x8B, 0x8E, 0x8F, 0xFE, 0x88, 0x89, 0x8C, 0x8D, 0x90, 0x91, 0xFF
#define TEXT_HUD_CONGRATULATIONS 0x3A, 0x3B, 0x3E, 0x3F, 0x42, 0x43, 0xFE, 0x3C, 0x3D, 0x40, 0x41, 0x44, 0x45, 0xFF
#else
#define TEXT_PAUSE _("PAUSE") // Pause text, Castle Courses
#define TEXT_HUD_CONGRATULATIONS _("CONGRATULATIONS") // Course Complete Text, Bowser Courses
#endif
#if defined(VERSION_JP) || defined(VERSION_SH)
/**
* File Select Text
*/
// Main Screens
// JPHUD menu strings are defined in "text_menu_strings.h.in"
#define TEXT_MARIO TEXT_JPHUD_MARIO // View Score Menu
@@ -129,6 +147,7 @@
/**
* File Select Text
*/
// Main Screens
#define TEXT_MARIO _("MARIO") // View Score Menu
#define TEXT_SELECT_FILE _("SELECT FILE")
@@ -136,6 +155,7 @@
#define TEXT_COPY_FILE _("COPY FILE")
#define TEXT_ERASE_FILE _("ERASE FILE")
#define TEXT_SOUND_SELECT _("SOUND SELECT")
#define TEXT_FILE_MARIO_A _("MARIO A")
#define TEXT_FILE_MARIO_B _("MARIO B")
#define TEXT_FILE_MARIO_C _("MARIO C")
@@ -472,4 +492,97 @@
#define TEXT_MENU_STARS_DE _(" GEHEIME STERNE")
#endif // VERSION_EU
#ifdef VERSION_CN
/**
* File Select Text
*/
// Main Screens
// JPHUD menu strings are defined in "text_menu_strings.h.in"
#define TEXT_MARIO 0x76, 0x77, 0x7A, 0x7B, 0xFE, 0x78, 0x79, 0x7C, 0x7D, 0xFF
#define TEXT_SELECT_FILE 0x96, 0x97, 0x9A, 0x9B, 0x9E, 0x9F, 0xFE, 0x98, 0x99, 0x9C, 0x9D, 0xA0, 0xA1, 0xFF
#define TEXT_CHECK_FILE 0x46, 0x47, 0x4A, 0x4B, 0x4E, 0x4F, 0xFE, 0x48, 0x49, 0x4C, 0x4D, 0x50, 0x51, 0xFF
#define TEXT_COPY_FILE 0x52, 0x53, 0x56, 0x57, 0x5A, 0x5B, 0xFE, 0x54, 0x55, 0x58, 0x59, 0x5C, 0x5D, 0xFF
#define TEXT_ERASE_FILE 0x5E, 0x5F, 0x62, 0x63, 0x66, 0x67, 0xFE, 0x60, 0x61, 0x64, 0x65, 0x68, 0x69, 0xFF
#define TEXT_SOUND_SELECT 0xA2, 0xA3, 0xA6, 0xA7, 0xAA, 0xAB, 0xFE, 0xA4, 0xA5, 0xA8, 0xA9, 0xAC, 0xAD, 0xFF
#define TEXT_FILE_MARIO_A _("马力欧 A")
#define TEXT_FILE_MARIO_B _("马力欧 B")
#define TEXT_FILE_MARIO_C _("马力欧 C")
#define TEXT_FILE_MARIO_D _("马力欧 D")
// Menu Options
#define TEXT_SCORE _("积分")
#define TEXT_COPY _("复制")
#define TEXT_ERASE _("删除")
// Sound Options
#define TEXT_STEREO _("立体声")
#define TEXT_MONO _("单声道")
#define TEXT_HEADSET _("耳机")
// Misc Menu Text
#define TEXT_SAVED_DATA_EXISTS _("有保存的数据")
#define TEXT_NO_SAVED_DATA_EXISTS _("没有保存的数据")
// Inside a Menu
#define TEXT_RETURN _("返回")
#define TEXT_CHECK_SCORE _("查看积分")
#define TEXT_COPY_FILE_BUTTON _("复制文件")
#define TEXT_ERASE_FILE_BUTTON _("删除文件")
// Score Menu
#define TEXT_HI_SCORE _("最高积分")
#define TEXT_MY_SCORE _("我的积分")
#define TEXT_SCORE_MARIO_A _("☺A")
#define TEXT_SCORE_MARIO_B _("☺B")
#define TEXT_SCORE_MARIO_C _("☺C")
#define TEXT_SCORE_MARIO_D _("☺D")
// Copy Menu
#define TEXT_COPY_IT_TO_WHERE _("复制到何处")
#define TEXT_COPYING_COMPLETED _("复制完毕")
#define TEXT_NO_FILE_TO_COPY_FROM _("没有空文件")
// Erase Menu
#define TEXT_SURE _("确定吗?")
#define TEXT_YES _("是")
#define TEXT_NO _("否")
#define TEXT_FILE_MARIO_A_JUST_ERASED _("文件已删除")
/**
* Menus Text (Pause, Course Completed)
*/
// Main Courses
#define TEXT_COURSE _("关卡")
#define TEXT_MYSCORE TEXT_MY_SCORE
#define TEXT_CONTINUE _("继续")
#define TEXT_EXIT_COURSE _("退出")
#define TEXT_CAMERA_ANGLE_R _("使用[R]键设定视角")
// Camera Options
#define TEXT_LAKITU_MARIO TEXT_EMPTY_STRING
#define TEXT_LAKITU_STOP TEXT_EMPTY_STRING
#define TEXT_NORMAL_UPCLOSE _("特写镜头")
#define TEXT_NORMAL_FIXED _("固定镜头")
// Course Completed Misc Text
#define TEXT_CATCH _("接住")
#define TEXT_CLEAR _("清除")
#define TEXT_HUD_HI_SCORE 0x6A, 0x6B, 0x6E, 0x6F, 0x72, 0x73, 0xFE, 0x6C, 0x6D, 0x70, 0x71, 0x74, 0x75, 0xFF
// Save Options
#define TEXT_SAVE_AND_CONTINUE _("保存并继续")
#define TEXT_SAVE_AND_QUIT _("保存并退出")
#define TEXT_CONTINUE_WITHOUT_SAVING _("不必保存")
// File Score Menu Icons
#define TEXT_ARROW_L _("◀ L")
#define TEXT_R_ARROW _("R ▶")
#endif // VERSION_CN
#endif // TEXT_STRINGS_H
+14 -11
View File
@@ -48,11 +48,14 @@ typedef uintptr_t GeoLayout;
typedef uintptr_t LevelScript;
typedef s16 Movtex;
typedef s16 MacroObject;
typedef s16 Collision;
typedef s16 Collision; // Collision data is limited to -32768 to 32767. Change this if you want to increase it.
typedef s16 Trajectory;
typedef s16 PaintingData;
typedef uintptr_t BehaviorScript;
typedef u8 Texture;
typedef s8 RoomData; // Rooms are limited to -128 to 127. Change the type if you wish to have more rooms.
typedef Collision TerrainData;
typedef TerrainData Vec3Terrain[3];
enum SpTaskState {
SPTASK_STATE_NOT_STARTED,
@@ -75,7 +78,7 @@ struct VblankHandler {
};
#define ANIM_FLAG_NOLOOP (1 << 0) // 0x01
#define ANIM_FLAG_FORWARD (1 << 1) // 0x02
#define ANIM_FLAG_BACKWARD (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
@@ -216,15 +219,15 @@ struct Waypoint {
};
struct Surface {
/*0x00*/ s16 type;
/*0x02*/ s16 force;
/*0x00*/ TerrainData type;
/*0x02*/ TerrainData force;
/*0x04*/ s8 flags;
/*0x05*/ s8 room;
/*0x06*/ s16 lowerY;
/*0x08*/ s16 upperY;
/*0x0A*/ Vec3s vertex1;
/*0x10*/ Vec3s vertex2;
/*0x16*/ Vec3s vertex3;
/*0x05*/ RoomData room;
/*0x06*/ TerrainData lowerY;
/*0x08*/ TerrainData upperY;
/*0x0A*/ Vec3Terrain vertex1;
/*0x10*/ Vec3Terrain vertex2;
/*0x16*/ Vec3Terrain vertex3;
/*0x1C*/ struct {
f32 x;
f32 y;
@@ -309,7 +312,7 @@ struct MarioState {
/*0xB8*/ s16 prevNumStarsForDialog;
/*0xBC*/ f32 peakHeight;
/*0xC0*/ f32 quicksandDepth;
/*0xC4*/ f32 unkC4;
/*0xC4*/ f32 gettingBlownGravity;
};
#endif // TYPES_H
+2
View File
@@ -14,6 +14,7 @@
#include <PR/os_thread.h>
#include <PR/os_time.h>
#include <PR/os_message.h>
#include <PR/os_pfs.h>
#include <PR/os_cont.h>
#include <PR/os_tlb.h>
#include <PR/sptask.h>
@@ -27,6 +28,7 @@
#include <PR/os_libc.h>
#include <PR/gu.h>
#include <PR/os_ai.h>
#include <PR/os_motor.h>
#include <PR/libaudio.h>
#include <PR/libultra.h>