You've already forked ultrasm64-2
mirror of
https://github.com/HackerN64/ultrasm64-2.git
synced 2026-01-21 10:38:08 -08:00
refresh 4
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef _MBI_H_
|
||||
#define _MBI_H_
|
||||
|
||||
#include "platform_info.h"
|
||||
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -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
33
include/course_table.h
Normal 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
178
include/dialog_ids.h
Normal 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
|
||||
@@ -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
22
include/level_table.h
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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] = {
|
||||
|
||||
Reference in New Issue
Block a user