2024-06-17 14:11:27 -04:00
|
|
|
#ifndef LEGOPLANTS_H
|
|
|
|
#define LEGOPLANTS_H
|
|
|
|
|
|
|
|
#include "decomp.h"
|
|
|
|
#include "mxtypes.h"
|
|
|
|
|
|
|
|
class LegoEntity;
|
|
|
|
class LegoPathBoundary;
|
|
|
|
|
|
|
|
// SIZE 0x54
|
|
|
|
struct LegoPlantInfo {
|
2024-06-18 13:35:03 -04:00
|
|
|
// See LegoOmni::RegisterWorlds for IDs
|
|
|
|
enum Worlds {
|
|
|
|
c_act1 = 1 << 0,
|
|
|
|
c_imain = 1 << 1,
|
|
|
|
c_ielev = 1 << 4,
|
|
|
|
c_iisle = 1 << 5,
|
|
|
|
c_act2 = 1 << 15,
|
|
|
|
c_act3 = 1 << 16
|
2024-06-17 14:11:27 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
enum Variant {
|
|
|
|
e_flower = 0,
|
|
|
|
e_tree,
|
|
|
|
e_bush,
|
|
|
|
e_palm
|
|
|
|
};
|
|
|
|
|
|
|
|
enum Color {
|
|
|
|
e_white = 0,
|
|
|
|
e_black,
|
|
|
|
e_yellow,
|
|
|
|
e_red,
|
|
|
|
e_green
|
|
|
|
};
|
|
|
|
|
|
|
|
LegoEntity* m_entity; // 0x00
|
2024-06-18 13:35:03 -04:00
|
|
|
MxU32 m_worlds; // 0x04 - see enum for possible bit flags
|
|
|
|
MxU8 m_variant; // 0x08 - see enum for possible values
|
2024-06-17 14:11:27 -04:00
|
|
|
MxU32 m_sound; // 0x0c
|
|
|
|
MxU32 m_move; // 0x10
|
|
|
|
MxU8 m_mood; // 0x14
|
|
|
|
MxU8 m_color; // 0x15 - see enum for possible values
|
|
|
|
MxS8 m_unk0x16; // 0x16
|
|
|
|
MxS8 m_initialUnk0x16; // 0x17 - initial value loaded to m_unk0x16
|
|
|
|
const char* m_name; // 0x18
|
|
|
|
undefined4 m_unk0x1c; // 0x1c
|
|
|
|
float m_x; // 0x20
|
|
|
|
float m_y; // 0x24
|
|
|
|
float m_z; // 0x28
|
|
|
|
LegoPathBoundary* m_boundary; // 0x2c
|
|
|
|
float m_position[3]; // 0x30
|
|
|
|
float m_direction[3]; // 0x3c
|
|
|
|
float m_up[3]; // 0x48
|
|
|
|
};
|
|
|
|
|
|
|
|
extern LegoPlantInfo g_plantInfoInit[81];
|
|
|
|
|
|
|
|
#endif // LEGOPLANTS_H
|