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;
|
||||
}
|
||||
|
||||
#define MACRO_OBJ_Y_ROT 0
|
||||
#define MACRO_OBJ_X 1
|
||||
#define MACRO_OBJ_Y 2
|
||||
#define MACRO_OBJ_Z 3
|
||||
struct LoadedPreset {
|
||||
/*0x00*/ const BehaviorScript *behavior;
|
||||
/*0x04*/ s16 param; // huh? why does the below function swap these.. just use the struct..
|
||||
/*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
|
||||
|
||||
void spawn_macro_objects(s32 areaIndex, s16 *macroObjList) {
|
||||
s32 presetID;
|
||||
s16 macroObject[5]; // see the 5 #define statements above
|
||||
struct Object *newObj;
|
||||
s16 presetParams, macroParams;
|
||||
struct LoadedPreset preset;
|
||||
gMacroObjectDefaultParent.header.gfx.areaIndex = areaIndex;
|
||||
gMacroObjectDefaultParent.header.gfx.activeAreaIndex = areaIndex;
|
||||
while (TRUE) {
|
||||
@@ -103,34 +109,37 @@ void spawn_macro_objects(s32 areaIndex, s16 *macroObjList) {
|
||||
macroObject[MACRO_OBJ_PARAMS] = *macroObjList++; // Behavior params
|
||||
|
||||
// Get the preset values from the MacroObjectPresets list.
|
||||
presetParams = MacroObjectPresets[presetID].param;
|
||||
macroParams = macroObject[MACRO_OBJ_PARAMS];
|
||||
preset.model = MacroObjectPresets[presetID].model;
|
||||
preset.behavior = MacroObjectPresets[presetID].behavior;
|
||||
preset.param = MacroObjectPresets[presetID].param;
|
||||
|
||||
if (presetParams != 0) {
|
||||
macroParams = (macroParams & 0xFF00) + (presetParams & 0x00FF);
|
||||
if (preset.param != 0) {
|
||||
macroObject[MACRO_OBJ_PARAMS] =
|
||||
(macroObject[MACRO_OBJ_PARAMS] & 0xFF00) + (preset.param & 0x00FF);
|
||||
}
|
||||
|
||||
// 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.
|
||||
newObj = spawn_object_abs_with_rot(&gMacroObjectDefaultParent, // Parent object
|
||||
0, // Unused
|
||||
MacroObjectPresets[presetID].model, // Model ID
|
||||
MacroObjectPresets[presetID].behavior, // Behavior address
|
||||
macroObject[MACRO_OBJ_X], // X-position
|
||||
macroObject[MACRO_OBJ_Y], // Y-position
|
||||
macroObject[MACRO_OBJ_Z], // Z-position
|
||||
0, // X-rotation
|
||||
convert_rotation(macroObject[MACRO_OBJ_Y_ROT]), // Y-rotation
|
||||
0 // Z-rotation
|
||||
newObj = spawn_object_abs_with_rot(&gMacroObjectDefaultParent, // Parent object
|
||||
0, // Unused
|
||||
MacroObjectPresets[presetID].model, // Model ID
|
||||
MacroObjectPresets[presetID].behavior, // Behavior address
|
||||
macroObject[MACRO_OBJ_X], // X-position
|
||||
macroObject[MACRO_OBJ_Y], // Y-position
|
||||
macroObject[MACRO_OBJ_Z], // Z-position
|
||||
0, // X-rotation
|
||||
convert_rotation(macroObject[MACRO_OBJ_Y_ROT]), // Y-rotation
|
||||
0 // Z-rotation
|
||||
);
|
||||
newObj->oUnusedCoinParams = macroParams;
|
||||
newObj->oBehParams = ((macroParams & 0x00FF) << 16)
|
||||
+ (macroParams & 0xFF00);
|
||||
newObj->oBehParams2ndByte = macroParams & 0x00FF;
|
||||
newObj->respawnInfoType = RESPAWN_INFO_TYPE_16;
|
||||
newObj->respawnInfo = (macroObjList - 1);
|
||||
newObj->parentObj = newObj;
|
||||
|
||||
newObj->oUnusedCoinParams = macroObject[MACRO_OBJ_PARAMS];
|
||||
newObj->oBehParams = ((macroObject[MACRO_OBJ_PARAMS] & 0x00FF) << 16)
|
||||
+ (macroObject[MACRO_OBJ_PARAMS] & 0xFF00);
|
||||
newObj->oBehParams2ndByte = macroObject[MACRO_OBJ_PARAMS] & 0x00FF;
|
||||
newObj->respawnInfoType = RESPAWN_INFO_TYPE_16;
|
||||
newObj->respawnInfo = macroObjList - 1;
|
||||
newObj->parentObj = newObj;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user