//------------------------------------------------
//--- 010 Editor v10.0 Binary Template
//
// File: rEmPartsGroup
// Authors: DorfDork & Asterisk
// Version:
// Purpose:
// Category: chunk\em\em???\??\data
// File Mask: .dtt_epg
// ID Bytes:
// History:
//------------------------------------------------
/*
PartIdMR tells us if a monster that appeared in low/high rank is also in master rank.
Otherwise, if a monster only appears in master rank then it will occupy the PartIdLRHR dataset
PartId as a whole tells us which hitzone a flinch correlates to. (e.g) PartId 0 equals the first hitzone, PartId 1 goes to the second hitzone and so on.
*/
typedef enum <int> {
Red,
White,
Orange,
Green
} KinsectColor;
typedef enum <int> {
Any,
Sever,
Blunt,
Shot
} DamageType;
typedef struct { //54 bytes
int PartIdLRHR1_Normal<bgcolor=0x8080ff>;
int PartIdLRHR1_Wounded<bgcolor=0x8080ff>;
int PartIdLRHR1_SpecialPhase1<bgcolor=0x8080ff>;
int PartIdLRHR1_SpecialPhase2<bgcolor=0x8080ff>;
int PartIdLRHR1_SpecialPhase3<bgcolor=0x8080ff>;
int PartIdMR1_Normal<bgcolor=0x404080>;
int PartIdMR1_Wounded<bgcolor=0x404080>;
int PartIdMR1_SpecialPhase1<bgcolor=0x404080>;
int PartIdMR1_SpecialPhase2<bgcolor=0x404080>;
int PartIdMR1_SpecialPhase3<bgcolor=0x404080>;
uint unk9<bgcolor=0x000000>;
uint unk10<bgcolor=0x000000>;
uint unk11<bgcolor=0x000000>;
ubyte unk12<bgcolor=0x000000>;
ubyte unk13<bgcolor=0x000000>;
} PartsType1;
typedef struct { //94 bytes
int PartIdLRHR1_Normal<bgcolor=0x8080ff>;
int PartIdLRHR1_Wounded<bgcolor=0x8080ff>;
int PartIdLRHR1_SpecialPhase1<bgcolor=0x8080ff>;
int PartIdLRHR1_SpecialPhase2<bgcolor=0x8080ff>;
int PartIdLRHR1_SpecialPhase3<bgcolor=0x8080ff>;
int PartIdMR1_Normal<bgcolor=0x404080>;
int PartIdMR1_Wounded<bgcolor=0x404080>;
int PartIdMR1_SpecialPhase1<bgcolor=0x404080>;
int PartIdMR1_SpecialPhase2<bgcolor=0x404080>;
int PartIdMR1_SpecialPhase3<bgcolor=0x404080>;
int PartIdLRHR2_Normal<bgcolor=0x8080ff>;
int PartIdLRHR2_Wounded<bgcolor=0x8080ff>;
int PartIdLRHR2_SpecialPhase1<bgcolor=0x8080ff>;
int PartIdLRHR2_SpecialPhase2<bgcolor=0x8080ff>;
int PartIdLRHR2_SpecialPhase3<bgcolor=0x8080ff>;
int PartIdMR2_Normal<bgcolor=0x404080>;
int PartIdMR2_Wounded<bgcolor=0x404080>;
int PartIdMR2_SpecialPhase1<bgcolor=0x404080>;
int PartIdMR2_SpecialPhase2<bgcolor=0x404080>;
int PartIdMR2_SpecialPhase3<bgcolor=0x404080>;
uint unk19<bgcolor=0x000000>;
uint unk20<bgcolor=0x000000>;
uint unk21<bgcolor=0x000000>;
ubyte unk22<bgcolor=0x000000>;
ubyte unk23<bgcolor=0x000000>;
} PartsType2;
typedef struct { //134 bytes
int PartIdLRHR1_Normal<bgcolor=0x8080ff>;
int PartIdLRHR1_Wounded<bgcolor=0x8080ff>;
int PartIdLRHR1_SpecialPhase1<bgcolor=0x8080ff>;
int PartIdLRHR1_SpecialPhase2<bgcolor=0x8080ff>;
int PartIdLRHR1_SpecialPhase3<bgcolor=0x8080ff>;
int PartIdMR1_Normal<bgcolor=0x404080>;
int PartIdMR1_Wounded<bgcolor=0x404080>;
int PartIdMR1_SpecialPhase1<bgcolor=0x404080>;
int PartIdMR1_SpecialPhase2<bgcolor=0x404080>;
int PartIdMR1_SpecialPhase3<bgcolor=0x404080>;
int PartIdLRHR2_Normal<bgcolor=0x8080ff>;
int PartIdLRHR2_Wounded<bgcolor=0x8080ff>;
int PartIdLRHR2_SpecialPhase1<bgcolor=0x8080ff>;
int PartIdLRHR2_SpecialPhase2<bgcolor=0x8080ff>;
int PartIdLRHR2_SpecialPhase3<bgcolor=0x8080ff>;
int PartIdMR2_Normal<bgcolor=0x404080>;
int PartIdMR2_Wounded<bgcolor=0x404080>;
int PartIdMR2_SpecialPhase1<bgcolor=0x404080>;
int PartIdMR2_SpecialPhase2<bgcolor=0x404080>;
int PartIdMR2_SpecialPhase3<bgcolor=0x404080>;
int PartIdLRHR3_Normal<bgcolor=0x8080ff>;
int PartIdLRHR3_Wounded<bgcolor=0x8080ff>;
int PartIdLRHR3_SpecialPhase1<bgcolor=0x8080ff>;
int PartIdLRHR3_SpecialPhase2<bgcolor=0x8080ff>;
int PartIdLRHR3_SpecialPhase3<bgcolor=0x8080ff>;
int PartIdMR3_Normal<bgcolor=0x404080>;
int PartIdMR3_Wounded<bgcolor=0x404080>;
int PartIdMR3_SpecialPhase1<bgcolor=0x404080>;
int PartIdMR3_SpecialPhase2<bgcolor=0x404080>;
int PartIdMR3_SpecialPhase3<bgcolor=0x404080>;
uint unk29<bgcolor=0x000000>;
uint unk30<bgcolor=0x000000>;
uint unk31<bgcolor=0x000000>;
ubyte unk32<bgcolor=0x000000>;
ubyte unk33<bgcolor=0x000000>;
} PartsType3;
typedef struct {
uint FlinchValue<bgcolor=0x205020>;
int SpecialPart1<bgcolor=0x205020>; //For severables
int SpecialPart2<bgcolor=0x205020>; //For severables
int SpecialPart3<bgcolor=0x205020>; //For severables
KinsectColor Color<bgcolor=0x205020>;
uint PartsType<bgcolor=0x205020>;
if (PartsType == 1) {PartsType1 parts1;}
if (PartsType == 2) {PartsType2 parts2;}
if (PartsType == 3) {PartsType3 parts3;}
} Flinches;
typedef struct { //44 bytes
float Timer<bgcolor=0xffffff>; //Time Until Hitzone Change, next zone logic unsure
uint Sever<bgcolor=0xffffff>;
uint Impact<bgcolor=0xffffff>;
uint Shot<bgcolor=0xffffff>;
uint Fire<bgcolor=0xff00ff>;
uint Water<bgcolor=0xff00ff>;
uint Ice<bgcolor=0xff00ff>;
uint Thunder<bgcolor=0xff00ff>;
uint Dragon<bgcolor=0xff00ff>;
uint Stun<bgcolor=0xff00ff>;
uint Stamina<bgcolor=0xff0000>;
} Hitzones;
typedef struct { //23 bytes
DamageType Damage<bgcolor=0x808000>;
uint unk1<bgcolor=0x808000>;
uint unk2<bgcolor=0x808000>;
uint Sever<bgcolor=0xffff00>;
int unk5<bgcolor=0x808000>;
ubyte Bool_Special<bgcolor=0x808000>; //Set to 0 makes Kulve Horns affected by PB and Nergi tail set to 1 requires spikes to be cut - On Nergi Spikes compared against a 0 byte every hit to body part tied to
ubyte Bool_Blunt<bgcolor=0x808000>; // On nergi spikes compared against 0 byte every time spikes take damage WHILE ACTIVE
ubyte Bool_Shot<bgcolor=0x808000>;
} Severs;
typedef struct { //26 bytes
uint unk1<bgcolor=0x008080>;
uint unk2<bgcolor=0x80ffff>;
uint unk3<bgcolor=0x80ffff>;
ubyte unk4<bgcolor=0x80ffff>;
uint unk5<bgcolor=0x000000>;
ubyte unk6<bgcolor=0x80ffff>;
ubyte unk7<bgcolor=0x80ffff>;
int unk8<bgcolor=0x80ffff>;
ubyte unk9<bgcolor=0x000000>;
ubyte unk10<bgcolor=0x000000>;
ubyte unk11<bgcolor=0x80ffff>;
} UnkArr;
uint Magic;
uint Header;
uint MonsterID<bgcolor=0x00ffff>;
uint Section;
uint Health<bgcolor=0x0000ff>;
uint NumOfFlinches<bgcolor=0x0000ff>;
Flinches flinches[NumOfFlinches]<optimize=false>;
uint NumOfHitzones<bgcolor=0x0000ff>;
Hitzones hitzones[NumOfHitzones]<optimize=false>;
uint NumOfSevers<bgcolor=0x0000ff>;
Severs severs[NumOfSevers]<optimize=false>;
uint NumOfUnks<bgcolor=0x0000ff>;
UnkArr arr[NumOfUnks];
uint unk1;
uint unk2;