refresh 4

This commit is contained in:
n64
2019-12-01 21:52:53 -05:00
parent a7c423cb43
commit 04732af90b
729 changed files with 21400 additions and 37110 deletions

View File

@@ -217,7 +217,7 @@ typedef struct {
typedef union {
Awords words;
#if !defined(__x86_64__) && !defined(__i386__)
#if IS_BIG_ENDIAN && !IS_64_BIT
Aadpcm adpcm;
Apolef polef;
Aclearbuff clearbuff;

View File

@@ -297,19 +297,19 @@
* G_MTX: parameter flags
*/
#ifdef F3DEX_GBI_2
# define G_MTX_MODELVIEW 0x00 /* matrix types */
# define G_MTX_PROJECTION 0x04
# define G_MTX_MUL 0x00 /* concat or load */
# define G_MTX_LOAD 0x02
# define G_MTX_NOPUSH 0x00 /* push or not */
# define G_MTX_PUSH 0x01
# define G_MTX_MODELVIEW 0x00 /* matrix types */
# define G_MTX_PROJECTION 0x04
# define G_MTX_MUL 0x00 /* concat or load */
# define G_MTX_LOAD 0x02
# define G_MTX_NOPUSH 0x00 /* push or not */
# define G_MTX_PUSH 0x01
#else /* F3DEX_GBI_2 */
# define G_MTX_MODELVIEW 0x00 /* matrix types */
# define G_MTX_PROJECTION 0x01
# define G_MTX_MUL 0x00 /* concat or load */
# define G_MTX_LOAD 0x02
# define G_MTX_NOPUSH 0x00 /* push or not */
# define G_MTX_PUSH 0x04
# define G_MTX_MODELVIEW 0x00 /* matrix types */
# define G_MTX_PROJECTION 0x01
# define G_MTX_MUL 0x00 /* concat or load */
# define G_MTX_LOAD 0x02
# define G_MTX_NOPUSH 0x00 /* push or not */
# define G_MTX_PUSH 0x04
#endif /* F3DEX_GBI_2 */
/*
@@ -1719,7 +1719,7 @@ typedef struct {
*/
typedef union {
Gwords words;
#if !defined(F3D_OLD) && !defined(__x86_64__) && !defined(__i386__)
#if !defined(F3D_OLD) && IS_BIG_ENDIAN && !IS_64_BIT
Gdma dma;
Gtri tri;
Gline3D line;
@@ -1738,7 +1738,7 @@ typedef union {
Gsettilesize settilesize;
Gloadtlut loadtlut;
#endif
long long int force_structure_alignment;
long long int force_structure_alignment;
} Gfx;
/*

View File

@@ -1,6 +1,8 @@
#ifndef _MBI_H_
#define _MBI_H_
#include "platform_info.h"
/**************************************************************************
* *
* Copyright (C) 1994, Silicon Graphics, Inc. *

View File

@@ -29,18 +29,14 @@ typedef volatile s64 vs64;
typedef float f32;
typedef double f64;
#ifdef __x86_64__
typedef u64 size_t;
typedef s64 ssize_t;
typedef u64 uintptr_t;
typedef s64 intptr_t;
typedef s64 ptrdiff_t;
#else
#ifdef TARGET_N64
typedef u32 size_t;
typedef s32 ssize_t;
typedef u32 uintptr_t;
typedef s32 intptr_t;
typedef s32 ptrdiff_t;
#else
#include <stddef.h>
#endif
#endif

View File

@@ -1,5 +1,5 @@
#ifndef _AUDIODEFINES_H
#define _AUDIODEFINES_H
#ifndef AUDIO_DEFINES_H
#define AUDIO_DEFINES_H
// Sound Magic Definition:
// First Byte (Upper Nibble): Sound Bank (not the same as audio bank!)
@@ -262,19 +262,19 @@
/* not verified */ #define SOUND_GENERAL_UNKNOWN3_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x37, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN3 SOUND_ARG_LOAD(3, 0, 0x37, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN3_2 SOUND_ARG_LOAD(3, 8, 0x37, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_SWITCH1 SOUND_ARG_LOAD(3, 0, 0x38, 0x00, 8)
#define SOUND_GENERAL_PENDULUM_SWING SOUND_ARG_LOAD(3, 0, 0x38, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_CHAIN_CHOMP1 SOUND_ARG_LOAD(3, 0, 0x39, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_CHAIN_CHOMP2 SOUND_ARG_LOAD(3, 0, 0x3A, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_SWITCH2 SOUND_ARG_LOAD(3, 0, 0x3B, 0x00, 8)
#define SOUND_GENERAL_DOOR_TURN_KEY SOUND_ARG_LOAD(3, 0, 0x3B, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_MOVING_IN_SAND SOUND_ARG_LOAD(3, 0, 0x3C, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN4_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x3D, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN4 SOUND_ARG_LOAD(3, 0, 0x3D, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_SWITCH3 SOUND_ARG_LOAD(3, 0, 0x3E, 0x00, 8)
#define SOUND_GENERAL_MOVING_PLATFORM_SWITCH SOUND_ARG_LOAD(3, 0, 0x3E, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_CAGE_OPEN SOUND_ARG_LOAD(3, 0, 0x3F, 0xA0, 8)
/* not verified */ #define SOUND_GENERAL_QUIET_POUND1_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x40, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_QUIET_POUND1 SOUND_ARG_LOAD(3, 0, 0x40, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_BREAK_BOX SOUND_ARG_LOAD(3, 0, 0x41, 0xC0, 8)
/* not verified */ #define SOUND_GENERAL_SWITCH4 SOUND_ARG_LOAD(3, 0, 0x42, 0x00, 8)
#define SOUND_GENERAL_DOOR_INSERT_KEY SOUND_ARG_LOAD(3, 0, 0x42, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_QUIET_POUND2 SOUND_ARG_LOAD(3, 0, 0x43, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_BIG_POUND SOUND_ARG_LOAD(3, 0, 0x44, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNK45 SOUND_ARG_LOAD(3, 0, 0x45, 0x00, 8)
@@ -556,4 +556,4 @@
#define SOUND_OBJ2_BOSS_DIALOG_GRUNT SOUND_ARG_LOAD(9, 0, 0x69, 0x40, 8)
#define SOUND_OBJ2_MRI_SPINNING SOUND_ARG_LOAD(9, 0, 0x6B, 0x00, 8)
#endif /* _AUDIODEFINES_H */
#endif /* AUDIO_DEFINES_H */

View File

@@ -102,7 +102,7 @@ extern const BehaviorScript bhvUkikiCage[];
extern const BehaviorScript bhvBitfsSinkingPlatforms[];
extern const BehaviorScript bhvBitfsSinkingCagePlatform[];
extern const BehaviorScript bhvDddMovingPole[];
extern const BehaviorScript bhvBitfsTiltingSquarePlatform[];
extern const BehaviorScript bhvBitfsTiltingInvertedPyramid[];
extern const BehaviorScript bhvSquishablePlatform[];
extern const BehaviorScript bhvCutOutObject[];
extern const BehaviorScript bhvBetaMovingFlamesSpawn[];
@@ -194,7 +194,7 @@ extern const BehaviorScript bhvVolcanoFlames[];
extern const BehaviorScript bhvLllRotatingHexagonalRing[];
extern const BehaviorScript bhvLllSinkingRectangularPlatform[];
extern const BehaviorScript bhvLllSinkingSquarePlatforms[];
extern const BehaviorScript bhvLllTiltingSquarePlatform[];
extern const BehaviorScript bhvLllTiltingInvertedPyramid[];
extern const BehaviorScript bhvUnused1F30[];
extern const BehaviorScript bhvKoopaShell[];
extern const BehaviorScript bhvKoopaShellFlame[];

View File

@@ -8,16 +8,6 @@
*/
// Bug Fixes
// --| Categories
/// Turn on bug fixes for really bad, C standard breaking code. This is
/// enabled automatically when building with non-IDO compilers, or if
/// NON_MATCHING is set.
#if !defined(__sgi) || defined(NON_MATCHING)
#define BUGFIXES_CRITICAL 1
#else
#define BUGFIXES_CRITICAL 0
#endif
// --| US 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)
@@ -33,13 +23,6 @@
/// 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)
// --| Goddard / Mario Head Bug Fixes
/// Goddard left out important and necessary return statements; this puts them back in
#define BUGFIX_GODDARD_MISSING_RETURN (0 || BUGFIXES_CRITICAL)
/// It seems that Goddard only declared, not prototyped some functions. This lead to
/// incorrect promotion of floats to doubles.
#define BUGFIX_GODDARD_BAD_DECLARATIONS (0 || BUGFIXES_CRITICAL)
// Screen Size Defines
#define SCREEN_WIDTH 320
#define SCREEN_HEIGHT 240

33
include/course_table.h Normal file
View File

@@ -0,0 +1,33 @@
#ifndef _COURSE_TABLE_H
#define _COURSE_TABLE_H
// Start of the 3 cap courses in a row.
#define COURSE_CAP_COURSES COURSE_COTMC
#define DEFINE_COURSE(courseenum, _1, _2, _3, _4) courseenum,
#define DEFINE_COURSES_END() \
COURSE_BONUS_STAGES, \
COURSE_STAGES_MAX = COURSE_BONUS_STAGES - 1, \
COURSE_STAGES_COUNT = COURSE_STAGES_MAX,
#define DEFINE_BONUS_COURSE(courseenum, _1, _2, _3, _4) courseenum,
enum CourseNum
{
COURSE_NONE, // (0) Overworld (Castle Grounds, etc)
#include "levels/course_defines.h"
COURSE_END, // To mark end + 1 for marking max and count.
// Todo: clean this up. This is still bad. Which
// one is clearer? Need to get rid of one of these.
COURSE_MAX = COURSE_END - 1,
COURSE_COUNT = COURSE_MAX,
COURSE_MIN = COURSE_NONE + 1
};
#undef DEFINE_COURSE
#undef DEFINE_COURSES_END
#undef DEFINE_BONUS_COURSE
#define COURSE_IS_MAIN_COURSE(cmd) (cmd >= COURSE_MIN && cmd <= COURSE_STAGES_MAX)
#endif // _COURSE_TABLE_H

178
include/dialog_ids.h Normal file
View File

@@ -0,0 +1,178 @@
#ifndef DIALOG_IDS
#define DIALOG_IDS
enum DialogId {
DIALOG_000,
DIALOG_001,
DIALOG_002,
DIALOG_003,
DIALOG_004,
DIALOG_005,
DIALOG_006,
DIALOG_007,
DIALOG_008,
DIALOG_009,
DIALOG_010,
DIALOG_011,
DIALOG_012,
DIALOG_013,
DIALOG_014,
DIALOG_015,
DIALOG_016,
DIALOG_017,
DIALOG_018,
DIALOG_019,
DIALOG_020,
DIALOG_021,
DIALOG_022,
DIALOG_023,
DIALOG_024,
DIALOG_025,
DIALOG_026,
DIALOG_027,
DIALOG_028,
DIALOG_029,
DIALOG_030,
DIALOG_031,
DIALOG_032,
DIALOG_033,
DIALOG_034,
DIALOG_035,
DIALOG_036,
DIALOG_037,
DIALOG_038,
DIALOG_039,
DIALOG_040,
DIALOG_041,
DIALOG_042,
DIALOG_043,
DIALOG_044,
DIALOG_045,
DIALOG_046,
DIALOG_047,
DIALOG_048,
DIALOG_049,
DIALOG_050,
DIALOG_051,
DIALOG_052,
DIALOG_053,
DIALOG_054,
DIALOG_055,
DIALOG_056,
DIALOG_057,
DIALOG_058,
DIALOG_059,
DIALOG_060,
DIALOG_061,
DIALOG_062,
DIALOG_063,
DIALOG_064,
DIALOG_065,
DIALOG_066,
DIALOG_067,
DIALOG_068,
DIALOG_069,
DIALOG_070,
DIALOG_071,
DIALOG_072,
DIALOG_073,
DIALOG_074,
DIALOG_075,
DIALOG_076,
DIALOG_077,
DIALOG_078,
DIALOG_079,
DIALOG_080,
DIALOG_081,
DIALOG_082,
DIALOG_083,
DIALOG_084,
DIALOG_085,
DIALOG_086,
DIALOG_087,
DIALOG_088,
DIALOG_089,
DIALOG_090,
DIALOG_091,
DIALOG_092,
DIALOG_093,
DIALOG_094,
DIALOG_095,
DIALOG_096,
DIALOG_097,
DIALOG_098,
DIALOG_099,
DIALOG_100,
DIALOG_101,
DIALOG_102,
DIALOG_103,
DIALOG_104,
DIALOG_105,
DIALOG_106,
DIALOG_107,
DIALOG_108,
DIALOG_109,
DIALOG_110,
DIALOG_111,
DIALOG_112,
DIALOG_113,
DIALOG_114,
DIALOG_115,
DIALOG_116,
DIALOG_117,
DIALOG_118,
DIALOG_119,
DIALOG_120,
DIALOG_121,
DIALOG_122,
DIALOG_123,
DIALOG_124,
DIALOG_125,
DIALOG_126,
DIALOG_127,
DIALOG_128,
DIALOG_129,
DIALOG_130,
DIALOG_131,
DIALOG_132,
DIALOG_133,
DIALOG_134,
DIALOG_135,
DIALOG_136,
DIALOG_137,
DIALOG_138,
DIALOG_139,
DIALOG_140,
DIALOG_141,
DIALOG_142,
DIALOG_143,
DIALOG_144,
DIALOG_145,
DIALOG_146,
DIALOG_147,
DIALOG_148,
DIALOG_149,
DIALOG_150,
DIALOG_151,
DIALOG_152,
DIALOG_153,
DIALOG_154,
DIALOG_155,
DIALOG_156,
DIALOG_157,
DIALOG_158,
DIALOG_159,
DIALOG_160,
DIALOG_161,
DIALOG_162,
DIALOG_163,
DIALOG_164,
DIALOG_165,
DIALOG_166,
DIALOG_167,
DIALOG_168,
DIALOG_169,
DIALOG_COUNT
};
#endif

View File

@@ -3,6 +3,8 @@
#include "command_macros_base.h"
#include "level_table.h"
#define OP_AND 0
#define OP_NAND 1
#define OP_EQ 2

22
include/level_table.h Normal file
View File

@@ -0,0 +1,22 @@
#ifndef _LEVEL_TABLE_H
#define _LEVEL_TABLE_H
// For LEVEL_NAME defines, see level_defines.h.
// Please include this file if you want to use them.
#define STUB_LEVEL(_0, levelenum, _2, _3, _4, _5, _6, _7, _8) levelenum,
#define DEFINE_LEVEL(_0, levelenum, _2, _3, _4, _5, _6, _7, _8, _9, _10) levelenum,
enum LevelNum
{
LEVEL_NONE,
#include "levels/level_defines.h"
LEVEL_COUNT,
LEVEL_MAX = LEVEL_COUNT - 1,
LEVEL_MIN = LEVEL_NONE + 1
};
#undef STUB_LEVEL
#undef DEFINE_LEVEL
#endif // _LEVEL_TABLE_H

View File

@@ -3,6 +3,12 @@
#include "platform_info.h"
#if !defined(__sgi) && (!defined(NON_MATCHING) || !defined(AVOID_UB))
// asm-process isn't supported outside of IDO, and undefined behavior causes
// crashes.
#error Matching build is only possible on IDO; please build with NON_MATCHING=1.
#endif
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
#define GLUE(a, b) a ## b

View File

@@ -956,13 +956,13 @@
#define /*0x0F4*/ oThwompUnkF4 OBJECT_FIELD_S32(0x1B)
/* Tilting Platform */
#define /*0x0F4*/ oTiltingPlatformUnkF4 OBJECT_FIELD_F32(0x1B)
#define /*0x0F8*/ oTiltingPlatformUnkF8 OBJECT_FIELD_F32(0x1C)
#define /*0x0FC*/ oTiltingPlatformUnkFC OBJECT_FIELD_F32(0x1D)
#define /*0x10C*/ oTiltingPlatformUnk10C OBJECT_FIELD_S32(0x21)
#define /*0x0F4*/ oTiltingPyramidNormalX OBJECT_FIELD_F32(0x1B)
#define /*0x0F8*/ oTiltingPyramidNormalY OBJECT_FIELD_F32(0x1C)
#define /*0x0FC*/ oTiltingPyramidNormalZ OBJECT_FIELD_F32(0x1D)
#define /*0x10C*/ oTiltingPyramidMarioOnPlatform OBJECT_FIELD_S32(0x21)
/* Toad Message */
#define /*0x108*/ oToadMessageDialogNum 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)

View File

@@ -1,7 +1,7 @@
#ifndef PLATFORM_INFO_H
#define PLATFORM_INFO_H
#if defined(__sgi) || defined(TARGET_N64)
#ifdef TARGET_N64
#define IS_64_BIT 0
#define IS_BIG_ENDIAN 1
#else

View File

@@ -42,37 +42,14 @@ extern u8 _goddardSegmentStart[];
DECLARE_LEVEL_SEGMENT(menu)
DECLARE_LEVEL_SEGMENT(intro)
DECLARE_LEVEL_SEGMENT(ending)
DECLARE_LEVEL_SEGMENT(bbh)
DECLARE_LEVEL_SEGMENT(ccm)
DECLARE_LEVEL_SEGMENT(castle_inside)
DECLARE_LEVEL_SEGMENT(hmc)
DECLARE_LEVEL_SEGMENT(ssl)
DECLARE_LEVEL_SEGMENT(bob)
DECLARE_LEVEL_SEGMENT(sl)
DECLARE_LEVEL_SEGMENT(wdw)
DECLARE_LEVEL_SEGMENT(jrb)
DECLARE_LEVEL_SEGMENT(thi)
DECLARE_LEVEL_SEGMENT(ttc)
DECLARE_LEVEL_SEGMENT(rr)
DECLARE_LEVEL_SEGMENT(castle_grounds)
DECLARE_LEVEL_SEGMENT(bitdw)
DECLARE_LEVEL_SEGMENT(vcutm)
DECLARE_LEVEL_SEGMENT(bitfs)
DECLARE_LEVEL_SEGMENT(sa)
DECLARE_LEVEL_SEGMENT(bits)
DECLARE_LEVEL_SEGMENT(lll)
DECLARE_LEVEL_SEGMENT(ddd)
DECLARE_LEVEL_SEGMENT(wf)
DECLARE_LEVEL_SEGMENT(ending)
DECLARE_LEVEL_SEGMENT(castle_courtyard)
DECLARE_LEVEL_SEGMENT(pss)
DECLARE_LEVEL_SEGMENT(cotmc)
DECLARE_LEVEL_SEGMENT(totwc)
DECLARE_LEVEL_SEGMENT(bowser_1)
DECLARE_LEVEL_SEGMENT(wmotr)
DECLARE_LEVEL_SEGMENT(bowser_2)
DECLARE_LEVEL_SEGMENT(bowser_3)
DECLARE_LEVEL_SEGMENT(ttm)
#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8)
#define DEFINE_LEVEL(_0, _1, _2, folder, _4, _5, _6, _7, _8, _9, _10) DECLARE_LEVEL_SEGMENT(folder)
#include "levels/level_defines.h"
#undef STUB_LEVEL
#undef DEFINE_LEVEL
DECLARE_SEGMENT(water_skybox_mio0)
DECLARE_SEGMENT(ccm_skybox_mio0)

View File

@@ -21,22 +21,22 @@
#define DEBUG_ASSERT(exp)
#endif
// Use these macros in places where aliasing is used to split a variable into
// smaller parts
#if ENDIAN_IND
// Pointer casting is technically UB, and avoiding it gets rid of endian issues
// as well as a nice side effect.
#ifdef AVOID_UB
#define GET_HIGH_U16_OF_32(var) ((u16)((var) >> 16))
#define GET_HIGH_S16_OF_32(var) ((s16)((var) >> 16))
#define GET_LOW_U16_OF_32(var) ((u16)((var) & 0xFFFF))
#define GET_LOW_S16_OF_32(var) ((s16)((var) & 0xFFFF))
#define SET_HIGH_U16_OF_32(var, val) ((var) = ((var) & 0xFFFF) | ((val) << 16))
#define SET_HIGH_S16_OF_32(var, val) ((var) = ((var) & 0xFFFF) | ((val) << 16))
#define SET_HIGH_U16_OF_32(var, x) ((var) = ((var) & 0xFFFF) | ((x) << 16))
#define SET_HIGH_S16_OF_32(var, x) ((var) = ((var) & 0xFFFF) | ((x) << 16))
#else
#define GET_HIGH_U16_OF_32(var) (((u16 *)&(var))[0])
#define GET_HIGH_S16_OF_32(var) (((s16 *)&(var))[0])
#define GET_LOW_U16_OF_32(var) (((u16 *)&(var))[1])
#define GET_LOW_S16_OF_32(var) (((s16 *)&(var))[1])
#define SET_HIGH_U16_OF_32(var, val) ((((u16 *)&(var))[0]) = (val))
#define SET_HIGH_S16_OF_32(var, val) ((((s16 *)&(var))[0]) = (val))
#define SET_HIGH_U16_OF_32(var, x) ((((u16 *)&(var))[0]) = (x))
#define SET_HIGH_S16_OF_32(var, x) ((((s16 *)&(var))[0]) = (x))
#endif
// Layers
@@ -176,9 +176,9 @@
#define ACT_SLEEPING 0x0C000203 // (0x003 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
#define ACT_WAKING_UP 0x0C000204 // (0x004 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
#define ACT_PANTING 0x0C400205 // (0x005 | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
#define ACT_UNKNOWN_006 0x08000206 // (0x006 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
#define ACT_UNKNOWN_007 0x08000207 // (0x007 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
#define ACT_UNKNOWN_008 0x08000208 // (0x008 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
#define ACT_HOLD_PANTING_UNUSED 0x08000206 // (0x006 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
#define ACT_HOLD_IDLE 0x08000207 // (0x007 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
#define ACT_HOLD_HEAVY_IDLE 0x08000208 // (0x008 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT)
#define ACT_STANDING_AGAINST_WALL 0x0C400209 // (0x009 | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
#define ACT_COUGHING 0x0C40020A // (0x00A | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)
#define ACT_SHIVERING 0x0C40020B // (0x00B | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT)

View File

@@ -41,7 +41,7 @@ static struct SpecialPreset SpecialObjectPresets[] =
{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, bhvLllTiltingSquarePlatform},
{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},

View File

@@ -255,7 +255,7 @@ f32 gSineTable[] = {
0.999830604f, 0.999857664f, 0.999882340f, 0.999904692f,
0.999924719f, 0.999942362f, 0.999957621f, 0.999970615f,
0.999981165f, 0.999989390f, 0.999995291f, 0.999998808f,
#if !BUGFIXES_CRITICAL
#ifndef AVOID_UB
};
f32 gCosineTable[0x1000] = {