You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Revert macros struct funnies
sausage
This commit is contained in:
@@ -77,17 +77,23 @@ UNUSED static void spawn_macro_coin_unknown(const BehaviorScript *behavior, s16
|
|||||||
obj->oBehParams = (a1[4] & 0xFF) >> 16;
|
obj->oBehParams = (a1[4] & 0xFF) >> 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MACRO_OBJ_Y_ROT 0
|
struct LoadedPreset {
|
||||||
#define MACRO_OBJ_X 1
|
/*0x00*/ const BehaviorScript *behavior;
|
||||||
#define MACRO_OBJ_Y 2
|
/*0x04*/ s16 param; // huh? why does the below function swap these.. just use the struct..
|
||||||
#define MACRO_OBJ_Z 3
|
/*0x06*/ ModelID16 model;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define MACRO_OBJ_Y_ROT 0
|
||||||
|
#define MACRO_OBJ_X 1
|
||||||
|
#define MACRO_OBJ_Y 2
|
||||||
|
#define MACRO_OBJ_Z 3
|
||||||
#define MACRO_OBJ_PARAMS 4
|
#define MACRO_OBJ_PARAMS 4
|
||||||
|
|
||||||
void spawn_macro_objects(s32 areaIndex, s16 *macroObjList) {
|
void spawn_macro_objects(s32 areaIndex, s16 *macroObjList) {
|
||||||
s32 presetID;
|
s32 presetID;
|
||||||
s16 macroObject[5]; // see the 5 #define statements above
|
s16 macroObject[5]; // see the 5 #define statements above
|
||||||
struct Object *newObj;
|
struct Object *newObj;
|
||||||
s16 presetParams, macroParams;
|
struct LoadedPreset preset;
|
||||||
gMacroObjectDefaultParent.header.gfx.areaIndex = areaIndex;
|
gMacroObjectDefaultParent.header.gfx.areaIndex = areaIndex;
|
||||||
gMacroObjectDefaultParent.header.gfx.activeAreaIndex = areaIndex;
|
gMacroObjectDefaultParent.header.gfx.activeAreaIndex = areaIndex;
|
||||||
while (TRUE) {
|
while (TRUE) {
|
||||||
@@ -103,34 +109,37 @@ void spawn_macro_objects(s32 areaIndex, s16 *macroObjList) {
|
|||||||
macroObject[MACRO_OBJ_PARAMS] = *macroObjList++; // Behavior params
|
macroObject[MACRO_OBJ_PARAMS] = *macroObjList++; // Behavior params
|
||||||
|
|
||||||
// Get the preset values from the MacroObjectPresets list.
|
// Get the preset values from the MacroObjectPresets list.
|
||||||
presetParams = MacroObjectPresets[presetID].param;
|
preset.model = MacroObjectPresets[presetID].model;
|
||||||
macroParams = macroObject[MACRO_OBJ_PARAMS];
|
preset.behavior = MacroObjectPresets[presetID].behavior;
|
||||||
|
preset.param = MacroObjectPresets[presetID].param;
|
||||||
|
|
||||||
if (presetParams != 0) {
|
if (preset.param != 0) {
|
||||||
macroParams = (macroParams & 0xFF00) + (presetParams & 0x00FF);
|
macroObject[MACRO_OBJ_PARAMS] =
|
||||||
|
(macroObject[MACRO_OBJ_PARAMS] & 0xFF00) + (preset.param & 0x00FF);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If object has been killed, prevent it from respawning
|
// If object has been killed, prevent it from respawning
|
||||||
if (((macroParams >> 8) & RESPAWN_INFO_DONT_RESPAWN) != RESPAWN_INFO_DONT_RESPAWN) {
|
if (((macroObject[MACRO_OBJ_PARAMS] >> 8) & RESPAWN_INFO_DONT_RESPAWN) != RESPAWN_INFO_DONT_RESPAWN) {
|
||||||
// Spawn the new macro object.
|
// Spawn the new macro object.
|
||||||
newObj = spawn_object_abs_with_rot(&gMacroObjectDefaultParent, // Parent object
|
newObj = spawn_object_abs_with_rot(&gMacroObjectDefaultParent, // Parent object
|
||||||
0, // Unused
|
0, // Unused
|
||||||
MacroObjectPresets[presetID].model, // Model ID
|
MacroObjectPresets[presetID].model, // Model ID
|
||||||
MacroObjectPresets[presetID].behavior, // Behavior address
|
MacroObjectPresets[presetID].behavior, // Behavior address
|
||||||
macroObject[MACRO_OBJ_X], // X-position
|
macroObject[MACRO_OBJ_X], // X-position
|
||||||
macroObject[MACRO_OBJ_Y], // Y-position
|
macroObject[MACRO_OBJ_Y], // Y-position
|
||||||
macroObject[MACRO_OBJ_Z], // Z-position
|
macroObject[MACRO_OBJ_Z], // Z-position
|
||||||
0, // X-rotation
|
0, // X-rotation
|
||||||
convert_rotation(macroObject[MACRO_OBJ_Y_ROT]), // Y-rotation
|
convert_rotation(macroObject[MACRO_OBJ_Y_ROT]), // Y-rotation
|
||||||
0 // Z-rotation
|
0 // Z-rotation
|
||||||
);
|
);
|
||||||
newObj->oUnusedCoinParams = macroParams;
|
|
||||||
newObj->oBehParams = ((macroParams & 0x00FF) << 16)
|
newObj->oUnusedCoinParams = macroObject[MACRO_OBJ_PARAMS];
|
||||||
+ (macroParams & 0xFF00);
|
newObj->oBehParams = ((macroObject[MACRO_OBJ_PARAMS] & 0x00FF) << 16)
|
||||||
newObj->oBehParams2ndByte = macroParams & 0x00FF;
|
+ (macroObject[MACRO_OBJ_PARAMS] & 0xFF00);
|
||||||
newObj->respawnInfoType = RESPAWN_INFO_TYPE_16;
|
newObj->oBehParams2ndByte = macroObject[MACRO_OBJ_PARAMS] & 0x00FF;
|
||||||
newObj->respawnInfo = (macroObjList - 1);
|
newObj->respawnInfoType = RESPAWN_INFO_TYPE_16;
|
||||||
newObj->parentObj = newObj;
|
newObj->respawnInfo = macroObjList - 1;
|
||||||
|
newObj->parentObj = newObj;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user