All pastes #623128 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-07-17 11:33 UTC
rendered paste body
C++:
struct MonsterData {
	BYTE _1[22];					//0x00
	struct
	{
		BYTE fUnk:1;
		BYTE fNormal:1;
		BYTE fChamp:1;
		BYTE fBoss:1;
		BYTE fMinion:1;
	};								//0x16
	WORD _2;						//0x17
	DWORD _3;						//0x18
	BYTE anEnchants[9];				//0x1C
	BYTE _4;						//0x25
	WORD wUniqueNo;					//0x26
	DWORD _5;						//0x28
	struct {
		wchar_t wName[28];
	};								//0x2C
};





C#:
    [StructLayout(LayoutKind.Explicit)]
    public struct MonsterData
    {
	    [FieldOffset(0x00)] [MarshalAs(UnmanagedType.ByValArray, SizeConst=22)] public byte[] _1;
	    
        // Union
		[FieldOffset(0x16)] public byte  fUnk;
		[FieldOffset(0x16)] public byte  fNormal;
		[FieldOffset(0x16)] public byte  fChamp;
		[FieldOffset(0x16)] public byte  fBoss;
		[FieldOffset(0x16)] public byte  fMinion;

	    [FieldOffset(0x17)] public UInt16   _2;						 
	    [FieldOffset(0x18)] public uint     _3;						
	    [FieldOffset(0x1C)] [MarshalAs(UnmanagedType.ByValArray, SizeConst=9)]  public byte[] anEnchants;				
	    [FieldOffset(0x25)] public byte     _4;						
	    [FieldOffset(0x26)] public UInt16   wUniqueNo;					
	    [FieldOffset(0x28)] public byte     _5;						

		[FieldOffset(0x2C)] [MarshalAs(UnmanagedType.LPStr, SizeConst=28)]      public string wName;
    }