johnnylump Posted February 7, 2013 Author Share Posted February 7, 2013 When is a class' INIT function called? Only at the game start? On loading? PLEASE prove me wrong, but I think UpdateShips() is only called from XGItemTree's Init function. If so, this wouldn't work. (Or, weirdly, only after you reload a game.) I haven't been following this discussion, so I'm not sure if this is what you mean or if it will be useful... :) It looks like the XGItemTree > Init() function is called from XGFacility_Engineering > Init(), which is called from XGHeadQuaters > CreateFacilities(). XGFacility_Engineering function Init(bool bLoadingFromSave) { BaseInit(); m_kItems = Spawn(class'XGItemTree'); m_kItems.Init(); // End:0x6a if(m_arrMusingTracker.Length == 0) { m_arrMusingTracker.Add(6); } } UpdateShips() is called from XGItemTree > Init() > BuildShips() as you mentioned, but it's also called from XGStrategy > ChangeDifficulty(). There's a different UpdateShips() function in XGGeoscape as well, which I think is only called from XGGeoscape > GameTick(). :) Thanks for these; I'll check them out. Remains unclear if they are consistently called, or only at start game, game load times, or periodically during play. Link to comment Share on other sites More sharing options...
johnnylump Posted February 9, 2013 Author Share Posted February 9, 2013 (edited) Help! I've rewritten DealSplashDamage to randomize explosives damage (I hope). I saved some bytes in a couple of places and before I added anything, I tested the more-efficient function successfully ingame. But, when I added the new functionality 87 35 3a fa ff ff 58 f9 ff ff 00 01 00 e8 6a 00 00 a7 2c 03 16 ProjDamage.DamageAmount += Rand(3); The game no longer runs -- I get the same crash as if the virtual size was wrong (Windows looking for error, etc). But the Virtual Size is correct! (That is, it is one more than the endofscript line number in UE Explorer.) Any ideas what rule I'm breaking? This is the entire modified function, upk XComGame, class DealSplashDamage: simulated function bool DealSplashDamage(Actor InstigatedByActor, float DamageAmount, float InDamageRadius, class<DamageType> DamageType, float Momentum, Vector HurtOrigin) { local bool bCausedDamage; local DamageEvent ProjDamage; local int NumFires, OutFireIntensity, FireIndex; // End:0x21 if(HACK_bMindMergeDeathProjectile && XComProjectile_Ranged(self) != none) { return false; } ProjDamage.EventInstigator = m_kFiredFromUnit; ProjDamage.DamageCauser = self; ProjDamage.Target = ImpactedActor; ProjDamage.DamageAmount = int(DamageAmount); ProjDamage.DamageAmount += Rand(3); ProjDamage.Radius = InDamageRadius; ProjDamage.DamageType = DamageType; ProjDamage.Momentum = Velocity; ProjDamage.HitLocation = HurtOrigin; ProjDamage.bIsHit = bIsHit; ProjDamage.HitInfo = TracedImpactInfo; ProjDamage.bRadialDamage = InDamageRadius > float(0); ProjDamage.bCausesSurroundingAreaDamage = class'XComDamageType'.static.CausesSurroundingAreaDamage(DamageType); ProjDamage_ProcessIgnoredActors(ProjDamage); bCausedDamage = class'XComDamageType'.static.DealDamage(ProjDamage); bHurtEntry = false; // End:0x503 if((((Role == ROLE_Authority) && class'XComWorldData'.static.GetWorldData().IsRebuildingTiles()) && class'XComDamageType'.static.DamageTypeSetsFires(DamageType, self, OutFireIntensity)) && class'XComWorldData'.static.GetWorldData().PotentialFireColumns.Length > 0) { FireIndex = int(InDamageRadius / 96.0); J0x366: // End:0x503 [Loop If] if(FireIndex > -1) { XComTacticalGRI(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kBattle.m_kVolumeMgr.CreateVolumeByType(3, class'XComWorldData'.static.GetWorldData().PotentialFireColumns[class'XComEngine'.static.SyncRand(class'XComWorldData'.static.GetWorldData().PotentialFireColumns.Length, (string(Name) @ string(GetStateName())) @ string(GetFuncName()))], 48.0, 96.0, OutFireIntensity); class'XComWorldData'.static.GetWorldData().PotentialFireColumns.Remove(FireIndex, 1); -- FireIndex; // [Loop Continue] goto J0x366; } } return bCausedDamage; //return ReturnValue; } Edited February 9, 2013 by johnnylump Link to comment Share on other sites More sharing options...
bokauk Posted February 9, 2013 Share Posted February 9, 2013 Any ideas what rule I'm breaking?Without seeing the bytecode for the entire function, it's hard to pinpoint what the problem is because sometimes even if the decompiled script looks exactly the same as the original, there can be differences in the bytecode causing issues. 1. Does the problem still occur without making the other changes near the bottom?FireIndex = int(InDamageRadius / 96.0);etc. 2. Can you get it to work by temporarily substituting Rand(3) with something else?ProjDamage.DamageAmount += 3; // (or an int variable)3. Does it work if you temporarily remove the if statements at the bottom? Adjust the VS in each case as necessary. Find out what works and what doesn't to help narrow down the possible causes :) Link to comment Share on other sites More sharing options...
johnnylump Posted February 9, 2013 Author Share Posted February 9, 2013 (edited) Any ideas what rule I'm breaking?Without seeing the bytecode for the entire function, it's hard to pinpoint what the problem is because sometimes even if the decompiled script looks exactly the same as the original, there can be differences in the bytecode causing issues. Thank you for giving this a look. Because you asked for it :) Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F 00000000 02 6B 00 00 50 55 00 00 00 00 00 00 E4 6A 00 00 . k . . P U . . . . . . . j . . 00000010 00 00 00 00 00 00 00 00 F0 6A 00 00 00 00 00 00 . . . . . . . . . j . . . . . . 00000020 FE 04 00 00 77 AB 00 00 19 05 00 00 65 03 00 00 . . . . w . . . . . . . e . . . 00000030 07 21 00 82 2D 01 60 6A 00 00 18 0E 00 77 2E EE . ! . . - . ` j . . . . . w . . 00000040 6B 00 00 17 2A 16 16 04 28 0F 35 F3 F9 FF FF 58 k . . . * . . . ( . 5 . . . . X 00000050 F9 FF FF 00 01 00 E8 6A 00 00 01 3B 6A 00 00 0F . . . . . . . j . . . ; j . . . 00000060 35 F4 F9 FF FF 58 F9 FF FF 00 01 00 E8 6A 00 00 5 . . . . X . . . . . . . j . . 00000070 17 0F 35 F2 F9 FF FF 58 F9 FF FF 00 01 00 E8 6A . . 5 . . . . X . . . . . . . j 00000080 00 00 01 B0 F9 FF FF 0F 35 3A FA FF FF 58 F9 FF . . . . . . . . 5 : . . . X . . 00000090 FF 00 01 00 E8 6A 00 00 38 44 00 EF 6A 00 00 87 . . . . . j . . 8 D . . j . . . 000000A0 35 3A FA FF FF 58 F9 FF FF 00 01 00 E8 6A 00 00 5 : . . . X . . . . . . . j . . 000000B0 A7 2C 03 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0F 35 . , . . . . . . . . . . . . . 5 000000C0 16 FD FF FF 58 F9 FF FF 00 01 00 E8 6A 00 00 00 . . . . X . . . . . . . j . . . 000000D0 EE 6A 00 00 0F 35 71 FD FF FF 58 F9 FF FF 00 01 . j . . . 5 q . . . X . . . . . 000000E0 00 E8 6A 00 00 00 ED 6A 00 00 0F 35 E1 F8 FF FF . . j . . . . j . . . 5 . . . . 000000F0 58 F9 FF FF 00 01 00 E8 6A 00 00 01 DC F8 FF FF X . . . . . . . j . . . . . . . 00000100 0F 35 E2 F8 FF FF 58 F9 FF FF 00 01 00 E8 6A 00 . 5 . . . . X . . . . . . . j . 00000110 00 00 EB 6A 00 00 14 2D 35 B3 FF FF FF 58 F9 FF . . . j . . . - 5 . . . . X . . 00000120 FF 00 01 00 E8 6A 00 00 2D 01 70 6A 00 00 0F 35 . . . . . j . . - . p j . . . 5 00000130 E3 F8 FF FF 58 F9 FF FF 00 01 00 E8 6A 00 00 01 . . . . X . . . . . . . j . . . 00000140 3F 6A 00 00 14 2D 35 B2 FF FF FF 58 F9 FF FF 00 ? j . . . - 5 . . . . X . . . . 00000150 01 00 E8 6A 00 00 B1 00 EE 6A 00 00 38 3F 25 16 . . . j . . . . . j . . 8 ? % . 00000160 14 2D 35 B5 FF FF FF 58 F9 FF FF 00 01 00 E8 6A . - 5 . . . . X . . . . . . . j 00000170 00 00 12 20 5C 4A 00 00 13 00 38 4A 00 00 00 1B . . . \ J . . . . 8 J . . . . 00000180 BC 0F 00 00 00 00 00 00 00 ED 6A 00 00 16 1B 06 . . . . . . . . . . j . . . . . 00000190 5B 00 00 00 00 00 00 00 E8 6A 00 00 16 14 2D 00 [ . . . . . . . . j . . . . - . 000001A0 E9 6A 00 00 12 20 5C 4A 00 00 13 00 41 4A 00 00 . j . . . \ J . . . . A J . . 000001B0 00 1C 43 4A 00 00 00 E8 6A 00 00 16 14 2D 01 C1 . . C J . . . . j . . . . - . . 000001C0 FF FF FF 28 07 03 05 82 82 82 9A 38 3A 01 C1 FE . . . ( . . . . . . . 8 : . . . 000001D0 FF FF 38 3A 24 03 16 18 36 00 19 12 20 35 55 00 . . 8 : $ . . . 6 . . . 5 U . 000001E0 00 0A 00 20 55 00 00 00 1B 6F 35 00 00 00 00 00 . . . U . . . . o 5 . . . . . 000001F0 00 16 0A 00 11 55 00 00 00 1B 36 3E 00 00 00 00 . . . . . U . . . . 6 > . . . . 00000200 00 00 16 16 18 33 00 12 20 5C 4A 00 00 1D 00 3C . . . . . 3 . . \ J . . . . < 00000210 4A 00 00 00 1B 36 14 00 00 00 00 00 00 00 ED 6A J . . . . 6 . . . . . . . . . j 00000220 00 00 17 00 E6 6A 00 00 16 16 18 39 00 97 36 19 . . . . . j . . . . . 9 . . 6 . 00000230 12 20 35 55 00 00 0A 00 20 55 00 00 00 1B 6F 35 . 5 U . . . . U . . . . o 5 00000240 00 00 00 00 00 00 16 09 00 AC 0B 00 00 00 01 AC . . . . . . . . . . . . . . . . 00000250 0B 00 00 25 16 16 0F 00 E5 6A 00 00 38 44 AC 00 . . . % . . . . . j . . 8 D . . 00000260 EE 6A 00 00 1E 00 00 C0 42 16 07 03 05 97 00 E5 . j . . . . . . B . . . . . . . 00000270 6A 00 00 1D FF FF FF FF 16 19 19 19 2E 64 2D 00 j . . . . . . . . . . . . d - . 00000280 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C . . . O . . . . . . . . . . . 00000290 F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF . . . . . . . . . . . . . . . . 000002A0 FF 09 00 71 2D 00 00 00 01 71 2D 00 00 09 00 7A . . . q - . . . . q - . . . . z 000002B0 9C 00 00 00 01 7A 9C 00 00 D7 00 D4 B8 00 00 00 . . . . . z . . . . . . . . . . 000002C0 1B 70 13 00 00 00 00 00 00 24 03 10 12 20 BC 4D . p . . . . . . . $ . . . . M 000002D0 00 00 5F 00 6B 4D 00 00 00 1C 6E 4D 00 00 36 19 . . _ . k M . . . . n M . . 6 . 000002E0 12 20 35 55 00 00 0A 00 20 55 00 00 00 1B 6F 35 . 5 U . . . . U . . . . o 5 000002F0 00 00 00 00 00 00 16 09 00 AC 0B 00 00 00 01 AC . . . . . . . . . . . . . . . . 00000300 0B 00 00 A8 A8 38 57 01 04 FA FF FF 38 57 61 1C . . . . . 8 W . . . . . 8 W a . 00000310 16 16 38 57 1C B5 FC FF FF 16 16 16 19 12 20 35 . . 8 W . . . . . . . . . . 5 00000320 55 00 00 0A 00 20 55 00 00 00 1B 6F 35 00 00 00 U . . . . U . . . . o 5 . . . 00000330 00 00 00 16 09 00 AC 0B 00 00 00 01 AC 0B 00 00 . . . . . . . . . . . . . . . . 00000340 1E 00 00 40 42 1E 00 00 C0 42 00 E6 6A 00 00 4A . . . @ B . . . . B . . j . . J 00000350 16 40 19 12 20 35 55 00 00 0A 00 20 55 00 00 00 . @ . . 5 U . . . . U . . . 00000360 1B 6F 35 00 00 00 00 00 00 16 09 00 AC 0B 00 00 . o 5 . . . . . . . . . . . . . 00000370 00 01 AC 0B 00 00 00 E5 6A 00 00 26 16 A4 00 E5 . . . . . . . . j . . & . . . . 00000380 6A 00 00 16 06 66 03 04 2D 00 E9 6A 00 00 04 3A j . . . . f . . - . . j . . . : 00000390 EA 6A 00 00 53 00 00 00 02 01 82 00 69 14 00 00 . j . . S . . . . . . . i . . . 000003A0 00 00 00 00 . . . . To orient yourself, all the 0bs come right after the Rand(3) line. 1. Does the problem still occur without making the other changes near the bottom?FireIndex = int(InDamageRadius / 96.0);etc. No. If I 0b-out ProjDamage.DamageAmount += 3, correct the jumps and virtual size, the function works fine and does what it appears it is supposed to do ingame; that is, explosives do damage and start fires. 2. Can you get it to work by temporarily substituting Rand(3) with something else?ProjDamage.DamageAmount += 3; // (or an int variable) No -- I've tried variations with no Rand statements, just simple ints, and it still didn't work. 3. Does it work if you temporarily remove the if statements at the bottom? I haven't tried that. What would that tell us? Adjust the VS in each case as necessary. Find out what works and what doesn't to help narrow down the possible causes :) My guess is there is some rule about affecting ProjDamage, but I don't know what it is. A previous version of this had tried to implement the change this way: ProjDamage.DamageAmount = int(DamageAmount) + Rand (3); but that also caused a startup crash. One guess is that I'm using the wrong "+=" (and wrong "+" in the older version). There's about five options in the bytecode table. I haven't done any trial and error on that because it seems like a low probability. I don't know if there is any meaningful difference between those options. Because I now have a spare local variable (NumFires), I'm going to try to use that as an intermediate variable: NumFires = int(DamageAmount) + Rand(3)ProjDamage.DamageAmount = NumFires Edited February 9, 2013 by johnnylump Link to comment Share on other sites More sharing options...
johnnylump Posted February 9, 2013 Author Share Posted February 9, 2013 (edited) Growing evidence it's in the bytes that handle the math causing the problem 0f 00 e7 6a 00 00 26 NumFires=1 works but replacing first byte (=) with87 or a1 or b8 or df or 3e -- the five bytes that can mean += in the bytecode chartand which all decompile asNumFires+=1 crashes on startup Edited February 9, 2013 by johnnylump Link to comment Share on other sites More sharing options...
bokauk Posted February 9, 2013 Share Posted February 9, 2013 Try this :)ProjDamage.DamageAmount += Rand(3);A1 35 3A FA FF FF 58 F9 FF FF 00 01 00 E8 6A 00 00 A7 2C 03 16 16 0B 0B Link to comment Share on other sites More sharing options...
johnnylump Posted February 9, 2013 Author Share Posted February 9, 2013 (edited) Thanks ... I just got to a point where I could test the function, and it doesn't appear to impact grenade or rocket damage. Maybe it's exploding cars or Sectopod cannon spread damage. Or possibly the damage values are overwritten in the native function DealDamage. Doh. Back to the labs ... Edited February 9, 2013 by johnnylump Link to comment Share on other sites More sharing options...
bokauk Posted February 9, 2013 Share Posted February 9, 2013 (edited) Thanks ... I just got to a point where I could test the function, and it doesn't appear to impact grenade or rocket damage. Maybe it's exploding cars or Sectopod cannon spread damage. Or possibly the damage values are overwritten in the native function DealDamage. Doh. Back to the labs ...Damn, I hate it when that happens. It seems like about 95% of the time I spend on things are either a dead end or don't work! :wallbash: I just had a quick look into that function though and it is called from XComProjectile_FragGrenade > Explode, so it looks like the right place. Are you certain that function has no effect? How about if you delete the contents of the function and just return true/false; is no damage done? Another idea might be to look into XComProjectile_FragGrenade > ProcessTouch :) Edited February 9, 2013 by bokauk Link to comment Share on other sites More sharing options...
johnnylump Posted February 9, 2013 Author Share Posted February 9, 2013 (edited) Thanks ... I just got to a point where I could test the function, and it doesn't appear to impact grenade or rocket damage. Maybe it's exploding cars or Sectopod cannon spread damage. Or possibly the damage values are overwritten in the native function DealDamage. Doh. Back to the labs ...Damn, I hate it when that happens. It seems like about 95% of the time I spend on things are either a dead end or don't work! :wallbash: I just had a quick look into that function though and it is called from XComProjectile_FragGrenade > Explode, so it looks like the right place. Are you certain that function has no effect? How about if you delete the contents of the function and just return true/false; is no damage done? Another idea might be to look into XComProjectile_FragGrenade > ProcessTouch :) Thanks for your sympathy. :) It does *seem* like it should work. I've tested with rockets, alien grenades, frag grenades and exploding cars. The code that has no impact is NumFires = int(DamageAmount); NumFires = 1; ProjDamage.DamageAmount = NumFires; NumFires isn't used for anything else in the function. Only other thing I can think of is that NumFires = 1 (0F 00 e7 6a 00 00 2c 01) isn't coded correctly, but it shows up correctly in the decompiler. Haven't tried more drastic tests. I'll look at the other functions. Edited February 9, 2013 by johnnylump Link to comment Share on other sites More sharing options...
johnnylump Posted February 15, 2013 Author Share Posted February 15, 2013 (edited) OK, next up. I've been rewriting XComStrategyGame, class XGInterceptionEngagement, function UpdateWeapons, trying to insert a modifier that increases your interceptors' hit chances for every kill they have. I had a version that started the game but crashed at the beginning of an interception. This was the code for that version: I = iShip * m_arrInterceptors[0].m_iConfirmedKills; I *= 2; I += akShipWeapons[iWeapon].iToHit; // End:0x38E if(Rand(100) <= I) { kCombatExchange.bHit = true; kCombatExchange.iDamage = (GetShipDamage(akShipWeapons[iWeapon], kCombatExchange)) + Rand(100); } (I've also added something to randomize the damage a little) I thought the problem might be that m_arrInterceptors[0].m_iConfirmedKills; needed to be m_kInterception.m_arrInterceptors[0].m_iConfirmedKills as I found other references in the class to m_kInterception.m_arrInterceptors, so I added that in. Problem is now the game won't load at all. The two things I've seen that cause the game to not load are 1) wrong virtual size and 2) missing endparams(bytecode 16) -- and sometimes the missing endparams are not obvious in UExplorer. However, I think I got those right here. Anyway, here's the entire function: function UpdateWeapons(float fDeltaT) { local CombatExchange kCombatExchange; local array<TShipWeapon> akShipWeapons; local array<CombatExchange> akCombatExchange; local XGShip kShip; local int iShip, iWeapon, I; iShip = 0; J0x0B: // End:0x423 [Loop If] if(iShip < (GetNumShips())) { kShip = GetShip(iShip); kShip.UpdateWeapons(fDeltaT); // End:0x83 if(!IsAnyWeaponInRange(iShip)) { } // End:0x415 else { akShipWeapons = kShip.GetWeapons(); iWeapon = 0; J0xB7: // End:0x415 [Loop If] if(iWeapon < akShipWeapons.Length) { // End:0x103 if(akShipWeapons[iWeapon].eType == 0) { } // End:0x3FF else { // End:0x138 if(kShip.m_afWeaponCooldown[iWeapon] > 0.0) { } // End:0x407 else { kShip.m_afWeaponCooldown[iWeapon] += akShipWeapons[iWeapon].fFiringTime; kCombatExchange.iSourceShip = iShip; kCombatExchange.iWeapon = iWeapon; // End:0x245 if(iShip == 0) { // End:0x224 if(!IsShipDead(m_iUFOTarget)) { kCombatExchange.iTargetShip = m_iUFOTarget; } // End:0x242 else { kCombatExchange.iTargetShip = 1; } } // End:0x263 else { kCombatExchange.iTargetShip = 0; } I = iShip * m_kInterception.m_arrInterceptors[0].m_iConfirmedKills; I *= 2; I += akShipWeapons[iWeapon].iToHit; // End:0x38E if(Rand(100) <= I) { kCombatExchange.bHit = true; kCombatExchange.iDamage = (GetShipDamage(akShipWeapons[iWeapon], kCombatExchange)) + Rand(100); } // End:0x3CB else { kCombatExchange.bHit = false; kCombatExchange.iDamage = 0; } kCombatExchange.fTime = m_fTimeElapsed; akCombatExchange.AddItem(kCombatExchange); } } // [Loop Continue] iWeapon ++ ); } } // [Loop Continue] iShip ++ ); } I = 0; J0x42E: // End:0x56B [Loop If] if(I < akCombatExchange.Length) { // End:0x4A8 if(akCombatExchange[I].iSourceShip == 0) { m_kCombat.m_aUFOExchanges.AddItem(akCombatExchange[I]); } // End:0x4DB else { m_kCombat.m_aInterceptorExchanges.AddItem(akCombatExchange[I]); } // End:0x55D if(akCombatExchange[I].bHit) { m_aiShipHP[akCombatExchange[I].iTargetShip] -= akCombatExchange[I].iDamage; } // [Loop Continue] I ++ ); } //return; } And here's the bytecode: Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F 00000000 30 34 00 00 AB 1F 00 00 00 00 00 00 26 34 00 00 0 4 . . . . . . . . . . & 4 . . 00000010 00 00 00 00 00 00 00 00 30 34 00 00 00 00 00 00 . . . . . . . . 0 4 . . . . . . 00000020 A1 00 00 00 FA 11 00 00 6E 05 00 00 96 03 00 00 . . . . . . . . n . . . . . . . 00000030 0F 00 2B 34 00 00 25 07 23 04 96 00 2B 34 00 00 . . + 4 . . % . # . . . + 4 . . 00000040 1B DF 0F 00 00 00 00 00 00 16 16 0F 00 2C 34 00 . . . . . . . . . . . . . , 4 . 00000050 00 1B 35 10 00 00 00 00 00 00 00 2B 34 00 00 16 . . 5 . . . . . . . . + 4 . . . 00000060 19 00 2C 34 00 00 13 00 00 00 00 00 00 1B 2C 2C . . , 4 . . . . . . . . . . , , 00000070 00 00 00 00 00 00 00 30 34 00 00 16 07 83 00 81 . . . . . . . 0 4 . . . . . . . 00000080 1B 14 14 00 00 00 00 00 00 00 2B 34 00 00 16 16 . . . . . . . . . . + 4 . . . . 00000090 06 15 04 0F 00 2E 34 00 00 19 00 2C 34 00 00 0A . . . . . . 4 . . . . , 4 . . . 000000A0 00 AE 3D 00 00 00 1B 91 10 00 00 00 00 00 00 16 . . = . . . . . . . . . . . . . 000000B0 0F 00 2A 34 00 00 25 07 15 04 96 00 2A 34 00 00 . . * 4 . . % . . . . . * 4 . . 000000C0 36 00 2E 34 00 00 16 07 03 01 9A 38 3A 35 A7 02 6 . . 4 . . . . . . . 8 : 5 . . 000000D0 00 00 A9 02 00 00 00 00 10 00 2A 34 00 00 00 2E . . . . . . . . . . * 4 . . . . 000000E0 34 00 00 38 3A 24 00 16 06 FF 03 07 38 01 B1 10 4 . . 8 : $ . . . . . . 8 . . . 000000F0 00 2A 34 00 00 19 00 2C 34 00 00 09 00 76 3D 00 . * 4 . . . . , 4 . . . . v = . 00000100 00 00 01 76 3D 00 00 1E 00 00 00 00 16 06 07 04 . . . v = . . . . . . . . . . . 00000110 B8 10 00 2A 34 00 00 19 00 2C 34 00 00 09 00 76 . . . * 4 . . . . , 4 . . . . v 00000120 3D 00 00 00 01 76 3D 00 00 35 A5 02 00 00 A9 02 = . . . . v = . . 5 . . . . . . 00000130 00 00 00 00 10 00 2A 34 00 00 00 2E 34 00 00 16 . . . . . . * 4 . . . . 4 . . . 00000140 0F 35 E3 0B 00 00 E4 0B 00 00 00 01 00 2F 34 00 . 5 . . . . . . . . . . . / 4 . 00000150 00 00 2B 34 00 00 0F 35 E2 0B 00 00 E4 0B 00 00 . . + 4 . . . 5 . . . . . . . . 00000160 00 01 00 2F 34 00 00 00 2A 34 00 00 07 45 02 9A . . . / 4 . . . * 4 . . . E . . 00000170 00 2B 34 00 00 25 16 07 24 02 81 1B C5 14 00 00 . + 4 . . % . . $ . . . . . . . 00000180 00 00 00 00 01 D4 0B 00 00 16 16 0F 35 E1 0B 00 . . . . . . . . . . . . 5 . . . 00000190 00 E4 0B 00 00 00 01 00 2F 34 00 00 01 D4 0B 00 . . . . . . . . / 4 . . . . . . 000001A0 00 06 42 02 0F 35 E1 0B 00 00 E4 0B 00 00 00 01 . . B . . 5 . . . . . . . . . . 000001B0 00 2F 34 00 00 26 06 63 02 0F 35 E1 0B 00 00 E4 . / 4 . . & . c . . 5 . . . . . 000001C0 0B 00 00 00 01 00 2F 34 00 00 25 0F 00 29 34 00 . . . . . . / 4 . . % . . ) 4 . 000001D0 00 90 00 2B 34 00 00 19 10 2C 00 19 01 DD 0B 00 . . . + 4 . . . . , . . . . . . 000001E0 00 09 00 EC 33 00 00 00 01 EC 33 00 00 09 00 0F . . . . 3 . . . . . 3 . . . . . 000001F0 E3 00 00 00 01 0F 3E 00 00 16 0B 0B 0B 0B 0B 0B . . . . . . > . . . . . . . . . 00000200 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B . . . . . . . . . . . . . . . . 00000210 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 85 . . . . . . . . . . . . . . . . 00000220 00 29 34 00 00 2C 02 16 87 00 29 34 00 00 35 A1 . ) 4 . . , . . . . ) 4 . . 5 . 00000230 02 00 00 A9 02 00 00 00 00 10 00 2A 34 00 00 00 . . . . . . . . . . . * 4 . . . 00000240 2E 34 00 00 16 07 8E 03 98 A7 2C 64 16 00 29 34 . 4 . . . . . . . . , d . . ) 4 00000250 00 00 16 14 2D 35 E0 0B 00 00 E4 0B 00 00 00 01 . . . . - 5 . . . . . . . . . . 00000260 00 2F 34 00 00 27 0F 35 DF 0B 00 00 E4 0B 00 00 . / 4 . . ' . 5 . . . . . . . . 00000270 00 01 00 2F 34 00 00 92 1B 36 10 00 00 00 00 00 . . . / 4 . . . . 6 . . . . . . 00000280 00 10 00 2A 34 00 00 00 2E 34 00 00 00 2F 34 00 . . . * 4 . . . . 4 . . . / 4 . 00000290 00 16 A7 2C 64 16 16 06 CB 03 14 2D 35 E0 0B 00 . . . , d . . . . . . - 5 . . . 000002A0 00 E4 0B 00 00 00 01 00 2F 34 00 00 28 0F 35 DF . . . . . . . . / 4 . . ( . 5 . 000002B0 0B 00 00 E4 0B 00 00 00 01 00 2F 34 00 00 25 0F . . . . . . . . . . / 4 . . % . 000002C0 35 DE 0B 00 00 E4 0B 00 00 00 01 00 2F 34 00 00 5 . . . . . . . . . . . / 4 . . 000002D0 01 D9 0B 00 00 55 00 2D 34 00 00 0A 00 00 2F 34 . . . . . U . - 4 . . . . . / 4 000002E0 00 00 16 A5 00 2A 34 00 00 16 06 B7 00 A5 00 2B . . . . . * 4 . . . . . . . . + 000002F0 34 00 00 16 06 0B 00 0F 00 29 34 00 00 25 07 6B 4 . . . . . . . . ) 4 . . % . k 00000300 05 96 00 29 34 00 00 36 00 2D 34 00 00 16 07 A8 . . . ) 4 . . 6 . - 4 . . . . . 00000310 04 9A 35 E3 0B 00 00 E4 0B 00 00 00 00 10 00 29 . . 5 . . . . . . . . . . . . ) 00000320 34 00 00 00 2D 34 00 00 25 16 55 35 CC 0B 00 00 4 . . . - 4 . . % . U 5 . . . . 00000330 CE 0B 00 00 00 00 01 DC 0B 00 00 14 00 10 00 29 . . . . . . . . . . . . . . . ) 00000340 34 00 00 00 2D 34 00 00 16 06 DB 04 55 35 CD 0B 4 . . . - 4 . . . . . . U 5 . . 00000350 00 00 CE 0B 00 00 00 00 01 DC 0B 00 00 14 00 10 . . . . . . . . . . . . . . . . 00000360 00 29 34 00 00 00 2D 34 00 00 16 07 5D 05 2D 35 . ) 4 . . . - 4 . . . . ] . - 5 00000370 E0 0B 00 00 E4 0B 00 00 00 00 10 00 29 34 00 00 . . . . . . . . . . . . ) 4 . . 00000380 00 2D 34 00 00 A2 10 35 E1 0B 00 00 E4 0B 00 00 . - 4 . . . . 5 . . . . . . . . 00000390 00 00 10 00 29 34 00 00 00 2D 34 00 00 01 DB 0B . . . . ) 4 . . . - 4 . . . . . 000003A0 00 00 35 DF 0B 00 00 E4 0B 00 00 00 00 10 00 29 . . 5 . . . . . . . . . . . . ) 000003B0 34 00 00 00 2D 34 00 00 16 A5 00 29 34 00 00 16 4 . . . - 4 . . . . . ) 4 . . . 000003C0 06 2E 04 04 0B 53 00 00 00 02 00 82 00 2C 2C 00 . . . . . S . . . . . . . , , . 000003D0 00 00 00 00 00 . . . . . Edited February 15, 2013 by johnnylump Link to comment Share on other sites More sharing options...
Recommended Posts