diff --git a/C/struct.h b/C/struct.h
index 3d72438..e67c131 100644
--- a/C/struct.h
+++ b/C/struct.h
@@ -424,7 +424,8 @@ typedef struct s_server_header {
unsigned short state; //0x004
unsigned short Unknown2; //0x006
wchar_t server_name[66]; //0x008
- char map_name[128]; //0x08C
+ char map_name[32]; //0x08C
+ unsigned char Unknown12[96]; //0x0AC
wchar_t gametype_name[24]; //0x10C
//IMPORTANT: DO NOT USE! Below this does not match with other Halo PC platforms, it is base on Halo CE version.
unsigned char Unknown11[40]; //0x13C // partial of Gametype need to break them down.
diff --git a/CSharp/struct.cs b/CSharp/struct.cs
index 109e405..a4c9da0 100644
--- a/CSharp/struct.cs
+++ b/CSharp/struct.cs
@@ -480,7 +480,7 @@ public struct s_gametype_globals_ptr {
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct map_name_ansi {
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string name;
}
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
@@ -491,6 +491,8 @@ public struct s_server_header {
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 66)]
public string server_name; //0x008
public map_name_ansi map_name; //0x08C
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 96)]
+ public byte[] Unknown12; //0x0AC
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 24)]
public string gametype_name; //0x10C
//IMPORTANT: DO NOT USE! Below this does not match with other Halo PC platforms, it is base on Halo CE version.
diff --git a/D/object.d b/D/object.d
index 840d5a1..0c26307 100644
--- a/D/object.d
+++ b/D/object.d
@@ -203,6 +203,27 @@ static if(__traits(compiles, EXT_IOBJECT)) {
* Returns: Return true or false if unable to find tag group.
*/
bool function(const e_tag_group tag_group, objTagGroupList* tag_list) m_get_lookup_group_tag_list;
+ /*
+ * Apply damage to specific object. (WARNING: May not be safe to use on certain custom maps.)
+ * Params:
+ * receiver = An object receive the damage.
+ * causer = An object cause the damage.
+ * multiply = Mulitply the damage.
+ * flags = Type of damage flags
+ * Return true or false if unable to apply generic damage.
+ */
+ bool (*m_apply_damage_generic)(s_ident receiver, s_ident causer, float multiply, objDamageFlags flags);
+ /*
+ * Apply damage to specific object.
+ * Params:
+ * receiver = An object receive the damage.
+ * causer = An object cause the damage.
+ * tag = Apply type of tag damage to receiver.
+ * multiply = Mulitply the damage.
+ * flags = Type of damage flags
+ * Returns: Return true or false if unable to apply custom damage.
+ */
+ void (*m_apply_damage_custom)(s_ident receiver, s_ident causer, const hTagHeader* tag, float multiply, objDamageFlags flags);
};
export extern(C) IObject* getIObject(uint hash);
}
diff --git a/D/structs.d b/D/structs.d
index 84fa4c2..da3d35f 100644
--- a/D/structs.d
+++ b/D/structs.d
@@ -429,7 +429,8 @@ struct s_server_header {
ushort state; //0x004
ushort Unknown2; //0x006
wchar[66] server_name; //0x008
- char[128] map_name; //0x08C
+ char[32] map_name; //0x08C
+ ubyte[96] Unknown12; //0x0AC
wchar[24] gametype_name; //0x10C
//IMPORTANT: DO NOT USE! Below this does not match with other Halo PC platforms, it is base on Halo CE version.
ubyte[40] Unknown11; //0x13C // partial of Gametype need to break them down.
@@ -770,7 +771,7 @@ align (1) struct s_map_header {
uint offset; //0x10
uint metaSize; //0x14
ubyte[8] PADDING1; //0x18 //Nulls
- char[32] mapName; //0x20
+ char[32] name; //0x20
char[32] builddate; //0x40
uint type; //0x060 // 0 = Campaign, 1 = Multi-player, 2 = Menu
uint unknown07; //0x064
diff --git a/VisualBasic/struct.vb b/VisualBasic/struct.vb
index 9c5df0b..eedf27a 100644
--- a/VisualBasic/struct.vb
+++ b/VisualBasic/struct.vb
@@ -479,7 +479,7 @@ End Structure
Public Structure map_name_ansi
-
+
Public name As String
End Structure
@@ -490,6 +490,8 @@ Public Structure s_server_header
Public server_name As String '0x008
Public map_name As map_name_ansi '0x08C
+
+ Public Unknown12 As Byte '0x0AC
Public gametype_name As String '0x10C
'IMPORTANT: DO NOT USE! Below this does Not match with other Halo PC platforms, it Is base on Halo CE version.