Page 2 of 4

Posted: Mon Oct 22, 2007 2:35 pm
by Prey
Yoou say Perf is complete, and yet it's filled with unknowns?.. >_<

Anyway good job so far =)

Posted: Mon Oct 22, 2007 3:30 pm
by shade45
Prey wrote:Yoou say Perf is complete, and yet it's filled with unknowns?.. >_<

Anyway good job so far =)
The layout is completed meaning all the reflexives and such have been mapped. But the values are still unknown thats why its still at v0.0
xzodia wrote:if your making a new format why bother writing plugins in the old format?
Those where just a few a had lying around thought I might as we'll put them out so they can be used until the new format is done.

Posted: Mon Oct 22, 2007 5:07 pm
by Prey
shade45 wrote:The layout is completed meaning all the reflexives and such have been mapped. But the values are still unknown thats why its still at v0.0
I though you meant that, but you said the same thing about trak.. so I had to make sure =x

Posted: Mon Oct 22, 2007 8:41 pm
by Tanasoo
shade45 wrote:there is a new better format coming soon :D
Oh, yays! I was really getting sick of the old one >_< :D

Posted: Wed Oct 31, 2007 1:21 pm
by Digital Marine
weap.cs:

Code: Select all

using System;
using System.Collections.Generic;
using System.Text;
using Halo3Map.Data;

namespace Halo3Map.Tags.Layouts
{
    [Tag("Digital Marine", "weap", 0.1)]

    public class weap : H3Tag
    {
        [Size(52)]
        public byte[] unused1;
        [ID(IdType.TagReference)]
        public TagReference hlmt;

        [Size(60)]
        public byte[] unused2;
        [ID(IdType.TagReference)]
        public TagReference foot;

        [Size(44)]
        public byte[] unused3;
        public H3Reflexive<Attachments> attachments;
        [Size(32)]
        //Offset: 188, Size: 32
        public class Attachments : Chunk
        {
            [ID(IdType.TagReference)]
            public TagReference FX; //0-16
            public int Unknown1; //16-20
            public int Unknown2; //20-24
            public int Unknown3; //24-28
            public int Unknown4; //28-30
        }

        [Size(40)]
        public byte[] unused4;
        public H3Reflexive<Unknown_1> Unknown_Reflexive_1;
        [Size(32)]
        //Offset: 236, Size: 32
        public class Unknown_1 : Chunk
        {
            [Size(32)]
            public byte unused;
        }

        [Size(808)]
        public byte[] unused5;
        public H3Reflexive<fpmodels> FP_Models;
        [Size(32)]
        //Offset: 1052, Size: 32
        public class fpmodels : Chunk
        {
            [ID(IdType.TagReference)]
            public TagReference Model;
            [ID(IdType.TagReference)]
            public TagReference Animation;
        }

        [Size(32)]
        public byte[] unused6;
        public H3Reflexive<mag> Magazine;
        [Size(128)]
        //Offset: 1092, Size: 128
        public class mag : Chunk
        {
            [Size(6)]
            public byte[] unused1;
            public short Starting_Ammo,
                Max_Ammo,
                Clip_Size,
                Max_Holding_Ammo;
            [Size(6)]
            public byte[] unused2;
            public short Reloading_Amount;

            [Size(94)]
            public byte[] unused3;
            public H3Reflexive<ammo> Ammo_Pack_Settings_Question;
            [Size(20)]
            //Offset: 116, Size: 20
            public class ammo : Chunk
            {
                public short Ammo_Picked_Up;
                [Size(2)]
                public byte[] unused;
                [ID(IdType.TagReference)]
                public TagReference Equipment;
            }
        }

        [Size(4)]
        public byte[] unused7;
        public H3Reflexive<triggers> Triggers_Question;
        [Size(144)]
        //Offset: 1104, Size: 144
        public class triggers : Chunk
        {
            [Size(144)]
            public byte[] unused;
        }

        [Size(4)]
        public byte[] unused8;
        public H3Reflexive<projectiles> Projectiles;
        [Size(304)]
        //Offset: 1116, Size: 304
        public class projectiles : Chunk
        {
            public short Unknown1,
                Unknown2;
            public float Rounds_Per_Sec_Min,
                Rounds_Per_Sec_Max,
                Accel_Min,
                Decel_Max,
                Blurred_ROF,
                Unknown;
            public short Rounds_Per_Shot,
                Min_Rounds_Loaded_Question;
            public float Chamber_Time_secs;
            [Size(6)]
            public byte[] unused;
            public short Ammo_per_Shot;
            [Size(74)]
            public byte[] unused1;
            public short Projectiles_per_Shot;
            [Size(32)]
            public byte[] unused2;
            [ID(IdType.TagReference)]
            public TagReference Projectile;
            [Size(128)]
            public byte[] unused3;
            public H3Reflexive<firingeffects> Firing_Effects;
            [Size(196)]
            //Offset: 296, Size: 196
            public class firingeffects : Chunk
            {
                public short ShotCount_LowerBound,
                    ShotCount_UpperBound;
                [ID(IdType.TagReference)]
                public TagReference Firing_Effect;
                [Size(16)]
                public byte[] unused;
                public TagReference Sound;
                [Size(16)]
                public byte[] unused1;
                public TagReference Damage_Response;

            }
        }
    }
}



Enjoy :)

Happy Halloween! :D

Posted: Wed Oct 31, 2007 7:48 pm
by shade45
Nice one :D

Posted: Thu Nov 01, 2007 10:38 am
by LuxuriousMeat
Nice job on that :D.

Posted: Thu Nov 01, 2007 7:55 pm
by ill3galpr0gram
I don't know if this let's me do it but I can't wait to Skin in Halo 3

Posted: Fri Nov 02, 2007 10:20 am
by blackdiamond
so does this mean when that meta-editor comes out, we could try to make a smg shoot missle pods??? :o :o :o

Posted: Fri Nov 02, 2007 10:47 am
by shade45
blackdiamond wrote:so does this mean when that meta-editor comes out, we could try to make a smg shoot missle pods??? :o :o :o
Grab the unofficial build here and you can start using these plugins.

http://forums.halomods.com/viewtopic.ph ... &start=228

Posted: Mon Nov 19, 2007 4:13 pm
by shade45
ugh! - layout completed

Code: Select all


using System;
using System.Collections.Generic;
using System.Text;
using Halo3Map.Data;

namespace Halo3Map.Tags.Layouts
{
    [Tag("shade45", "ugh!", 0.1)]
    public class ugh_ : H3Tag
    {
        public H3Reflexive<Unknown0> unknown0;
        [Size(4)]
        public class Unknown0 : Chunk
        {
            public short unknown;
            public short unknown2;
        }

        public H3Reflexive<Unknown12> unknown12;
        [Size(68)]
        public class Unknown12 : Chunk
        {
            public int unknown;
            public float unknown4;
            public float unknown8;
            public float unknown12;
            public float unknown16;
            public int unknown20;
            public int unknown24;
            public float unknown28;
            public int unknown32;
            public short unknown36;
            public short unknown38;
            public float pi;
            public float pi2;
            [Size(20)]
            public byte[] unknown48;
        }

        public H3Reflexive<Unknown24> unknown24;
        [Size(20)]
        public class Unknown24 : Chunk
        {
            public float unknown;
            public float unknown4;
            public float unknown8;
            public float unknown12;
            public float unknown16;
            public float unknown20;
        }

        public H3Reflexive<Unknown36> unknown36;
        [Size(4)]
        public class Unknown36 : Chunk
        {
            public short unknown;
            public short unknown2;
        }

        public H3Reflexive<Unknown48> unknown48;
        [Size(16)]
        public class Unknown48 : Chunk
        {
            public int unknown;
            public int unknown4;
            public int unknown8;
            public int unknown12;
        }

        public H3Reflexive<Unknown60> unknown60;
        [Size(12)]
        public class Unknown60 : Chunk
        {
            public short unknown;
            public short unknown2;
            public short unknown4;
            public short unknown6;
            public short unknown8;
            public short unknown10;
        }

        public H3Reflexive<Unknown72> unknown72;
        [Size(16)]
        public class Unknown72 : Chunk
        {
            public short unknown;
            public short unknown2;
            public short unknown4;
            public short unknown6;
            public short unknown8;
            public short unknown10;
            public short unknown12;
            public short unknown14;
        }

        public H3Reflexive<Unknown84> unknown84;
        [Size(72)]
        public class Unknown84 : Chunk
        {
            [Size(24)]
            public byte[] unknown;

            public H3Reflexive<Unknown24> unknown24;
            [Size(72)]
            public class Unknown24 : Chunk
            {
                [Size(8)]
                public byte[] unknown;

                public float unknown8;
                public float unknown12;

                [Size(8)]
                public byte[] unknown16;

                public float unknown24;
                public float unknown28;

                [Size(8)]
                public byte[] unknown32;

                public float unknown40;
                public float unknown44;

                [Size(24)]
                public byte[] unknown48;
            }

            [Size(36)]
            public byte[] unknown36;
        }

        public H3Reflexive<Unknown96> unknown96;
        [Size(28)]
        public class Unknown96 : Chunk
        {
            public int unknown;
            [Size(24)]
            public byte[] unknown4;
        }

        public H3Reflexive<Unknown108> unknown108;
        [Size(1)] //Padding 5%?
        public class Unknown108 : Chunk
        {
            public byte unknown;
        }

        [Size(28)]
        public byte[] unknown120;

        public H3Reflexive<Unknown148> unknown148;
        [Size(20)]
        public class Unknown148 : Chunk
        {
            public int unknown;
            public int unknown4;
            public short unknown8;
            public short unknown10;
            public short unknown12;
            public short unknown14;
            public short unknown16;
            public short unknown18;
        }

        [Size(12)]
        public byte[] unknown160;

        public H3Reflexive<Unknown172> unknown172;
        [Size(12)]
        public class Unknown172 : Chunk
        {
            public int unknown;
            public int unknown4;
            public int unknown8;
        }
    }
}


Posted: Mon Nov 19, 2007 5:14 pm
by OwnZ joO
I like the way you set these plugins up :lol: :lol: So H3Reflexives are just a List of Chunks from what it looks right?

Posted: Mon Nov 19, 2007 5:25 pm
by shade45
OwnZ joO wrote:I like the way you set these plugins up :lol: :lol: So H3Reflexives are just a List of Chunks from what it looks right?
Yes, but H3Reflexive is also a class, it holds the chunk offset/size and can read/write to the map file :D

Posted: Mon Nov 19, 2007 9:59 pm
by neodos
I should have posted this here,

I found the chunk palette in the scenery placement reflexive.

Code: Select all

public H3Reflexive<SceneryPlacement> sceneryPlacement;
        [Size(180)]
        public class SceneryPlacement : Chunk
        {
            public short SceneryPaletteChunk;
	    public short Unknown2;
            public int Unknown4;
            public float PosX;
            public float PosY;
            public float PosZ;
            public float Yaw;
            public float Pitch;
            public float Roll;
Oh and it seems like the forge player respawn are attached to a scenery model.

Posted: Tue Nov 20, 2007 7:06 am
by OwnZ joO
shade45 wrote:
OwnZ joO wrote:I like the way you set these plugins up :lol: :lol: So H3Reflexives are just a List of Chunks from what it looks right?
Yes, but H3Reflexive is also a class, it holds the chunk offset/size and can read/write to the map file :D
Does it extend List<T> or is it just a custom collections class you made, either way, I like the idea, good thinking whoever did that.

Posted: Tue Nov 20, 2007 7:08 am
by shade45
OwnZ joO wrote:
shade45 wrote:
OwnZ joO wrote:I like the way you set these plugins up :lol: :lol: So H3Reflexives are just a List of Chunks from what it looks right?
Yes, but H3Reflexive is also a class, it holds the chunk offset/size and can read/write to the map file :D
Does it extend List<T> or is it just a custom collections class you made, either way, I like the idea, good thinking whoever did that.
Yeah it extends List<T>, Anthony's Idea.

Posted: Thu Dec 13, 2007 11:32 am
by shade45
zone - completed basic layout

Code: Select all

using System;
using System.Collections.Generic;
using System.Text;
using Halo3Map.Data;

namespace Halo3Map.Tags.Layouts
{
    [Tag("shade45", "zone", 0.1)]
    public class zone : H3Tag
    {
        public int Unknown;

        public H3Reflexive<Unkn4> Unknown4;
        [Size(28)]
        public class Unkn4 : Chunk
        {
            public int Unknown;
            public int Unknown4;
            public int Unknown8;
            public int Unknown12;
            public int Unknown16;
            public int Unknown20;
            public int Unknown24;
        }

        public H3Reflexive<Unkn16> Unknown16;
        [Size(20)]
        public class Unkn16 : Chunk
        {
            public int Unknown;
            public int Unknown4;
            public int Unknown8;
            public int Unknown12;
            public int Unknown16;
        }

        [Size(60)]
        public byte[] Unknown28;

        public H3Reflexive<RawTable> rawTable;
        [Size(64)]
        public class RawTable : Chunk
        {
            public TagReference tag;
            public int Raw_Ident;
            public int Unknown20;
            public int Unknown24;
            public int Unknown28;
            public int Unknown32;
            public int Unknown36;

            public H3Reflexive<Unknown40> unknown40;
            [Size(8)]
            public class Unknown40 : Chunk
            {
                public int Unknown0;
                public int Unknown4;
            }

            public H3Reflexive<Unknown52> unknown52;
            [Size(8)]
            public class Unknown52 : Chunk
            {
                public int Unknown0;
                public int Unknown4;
            }
        }

        public H3Reflexive<Unkn100> Unknown100;
        [Size(120)]
        public class Unkn100 : Chunk
        {
            public H3Reflexive<Unkn> Unknown;
            [Size(4)]
            public class Unkn : Chunk
            {
                public int Unknown;
            }

            [Size(12)]
            public byte[] Unknown12;

            public H3Reflexive<Unkn> Unknown24;
            public H3Reflexive<Unkn> Unknown36;

            public int Unknown48;
            public int Unknown52;
            public int Unknown56;
            public int Unknown60;
            public int Unknown64;
            public int Unknown68;

            public H3Reflexive<Unkn72> Unknown72;
            [Size(20)]
            public class Unkn72 : Chunk
            {
                public int Unknown;
                public int Unknown4;
                public int Unknown8;
                public int Unknown12;
                public int Unknown16;
            }

            public H3Reflexive<Unkn84> Unknown84;
            [Size(4)]
            public class Unkn84 : Chunk
            {
                public int Unknown;
            }

            public H3Reflexive<Unkn84> Unknown96;

            public int Unknown108;
            public int Unknown112;
            public int Unknown116;
        }

        public H3Reflexive<Unkn100> Unknown112;

        [Size(12)]
        public byte[] Unknown124;

        //All these reflexive are exactly the same format a Unknown100
        public H3Reflexive<Unkn100> Unknown136; 
        public H3Reflexive<Unkn100> Unknown148;
        public H3Reflexive<Unkn100> Unknown160;
        public H3Reflexive<Unkn100> Unknown172;
        public H3Reflexive<Unkn100> Unknown184;
        public H3Reflexive<Unkn100> Unknown196;

        [Size(12)]
        public byte[] Unknown208;

        public H3Reflexive<Unkn100> Unknown220;
        ///////////////////////////////////////////////////////////////

        [Size(24)]
        public byte[] Unknown232;

        public H3Reflexive<Unkn256> Unknown256;
        [Size(36)]
        public class Unkn256 : Chunk
        {
            public int Unknown;
            public int Unknown4;
            public int Unknown8;
            public int Unknown12;
            public int Unknown16;
            public int Unknown20;
            public int Unknown24;
            public int Unknown28;
            public int Unknown32;
        }

        public H3Reflexive<Unkn268> Unknown268;
        [Size(16)]
        public class Unkn268 : Chunk
        {
            public TagReference sbsp;
        }

        [Size(36)]
        public byte[] Unknown280;

        public int TableOrSumthingOfTheSortSize;

        [Size(8)]
        public byte[] Unknown320;

        public int TableOrSumthingOfTheSortOffset;  // - map magic
        public int Unknown332;
        public int Unknown336;
        public int Unknown340;
        public int Unknown344;
        public int Unknown348;
        public int Unknown352;

        public H3Reflexive<Unkn356> Unknown356;
        [Size(20)]
        public class Unkn356 : Chunk
        {
            public int Unknown;
            public int Unknown4;
            public int Unknown8;
            public int Unknown12;
            public int Unknown16;
        }

        [Size(96)]
        public byte[] Unknown368;

        public H3Reflexive<Unknown464> unknown464;
        [Size(4)]
        public class Unknown464 : Chunk
        {
            public int Unknown;
        }

        public H3Reflexive<Unknown476> unknown476;
        [Size(8)]
        public class Unknown476 : Chunk
        {
            public int Unknown;
            public int Unknown4;
        }

        public H3Reflexive<Unknown488> unknown488;
        [Size(4)]
        public class Unknown488 : Chunk
        {
            public int Unknown;
        }

        public H3Reflexive<Unknown500> unknown500;
        [Size(8)]
        public class Unknown500 : Chunk
        {
            public short Unknown;
            public short Unknown2;
            public short Unknown4;
            public short Unknown6;
        }

        public H3Reflexive<Unknown512> unknown512;
        [Size(12)]
        public class Unknown512 : Chunk
        {
            public short Unknown;
            public short Unknown2;
            public int Unknown4;
            public int Unknown8;            
        }
    }
}

Posted: Thu Dec 13, 2007 1:11 pm
by Veegie
Very nice work, everyone.

Posted: Thu Dec 13, 2007 1:20 pm
by Evan
I wouldn't mind seeing this as a sticky with the research discussion.

Posted: Thu Dec 13, 2007 1:43 pm
by Veegie
Merged two stickies and added this.
Just make sure to keep the first post updated*, Shade. ;)

*hyperlinks