JacksonCougar's Converted Entity Plugins

This is dedicated to all the mods the community wants to share!
Patches only people. No Map files.
Post Reply
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

The project which I am working on has the side effect of needing me to have reliable mapped plugins so I'll be converting some of the plugins from Halo 2 PC to Halo 2 Xbox in the form of plugins for entity. I'll be updating these plugins a bit as I test the structures and do more work on my project, but in the mean-time if you have a need for some nice converted plugins have a whack at these.

[*]jmad : Model Animation Graph plugin - view
jmad.ent
conversion - added two reflexives, compiled from an older version of one of the tag_block_definitions, and increased header size
(17.21 KiB) Downloaded 564 times
http://www.remnantmods.com/files/jackso ... y/plugins/

missing:
  • ltmp
  • DECR
  • snd!
  • shad
  • spas
  • vrtx
  • wgit
  • PRTM
  • jmad [use the one above]
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: JacksonCougar's Converted Entity Plugins

Post by troymac1ure »

JacksonCougar wrote:initial conversion - added entity 2.1.XX colour field support
I totally forgot about support for those types. I knew they were in the old meta editor (auto-decyphered). Need plugins that make use of these. I wonder if I should change it to detect an attribute so the plugins are backwards compatible instead.
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

well you could scan for colour names (ie; r, red, b, blue, etc)
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: JacksonCougar's Converted Entity Plugins

Post by troymac1ure »

Yeah, that's what I did in the ME1. I think I'll just steal the code and modify it for ME2 since it worked so well.
User avatar
CaptainPoopface
Posts: 714
Joined: Sat Feb 16, 2008 5:47 am

Re: JacksonCougar's Converted Entity Plugins

Post by CaptainPoopface »

What is the nature of this covert project of yours? Can you drop some hints?
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

it's been my signature for years.
User avatar
Click16
Posts: 1941
Joined: Mon Dec 31, 2007 4:36 am
Location: United States

Re: JacksonCougar's Converted Entity Plugins

Post by Click16 »

Well to be fair, it was Sunfish
Image
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

I did some more work on the converter to allow me to pre-process fields_sets before converting, so here's a usable scenario plugin from h2pc to h2x for you guys to poke at with a stick.
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: JacksonCougar's Converted Entity Plugins

Post by troymac1ure »

Can you decode them again, but move the information out of the name and into an attribute called "description". It will be too hard to decode it seperately at the moment as some tags may be using the hash tag already.
Also, can you move maximum chunks (such as: [max#16]) into another attribute called "maxchunks".

If you can do that I can start adding the code for both.
The first can either be a mouse hover popup or popup in the lower box that alerts you when saving, etc.
The max chunks may just be background info for now and be in my focus of v2.1.25. I would like to get 2.1.24 out and get feedback on any remaining issues. Just 1 or 2 more things I want to append first.
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: JacksonCougar's Converted Entity Plugins

Post by troymac1ure »

Wow. I just checked SCNR tag on elongation => 52,956 bytes
I just ran XZodia's SCNR plugin parsed => 51,895 bytes (a loss of 1,061 bytes)
I just ran your converted plugin => 52,593 bytes (a loss of 3 bytes)

Most like the 'lost' bytes are padding. There is a whole reflexive that was missing at offset 656, which interestingly contains a field called "BSP Checksum". Perfect plugins may be a reality?

EDIT:
Adding these padding alignments creates a perfect SCNR plugin on Elongation. Still some issues on other maps, but it's getting very close. I need to find a map with more than 1 scneraio_kill_trigger to see if it's pad aligned to 4 bytes or if it's actually an int, not a short.

Code: Select all

<struct name="Script String Data" offset="432" size="1" padalign="4">
<struct name="scenario_kill_trigger_volumes_block [max#256]" offset="560" size="2" padalign="4">
EDIT2:
Also, now perfect on Zanzibar, Cyclotron, Coagulation, Foundation. Still has size differences on ascension & highplains. Anyways, more than time for sleep...
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

I knew there were a few issue with it still: haven't quite finished my tag analyzer. But good to know it was close :p if you happen to make any changes to the sizes lemme know so I can add them into the pre-processes. Edit; and it's worth mentioning that every array is padded to a minimum of 4 bytes (but not the elements—you can have an array of bytes of shorts for example that will be contiguous but if the length of the total array is not a multiple of 4 bytes it will be padded)...
User avatar
CaptainPoopface
Posts: 714
Joined: Sat Feb 16, 2008 5:47 am

Re: JacksonCougar's Converted Entity Plugins

Post by CaptainPoopface »

Highplains has the most death zones of any map, since it was made last, after super bouncing had proliferated. Bungie didn't want people to camp in all the nooks and crannies on that map. Ascension has maybe half a dozen. So I'd believe the death zones are where the discrepancies are if the no-death-zone maps look right.
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: JacksonCougar's Converted Entity Plugins

Post by troymac1ure »

I tracked down the extra bytes in Ascension, but not sure of the fix. It seems to have 2 bytes thrown in at the end of Offset 920/Offset 16 ("Level Data\Multiplayer" in XZodia's plugins), but I believe it messed stuff up when I added that in. I need to check again.
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: JacksonCougar's Converted Entity Plugins

Post by troymac1ure »

Okay, this is the correct value:

Code: Select all

<struct name="Script String Data" offset="432" size="1" padalign="2">
Partially, I was thrown off by colossus, which *had* 2 scenario_kill_triggers, but they removed one of the chunks and left the data in. If you change the count to 2, the second trigger value is -1.
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

There's still many more issues :D I'm having a bit of a slug trying to get my analyzer working, but I see at least 4-6 other issues so far in the single_player_maps
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

slight update
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

biped: I don't know if anything new compared to xzodias version (fixed enums though)

Code: Select all

results:
Begin (00a_introduction)
Tag (objects\characters\brute\tartarus\brute_tartarus)
Tag (objects\characters\brute\brute)
Tag (objects\characters\elite\elite)
Tag (objects\characters\prophet\mercy\prophet_mercy)
Tag (objects\characters\prophet\truth\prophet_truth)
Tag (objects\characters\prophet\prophet_minor)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\marine\marine)
Tag (objects\characters\prophet\regret_holo\regret_holo)
Begin (01a_tutorial)
Tag (objects\characters\marine\marine)
Tag (objects\characters\marine\crewman\crewman)
Tag (objects\characters\marine\marine_massive)
Tag (objects\characters\masterchief\masterchief)
Begin (01b_spacestation)
Tag (objects\characters\elite\elite)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\marine\marine)
Tag (objects\characters\bugger\bugger)
Tag (objects\characters\marine\marine_female\marine_female)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\elite\elite_ranger\elite_ranger)
Tag (objects\characters\cortana\cortana)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\lord_hood\lord_hood)
Tag (objects\characters\brute\brute)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\hunter\hunter)
Tag (objects\characters\dervish\dervish)
Begin (03a_oldmombasa)
Tag (objects\characters\marine\marine)
Tag (objects\characters\elite\elite)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\bugger\bugger)
Tag (objects\characters\hunter\hunter)
Begin (03b_newmombasa)
Tag (objects\characters\marine\marine)
Tag (objects\characters\elite\elite)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\marine\marine_female\marine_female)
Tag (objects\characters\marine\crewman\crewman)
Tag (objects\characters\lord_hood\lord_hood)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\jackal\jackal)
Begin (04a_gasgiant)
Tag (objects\characters\heretic\heretic)
Tag (objects\characters\elite\elite)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\dervish\dervish)
Tag (objects\characters\brute\brute)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\prophet\truth\prophet_truth)
Tag (objects\characters\prophet\mercy\prophet_mercy)
Tag (objects\characters\heretic\heretic_leader\heretic_leader_hologram_cinematic)
Tag (objects\characters\sentinel_aggressor\sentinel_aggressor)
Tag (objects\characters\sentinel_aggressor\sentinel_aggressor_halo1)
Tag (objects\characters\heretic\heretic_leader\heretic_leader)
Tag (objects\characters\heretic_grunt\heretic_grunt)
Tag (objects\characters\masterchief\masterchief)
Begin (04b_floodlab)
Tag (objects\characters\heretic\heretic)
Tag (objects\characters\elite\elite)
Tag (objects\characters\brute\brute)
Tag (objects\characters\dervish\dervish)
Tag (objects\characters\monitor\monitor)
Tag (objects\characters\floodcombat_elite\floodcombat_elite)
Tag (objects\characters\heretic_grunt\heretic_grunt)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\heretic\heretic_leader\heretic_leader)
Tag (objects\characters\heretic\heretic_leader\heretic_leader_hologram)
Tag (objects\characters\sentinel_aggressor\sentinel_aggressor)
Tag (objects\characters\sentinel_aggressor\sentinel_aggressor_halo1)
Tag (objects\characters\floodcarrier\floodcarrier)
Tag (objects\characters\masterchief\masterchief)
Begin (05a_deltaapproach)
Tag (objects\characters\marine\marine)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\marine\crewman\crewman)
Tag (objects\characters\prophet\regret_holo\regret_holo)
Tag (objects\characters\elite\elite)
Tag (objects\characters\bugger\bugger)
Tag (objects\characters\marine\marine_female\marine_female)
Tag (objects\characters\elite\elite_ranger\elite_ranger)
Begin (05b_deltatowers)
Tag (objects\characters\cortana\cortana)
Tag (objects\characters\elite\elite)
Tag (objects\characters\hunter\hunter)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\marine\marine)
Tag (objects\characters\prophet\regret_holo\regret_holo)
Tag (objects\characters\prophet\regret\prophet_regret)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\bugger\bugger)
Tag (objects\characters\marine\marine_female\marine_female)
Tag (objects\characters\elite\elite_ranger\elite_ranger)
Begin (06a_sentinelwalls)
Tag (objects\characters\dervish\dervish)
Tag (objects\characters\elite\elite)
Tag (objects\characters\marine\marine)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\brute\brute)
Tag (objects\characters\monitor\monitor)
Tag (objects\characters\floodcombat_elite\floodcombat_elite)
Tag (objects\characters\prophet\truth\prophet_truth)
Tag (objects\characters\prophet\mercy\prophet_mercy)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\sentinel_constructor\sentinel_constructor)
Tag (objects\characters\sentinel_aggressor\sentinel_aggressor)
Tag (objects\characters\floodcombat_human\floodcombat_human)
Tag (objects\characters\floodcarrier\floodcarrier)
Tag (objects\characters\masterchief\masterchief)
Begin (06b_floodzone)
Tag (objects\characters\marine\marine)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\brute\brute)
Tag (objects\characters\dervish\dervish)
Tag (objects\characters\floodcombat_elite\floodcombat_elite)
Tag (objects\characters\floodcombat_human\floodcombat_human)
Tag (objects\characters\sentinel_aggressor\sentinel_aggressor)
Tag (objects\characters\elite\elite)
Tag (objects\characters\floodcarrier\floodcarrier)
Tag (objects\characters\masterchief\masterchief)
Begin (07a_highcharity)
Tag (objects\characters\brute\brute)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\prophet\prophet_minor)
Tag (objects\characters\bugger\bugger)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\prophet\truth\prophet_truth)
Tag (objects\characters\prophet\mercy\prophet_mercy)
Tag (objects\characters\cortana\cortana)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\marine\marine)
Tag (objects\characters\monitor\monitor)
Tag (objects\characters\dervish\dervish)
Tag (objects\characters\flood_infection\flood_infection)
Tag (objects\characters\gravemind\monitor_flood_infected\monitor_flood_infected)
Tag (objects\characters\elite\elite)
Tag (objects\characters\hunter\hunter)
Tag (objects\characters\gravemind\gravemind)
Tag (objects\characters\gravemind\floodregret\floodregret)
Tag (objects\characters\elite\elite_ranger\elite_ranger)
Begin (07b_forerunnership)
Tag (objects\characters\brute\brute)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\cortana\cortana)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\prophet\mercy\prophet_mercy)
Tag (objects\characters\flood_infection\flood_infection)
Tag (objects\characters\floodcombat_elite\floodcombat_elite)
Tag (objects\characters\floodcombat_human\floodcombat_human)
Tag (objects\characters\elite\elite)
Tag (objects\characters\flood_juggernaut\flood_juggernaut)
Tag (objects\characters\floodcarrier\floodcarrier)
Tag (objects\characters\bugger\bugger)
Begin (08a_deltacliffs)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\elite\elite)
Tag (objects\characters\brute\brute)
Tag (objects\characters\hunter\hunter)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\dervish\dervish)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\monitor\monitor)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\bugger\bugger)
Begin (08b_deltacontrol)
Tag (objects\characters\brute\brute)
Tag (objects\characters\hunter\hunter)
Tag (objects\characters\marine\marine)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\dervish\dervish)
Tag (objects\characters\monitor\monitor)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\elite\elite)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\lord_hood\lord_hood)
Tag (objects\characters\cortana\cortana)
Tag (objects\characters\brute\tartarus\brute_tartarus)
Tag (objects\characters\marine\marine_massive)
Tag (objects\characters\bugger\bugger)
Begin (ascension)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (beavercreek)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (burial_mounds)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (coagulation)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (colossus)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (cyclotron)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (foundation)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (headlong)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (lockout)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (midship)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (waterworks)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (zanzibar)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\elite\elite)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (mainmenu)
Tag (scenarios\ui\mainmenu\alpha_temp\alpha_masterchief)
Tag (scenarios\ui\mainmenu\alpha_temp\alpha_elite)
Tag (objects\characters\masterchief\masterchief)
Begin (shared)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\elite\elite)
Tag (objects\characters\dervish\dervish)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
Begin (single_player_shared)
Tag (objects\characters\masterchief\masterchief)
Tag (objects\characters\elite\elite)
Tag (objects\characters\marine\marine)
Tag (objects\characters\grunt\grunt)
Tag (objects\characters\jackal\jackal)
Tag (objects\characters\brute\brute)
Tag (objects\characters\hunter\hunter)
Tag (objects\characters\dervish\dervish)
Tag (objects\characters\floodcarrier\floodcarrier)
Tag (objects\characters\floodcombat_elite\floodcombat_elite)
Tag (objects\characters\floodcombat_human\floodcombat_human)
Tag (objects\characters\bugger\bugger)
Tag (objects\characters\monitor\monitor)
Tag (objects\characters\prophet\mercy\prophet_mercy)
Tag (objects\characters\prophet\truth\prophet_truth)
Tag (objects\characters\miranda\miranda)
Tag (objects\characters\masterchief\masterchief_mp)
Tag (objects\characters\elite\elite_mp)
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: JacksonCougar's Converted Entity Plugins

Post by troymac1ure »

I like that the bipd contains the new "description" attribute. Just finished the code for the extra info and tried this. Works great.

I like these two descriptive texts:

Code: Select all

<float name="Planar Min Distance Bias:World Units" description="Don't ask." offset="88" />
<float name="Ping Scale" description="nathan is too lazy to make pings for each seat." offset="28" />
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

troymac1ure wrote:I like that the bipd contains the new "description" attribute. Just finished the code for the extra info and tried this. Works great.

I like these two descriptive texts:

Code: Select all

<float name="Planar Min Distance Bias:World Units" description="Don't ask." offset="88" />
<float name="Ping Scale" description="nathan is too lazy to make pings for each seat." offset="28" />
I could rip out the min and max values but I'm not sure it would be worth it really... And while we're on the topic can you make something that displays just text? Because there are literally field_description values that are their own strings. I'm thinking about using <unused size = 0 description="blah...." .../> to dump them but I bet entity shits the bed :}
User avatar
CaptainPoopface
Posts: 714
Joined: Sat Feb 16, 2008 5:47 am

Re: JacksonCougar's Converted Entity Plugins

Post by CaptainPoopface »

Just out of curiosity, how do you know when a plugin is "correct", other than the number of bytes?
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: JacksonCougar's Converted Entity Plugins

Post by troymac1ure »

JacksonCougar wrote: I could rip out the min and max values but I'm not sure it would be worth it really... And while we're on the topic can you make something that displays just text? Because there are literally field_description values that are their own strings. I'm thinking about using <unused size = 0 description="blah...." .../> to dump them but I bet entity shits the bed :}
I would have to double check, but it may actually be okay (at least ME2) although you may need to supply a dummy name as well. You can either do the above or I can add a field_description value. If the above works without screwing up older versions, your method may be the way to go.

CaptainPoopface wrote:Just out of curiosity, how do you know when a plugin is "correct", other than the number of bytes?
For me, Clicking parsed on/off and watch the size of the tag. Parsed calculates the size by adding up each field size within the tag, so if it doesn't change then all data within that tag is being accounted for. Unfortunately I have run into at least one tag where these would never match up due to last minute changes on Bungie's part, such as:
troymac1ure wrote: Partially, I was thrown off by colossus, which *had* 2 scenario_kill_triggers, but they removed one of the chunks and left the data in. If you change the count to 2, the second trigger value is -1.
The reflexive information was there, but instead of rebuilding the tag, they just changed the count from 2 to 1, leaving ghost data within the tag. I'm sure that this isn't the only place this ever happened.

If sizes differ, then likely a reflexive is being missed or sized improperly, the above is true or padding needs to be set for a certain field/reflexive.
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

CaptainPoopface wrote:Just out of curiosity, how do you know when a plugin is "correct", other than the number of bytes?
Right now I only validate pointers, so I do this:
I keep a pointer address of where I expect the next pointer to start. That value is shifted to accommodate the block's alignment. Then if the pointer does not meet with the address I expect I log it. There's some more to it but that's the gist. I check the pointers to see if they are valid a number of ways as well and log those errors, then I also check to see if memory has been allocated before (internally shared), or if it's been partially allocated before (this usually indicates a problem with the size of a block) and log any overlaps. I have a number of things I want to implement still: mainly validating shared memory in tags and between tags. I'm also tossing the idea of validating every value against the suggested values in the layouts and using that to come up with a default value for every field (which I'll need/find useful for moonfish).

So right now when I call a tag 'perfect' I am talking only about the structure of the plugin not necessarily the fields themselves. But I look at fields in a few maps before uploading them here and the values seem rational to the fields they represent.
User avatar
JacksonCougar
Huurcat
Posts: 2460
Joined: Thu Dec 06, 2007 11:30 pm
Location: Somewhere in Canada

Re: JacksonCougar's Converted Entity Plugins

Post by JacksonCougar »

Okay, I'm moving onto other things with my code for a while so I'm releasing these items for you guys to prod and poke. Check the main post.
User avatar
CaptainPoopface
Posts: 714
Joined: Sat Feb 16, 2008 5:47 am

Re: JacksonCougar's Converted Entity Plugins

Post by CaptainPoopface »

Thank you! I'll be taking a look at these, although some of them I never touch. Here they are as a zip file, to save time on the download process.
Attachments
JacksonCougarPlugins20140907.zip
Includes jmad
(204.99 KiB) Downloaded 483 times
User avatar
CaptainPoopface
Posts: 714
Joined: Sat Feb 16, 2008 5:47 am

Re: JacksonCougar's Converted Entity Plugins

Post by CaptainPoopface »

These plugins show an error in Entity 2.1.24:
sbsp (error w ident at offset 12 - in the meta editor, looks like goofy characters in what should be a tag type enum)
trak (object ref not set to instance of object)

I haven't run into any other problems as of yet. I love reading the descriptive comments when they are available. It's really helpful when the field description isn't quite what you would intuitively expect, as well as when it provides upper and lower bounds for a value.
Post Reply