diff --git a/mpq/arr/images.datex b/mpq/arr/images.datex index 4b4506fd..53dc3b47 100644 Binary files a/mpq/arr/images.datex and b/mpq/arr/images.datex differ diff --git a/mpq/arr/images.tbl b/mpq/arr/images.tbl index 85bdd5ec..a8b860d4 100644 Binary files a/mpq/arr/images.tbl and b/mpq/arr/images.tbl differ diff --git a/mpq/arr/images.txt b/mpq/arr/images.txt index a9ea9d5a..ced06689 100644 --- a/mpq/arr/images.txt +++ b/mpq/arr/images.txt @@ -2534,7 +2534,7 @@ Scepter Laser Impact Burst Lasers Yellow Small Burst Lasers Impact Yellow Burst Lasers Yellow -Extended Image #1534 +Olympian Remains Extended Image #1535 Extended Image #1536 Extended Image #1537 diff --git a/mpq/arr/sfxdata.txt b/mpq/arr/sfxdata.txt index 59268f31..130d4212 100644 --- a/mpq/arr/sfxdata.txt +++ b/mpq/arr/sfxdata.txt @@ -4677,9 +4677,9 @@ Manifold Order Passive 02 Manifold Order Passive 03 Manifold Under Attack 01 Manifold Under Attack 02 -Extended Sound #1 -Extended Sound #1 -Extended Sound #1 +Magnetar Weaponhit 01 +Magnetar Weaponhit 02 +Magnetar Weaponhit 03 Extended Sound #1 Extended Sound #1 Extended Sound #1 diff --git a/mpq/arr/sounds.txt b/mpq/arr/sounds.txt index 2829c743..967f7704 100644 --- a/mpq/arr/sounds.txt +++ b/mpq/arr/sounds.txt @@ -4676,4 +4676,7 @@ cm\p\manifold\yes-01.wav cm\p\manifold\yes-02.wav cm\p\manifold\yes-03.wav cm\p\manifold\hlp-01.wav -cm\p\manifold\hlp-02.wav \ No newline at end of file +cm\p\manifold\hlp-02.wav +cm\t\magnetar\wh-01.wav +cm\t\magnetar\wh-02.wav +cm\t\magnetar\wh-03.wav \ No newline at end of file diff --git a/mpq/arr/sprites.datex b/mpq/arr/sprites.datex index e51dad3c..3486217c 100644 Binary files a/mpq/arr/sprites.datex and b/mpq/arr/sprites.datex differ diff --git a/mpq/arr/sprites.txt b/mpq/arr/sprites.txt index c5404e6c..05f29189 100644 --- a/mpq/arr/sprites.txt +++ b/mpq/arr/sprites.txt @@ -1222,7 +1222,7 @@ Scepter Laser Burst Lasers Yellow Small Burst Lasers Impact Yellow Burst Lasers Yellow -Extended Sprite #708 +Olympian Remains Extended Sprite #709 Extended Sprite #710 Extended Sprite #711 diff --git a/mpq/arr/weapons.datex b/mpq/arr/weapons.datex index 140d085c..de45308f 100644 Binary files a/mpq/arr/weapons.datex and b/mpq/arr/weapons.datex differ diff --git a/mpq/game/icons.grp b/mpq/game/icons.grp index 38f38da2..0c8b6a99 100644 Binary files a/mpq/game/icons.grp and b/mpq/game/icons.grp differ diff --git a/mpq/scripts/iscript_protoss.bin b/mpq/scripts/iscript_protoss.bin index 67a1e3eb..8c8d6779 100644 Binary files a/mpq/scripts/iscript_protoss.bin and b/mpq/scripts/iscript_protoss.bin differ diff --git a/mpq/scripts/iscript_protoss.txt b/mpq/scripts/iscript_protoss.txt index 5c53f60a..83370318 100644 --- a/mpq/scripts/iscript_protoss.txt +++ b/mpq/scripts/iscript_protoss.txt @@ -7629,17 +7629,17 @@ IsId 492 Type 21 Init AtreusInit Death AtreusDeath -GndAttkInit AtreusGndAttkInit -AirAttkInit AtreusGndAttkInit -Unused1 SkryrokorLocal00 -GndAttkRpt AtreusGndAttkInit -AirAttkRpt AtreusGndAttkInit +GndAttkInit AtreusAttackInit +AirAttkInit AtreusAttackInit +Unused1 AtreusRevive +GndAttkRpt AtreusAttackLoop +AirAttkRpt AtreusAttackLoop CastSpell [NONE] -GndAttkToIdle AtreusGndAttkToIdle -AirAttkToIdle AtreusGndAttkToIdle +GndAttkToIdle AtreusAttackToIdle +AirAttkToIdle AtreusAttackToIdle Unused2 [NONE] Walking AtreusWalking -WalkingToIdle AtreusGndAttkToIdle +WalkingToIdle AtreusIdleInit SpecialState1 [NONE] SpecialState2 [NONE] AlmostBuilt [NONE] @@ -7653,46 +7653,132 @@ WarpIn AtreusWarpIn # ----------------------------------------------------------------------------- # AtreusInit: - imgul 1173 0 0 # Atreus Shadow (cm\protoss\atreus-shad.grp) - goto AtreusGndAttkToIdle - -AtreusGndAttkToIdle: + imgul 1173 0 0 # Atreus Shadow (cm\protoss\atreus-shadow.grp) +AtreusIdleInit: playfram 0x00 - goto SkryrokorLocal00 - + wait 2 +AtreusIdleLoop: + playfram 0x20 + wait 2 + playfram 0x40 + wait 2 + playfram 0x60 + wait 2 + playfram 0x80 + wait 2 + playfram 0xA0 + wait 2 + playfram 0xC0 + wait 2 + playfram 0xE0 + wait 2 + playfram 0x100 + wait 2 + playfram 0x00 + wait 2 + goto AtreusIdleLoop + AtreusDeath: - playsnd 533 # Protoss\Scout\PScDth00.WAV - imgol 213 0 0 # Explosion1 (Small) (thingy\tBangS.grp) - wait 2 - lowsprul 846 0 7 # Protoss Unit Rubble Medium + playsnd 493 # Protoss\DRAGOON\PDrDth00.WAV + playsnd 1335 # Hierophant death 01 + imgol 1774 0 0 # Dracadin death explosion (cm\protoss\dracadin-explosion.grp) + setfldirect 0 + playfram 0x400 + wait 1 + playfram 0x401 + wait 1 + playfram 0x402 + wait 1 + playfram 0x403 + wait 1 + playfram 0x404 + wait 1 + playfram 0x405 + wait 2 + playfram 0x406 + wait 2 + lowsprul 1170 0 0 # Atreus Remains (cm\p\atreus-remains.grp) wait 1 end -AtreusGndAttkInit: +AtreusRevive: + wait 1 + nobrkcodestart + playsnd 1902 # Dracadin revive 01 + playsnd 1704 # Hierophant Revive 01 + setfldirect 0 + playfram 0x405 + wait 1 + playfram 0x404 + wait 1 + playfram 0x403 + wait 1 + playfram 0x402 + wait 1 + playfram 0x401 + wait 1 + playfram 0x400 + wait 1 + setfldirect 12 + nobrkcodeend + goto AtreusIdleInit + + +AtreusAttackInit: playfram 0x240 wait 1 - playfram 0x260 + #playfram 0x260 + #wait 1 + playfram 0x280 wait 1 -AtreusGndAttkRpt: + #playfram 0x2A0 + #wait 1 + playfram 0x2C0 + wait 1 + playfram 0x2E0 +AtreusAttackLoop: nobrkcodestart wait 1 - playfram 0x2A0 + playfram 0x300 playsndbtwn 1788 1790 # Atreus weapon fire 01, 02, 03 attackwith 1 wait 1 + playfram 0x320 + wait 1 + playfram 0x340 + wait 1 + playfram 0x360 + wait 1 + playfram 0x380 + wait 1 + playfram 0x3A0 + wait 1 + playfram 0x3C0 + wait 1 + playfram 0x2E0 + wait 1 + nobrkcodeend + gotorepeatattk + ignorerest + goto AtreusAttackToIdle + +AtreusAttackToIdle: + playfram 0x2E0 + wait 1 + playfram 0x2C0 + wait 1 + playfram 0x2A0 + wait 1 playfram 0x280 wait 1 playfram 0x260 wait 1 playfram 0x240 wait 1 - nobrkcodeend - gotorepeatattk - ignorerest - goto AtreusGndAttkToIdle + goto AtreusIdleInit AtreusWalking: - move 6 + move 6 wait 1 playfram 0x120 move 6 @@ -7716,16 +7802,11 @@ AtreusWalking: move 6 wait 1 playfram 0x200 - move 6 - wait 1 - playfram 0x220 - move 6 - wait 1 goto AtreusWalking AtreusWarpIn: imgol 2124 0 0 # Atreus Warp Flash (cm\protoss\atreus.grp) - goto AtreusGndAttkToIdle + goto AtreusIdleInit # ----------------------------------------------------------------------------- # # This header is used by images.dat entries: diff --git a/mpq/scripts/iscript_terran.bin b/mpq/scripts/iscript_terran.bin index efbedf8c..9aa78803 100644 Binary files a/mpq/scripts/iscript_terran.bin and b/mpq/scripts/iscript_terran.bin differ diff --git a/mpq/scripts/iscript_terran.txt b/mpq/scripts/iscript_terran.txt index 4f30b0e8..bb1b524a 100644 --- a/mpq/scripts/iscript_terran.txt +++ b/mpq/scripts/iscript_terran.txt @@ -12919,41 +12919,403 @@ SeekerSporesBounceGndAttkInit: # ----------------------------------------------------------------------------- # # This header is used by images.dat entries: -# 1398 Olympian (cm\terran\olympian.grp) +# 1398 Olympian (cm\t\olympian.grp) .headerstart IsId 603 Type 13 Init OlympianInit Death OlympianDeath -GndAttkInit OlympianGndAttkInit -AirAttkInit OlympianGndAttkInit +GndAttkInit OlympianAttackInit +AirAttkInit OlympianAttackInit Unused1 OlympianRevive -GndAttkRpt OlympianGndAttkRpt -AirAttkRpt OlympianGndAttkRpt +GndAttkRpt OlympianAttackGunLoop +AirAttkRpt OlympianAttackGunLoop CastSpell [NONE] -GndAttkToIdle OlympianGndAttkToIdle -AirAttkToIdle OlympianGndAttkToIdle +GndAttkToIdle OlympianAttackGunToIdleRifle +AirAttkToIdle OlympianAttackGunToIdleRifle Unused2 [NONE] -Walking OlympianWalking +Walking OlympianWalkingInit WalkingToIdle OlympianWalkingToIdle -SpecialState1 OlympianSpecialState1 +SpecialState1 OlympianAttackFistsInit .headerend # ----------------------------------------------------------------------------- # OlympianInit: - imgul 1399 0 2 # Olympian Shadow (cm\terran\olympian-shad.grp) -OlympianWalkingToIdle: + imgul 1399 0 2 # Olympian Shadow (cm\t\olympian-shad.grp) + randcondjmp 245 OlympianIdleRifleInit + goto OlympianIdleFistsInit + +# --- Idle Rifle --- # + +OlympianIdleRifleInit: playfram 0x00 - goto SkryrokorLocal00 +OlympianIdleRifleLoop: + wait 79 + randcondjmp 8 OlympianIdleRifleToShoulderInit + randcondjmp 20 OlympianIdleRifleToAiming + randcondjmp 50 OlympianIdleRifle01 + goto OlympianIdleRifleLoop + +OlympianIdleRifle01: + playfram 0x120 + wait 1 + playfram 0x140 + wait 1 + turnrand 2 + wait 1 + playfram 0x120 + wait 1 + goto OlympianIdleRifleInit + +OlympianIdleRifleToAiming: + playfram 0x00 + wait 1 + playfram 0x600 + wait 1 + playfram 0x620 + wait 1 + playfram 0x640 + wait 1 + goto OlympianIdleAimingInit + +# --- Idle Aiming --- # + +OlympianIdleAimingInit: + sigorder 64 # Marks the unit as Aiming + playfram 0x6C0 + randcondjmp 192 OlympianIdleAiming01 + goto OlympianIdleAiming02 + +OlympianIdleAiming01: + wait 12 + goto OlympianIdleAimingEnd + +OlympianIdleAiming02: + turncwise 2 + wait 3 + turncwise 2 + wait 3 + turncwise 2 + wait 3 + wait 12 + turnccwise 2 + wait 3 + turnccwise 2 + wait 3 + turnccwise 2 + wait 3 + turnccwise 2 + wait 3 + turnccwise 2 + wait 3 + turnccwise 2 + wait 3 + wait 12 + turncwise 2 + wait 3 + turncwise 2 + wait 3 + wait 12 + goto OlympianIdleAimingEnd + +OlympianIdleAimingEnd: + wait 6 + orderdone 64 # Clears the units Aiming Status + randcondjmp 224 OlympianIdleAimingToRifle + goto OlympianIdleAimingToShoulder + +OlympianIdleAimingToRifle: + playfram 0x640 + wait 1 + playfram 0x620 + wait 1 + playfram 0x600 + wait 1 + playfram 0x00 + wait 1 + goto OlympianIdleRifleInit + +OlympianIdleAimingToShoulder: + playfram 0x6C0 + wait 1 + playfram 0x640 + wait 2 + playfram 0x480 + wait 2 + playfram 0x4A0 + wait 2 + goto OlympianIdleShoulderInit + +OlympianIdleRifleToShoulderInit: + randcondjmp 127 OlympianIdleRifleToShoulder01 + goto OlympianIdleRifleToShoulder02 + +OlympianIdleRifleToShoulder01: + playfram 0x400 + wait 1 + playfram 0x440 + wait 1 + playfram 0x480 + wait 1 + playfram 0x4A0 + wait 1 + goto OlympianIdleShoulderInit + +OlympianIdleRifleToShoulder02: + playfram 0x400 + wait 1 + playfram 0x420 + wait 1 + playfram 0x440 + wait 2 + playfram 0x460 + wait 2 + playfram 0x480 + wait 2 + playfram 0x4A0 + wait 2 + goto OlympianIdleShoulderInit + +# --- Idle Shoulder --- # + +OlympianIdleShoulderInit: + playfram 0x4C0 +OlympianIdleShoulderLoop: + wait 79 + randcondjmp 2 OlympianIdleShoulderToRifleFakeout + randcondjmp 5 OlympianIdleShoulderToAiming + randcondjmp 10 OlympianIdleShoulder01 + randcondjmp 20 OlympianIdleShoulder02 + randcondjmp 30 OlympianIdleShoulder03 + randcondjmp 40 OlympianIdleShoulder04 + randcondjmp 44 OlympianIdleShoulder05 + randcondjmp 50 OlympianIdleShoulderToRifle + goto OlympianIdleShoulderLoop + +OlympianIdleShoulder01: + playfram 0x4E0 + wait 2 + playfram 0x500 + wait 8 + playfram 0x4E0 + wait 2 + playfram 0x4C0 + wait 2 + playfram 0x520 + wait 2 + playfram 0x540 + wait 8 + playfram 0x520 + wait 2 + goto OlympianIdleShoulderInit + +OlympianIdleShoulder02: + playfram 0x4E0 + wait 2 + playfram 0x500 + wait 8 + playfram 0x4E0 + wait 2 + goto OlympianIdleShoulderInit + +OlympianIdleShoulder03: + playfram 0x520 + wait 2 + playfram 0x540 + wait 8 + playfram 0x520 + wait 2 + goto OlympianIdleShoulderInit + +OlympianIdleShoulder04: + playfram 0x4E0 + wait 1 + turnccwise 2 + wait 1 + playfram 0x4C0 + wait 2 + playfram 0x4E0 + wait 1 + turnccwise 2 + wait 1 + goto OlympianIdleShoulderInit + +OlympianIdleShoulder05: + playfram 0x520 + wait 1 + turncwise 2 + wait 1 + playfram 0x4C0 + wait 2 + playfram 0x520 + wait 1 + turncwise 2 + wait 1 + goto OlympianIdleShoulderInit + +OlympianIdleShoulderToRifleFakeout: + playfram 0x4A0 + wait 2 + playfram 0x480 + wait 2 + playfram 0x460 + wait 2 + playfram 0x440 + wait 2 + playfram 0x420 + wait 1 + playfram 0x400 + wait 1 + playfram 0x00 + wait 8 + playfram 0x400 + wait 1 + playfram 0x420 + wait 1 + playfram 0x440 + wait 2 + playfram 0x460 + wait 2 + playfram 0x480 + wait 2 + playfram 0x4A0 + wait 2 + goto OlympianIdleShoulderInit + +OlympianIdleShoulderToRifle: + playfram 0x4A0 + wait 2 + playfram 0x480 + wait 2 + playfram 0x460 + wait 2 + playfram 0x440 + wait 2 + playfram 0x420 + wait 1 + playfram 0x400 + wait 1 + goto OlympianIdleRifleInit + +OlympianIdleShoulderToAiming: + playfram 0x4A0 + wait 1 + playfram 0x480 + wait 1 + playfram 0x640 + wait 1 + playfram 0x6C0 + wait 8 + goto OlympianIdleAimingInit + +# --- Idle Fists --- # + +OlympianIdleFistsInit: + playfram 0x200 + wait 2 # This wait is needed if this is called on startup, or the game will crash! + sigorder 128 +OlympianIdleFistsLoop: + wait 79 + randcondjmp 6 OlympianIdleFists02 + randcondjmp 12 OlympianIdleFists03 + randcondjmp 16 OlympianIdleFists04 + randcondjmp 20 OlympianIdleFists05 + randcondjmp 50 OlympianIdleFists01 + goto OlympianIdleFistsLoop + +OlympianIdleFists01: + playfram 0x320 + wait 1 + playfram 0x340 + wait 1 + turnrand 2 + wait 1 + playfram 0x320 + wait 1 + goto OlympianIdleFistsInit + +OlympianIdleFists02: + playfram 0x8C0 + wait 1 + playfram 0xAA0 + wait 1 + playfram 0xAC0 + wait 2 + playfram 0xAE0 + wait 8 + playfram 0xAC0 + wait 2 + playfram 0xAA0 + wait 1 + playfram 0x8C0 + wait 1 + goto OlympianIdleFistsInit + +OlympianIdleFists03: + playfram 0x8C0 + wait 1 + playfram 0x8E0 + wait 1 + playfram 0x900 + wait 2 + playfram 0x920 + wait 8 + playfram 0x900 + wait 1 + playfram 0x8E0 + wait 1 + playfram 0x8C0 + wait 1 + goto OlympianIdleFistsInit + +OlympianIdleFists04: + playfram 0x560 + wait 2 + playfram 0x580 + wait 63 + playfram 0x560 + wait 2 + goto OlympianIdleFistsInit + +OlympianIdleFists05: + playfram 0x5A0 + wait 4 + playfram 0x5C0 + wait 6 + playfram 0x5E0 + wait 2 + playfram 0x5C0 + wait 2 + playfram 0x5E0 + wait 2 + playfram 0x5C0 + wait 4 + playfram 0x5A0 + wait 2 + goto OlympianIdleFistsInit + +# --- Other --- # OlympianDeath: playsndbtwn 276 277 # Terran\MARINE\TMaDth00.WAV | Terran\MARINE\TMaDth01.WAV setfldirect 0 - playfram 0x00 - imgol 3 0 0 # Skryrokor Death (zerg\zavDeath.grp) - imgol 332 0 0 # Explosion2 (Small) (thingy\tBangS.grp) - wait 5 - lowsprul 236 0 0 # Maverick Remnants (terran\tmaDeath.grp) + playfram 0xC60 + wait 2 + playfram 0xC61 + wait 2 + playfram 0xC62 + wait 2 + playfram 0xC63 + wait 2 + playfram 0xC64 + wait 2 + playfram 0xC65 + wait 2 + playfram 0xC66 + wait 2 + playfram 0xC67 + wait 2 + lowsprul 1224 0 0 # Olympian Remains (cm\t\olympian-remains.grp) wait 1 end @@ -12962,85 +13324,256 @@ OlympianRevive: nobrkcodestart setfldirect 0 playsndbtwn 1161 1162 - sprol 742 0 0 -# playfram 176 -# wait 2 -# playfram 175 -# wait 2 -# playfram 174 -# wait 2 -# playfram 173 -# wait 2 -# playfram 172 -# wait 2 -# playfram 171 -# wait 2 -# playfram 170 -# wait 2 - wait 14 + playfram 0xC66 + wait 2 + playfram 0xC65 + wait 2 + playfram 0xC64 + wait 2 + playfram 0xC63 + wait 2 + playfram 0xC62 + wait 2 + playfram 0xC61 + wait 2 + playfram 0xC60 + wait 2 setfldirect 12 nobrkcodeend - goto OlympianWalkingToIdle + goto OlympianIdleRifleInit # specifically Rifle Idle cause I don't want to make two separate death anims -OlympianGndAttkInit: - sigorder 32 +# --- Attack --- # + +OlympianAttackInit: # This inits both Gun and Fists attacks. + sigorder 32 # Sends the signal to melee attack if possible. I think the unit will recieve the signal in the next gametick and act on it in the one after that. + ub 62 + ub 64 + pw OlympianAttackGunFromIdleAiming #flagjmp 64 + ub 62 + ub 128 + pw OlympianAttackGunFromIdleFists #flagjmp 128 + goto OlympianAttackGunFromIdleRifle #OlympianAttackGunFromIdleRifle + +# --- Attack Gun --- # + +OlympianAttackGunFromIdleFists: + playfram 0x8C0 + wait 2 # It is important to have this be 2 waits instead of 1! Otherwise we would get the first frame of this anim before it transitions to the fist attack. + playfram 0x660 wait 1 - playfram 0x200 + playfram 0x680 wait 1 - playfram 0x220 + playfram 0x6A0 + goto OlympianAttackGunLoop + +OlympianAttackGunFromIdleAiming: # kitbashed anim + #playfram 0x6C0 + #wait 2 # match time to other anims #eh why would we do that? + goto OlympianAttackGunLoop + +#OlympianAttackGunFromIdleShoulder: #kitbashed anim +# playfram 0x680 +# wait 2 +# playfram 0x6A0 +# wait 2 +# goto OlympianAttackGunLoop + +OlympianAttackGunFromIdleRifle: + playfram 0x00 + wait 2 + playfram 0x600 wait 1 - playfram 0x240 -OlympianGndAttkRpt: + playfram 0x620 + wait 1 + playfram 0x640 +OlympianAttackGunLoop: wait 1 nobrkcodestart playsndbtwn 1555 1556 # Olympian weapon fire 01, 02 attackwith 2 - playfram 0x280 + playfram 0x6E0 wait 1 - playfram 0x260 + playfram 0x6C0 wait 1 - playfram 0x280 + playfram 0x6E0 wait 1 - playfram 0x260 + playfram 0x6C0 wait 1 + orderdone 128 nobrkcodeend + sigorder 64 #Marks the unit as Aiming sigorder 32 gotorepeatattk ignorerest -OlympianGndAttkToIdle: - playfram 0x240 +OlympianAttackGunToIdleRifle: # done in two parts so if we're immediately targeting another unit afterward we keep aiming + playfram 0x6C0 + goto OlympianAttackGunToIdleRifle2 +OlympianAttackGunToIdleRifle2: + wait 2 + orderdone 64 # Clears the units Aiming Status + playfram 0x640 wait 1 - playfram 0x220 + playfram 0x620 wait 1 - playfram 0x200 + playfram 0x600 wait 1 - goto OlympianWalkingToIdle + goto OlympianIdleRifleInit -OlympianSpecialState1: - playfram 0x2A0 +# --- Attack Fists --- # + +OlympianAttackFistsInit: + ub 62 + ub 64 + pw OlympianAttackFistsFromIdleAiming # flagjmp 64 + ub 62 + ub 128 + pw OlympianAttackFistsFromIdleFistsInit # flagjmp 128 + goto OlympianAttackFistsFromIdleRifle # sigorder 0 + #goto OlympianAttackFistsFromIdleFistsInit # sigorder 128 + +OlympianAttackFistsFromIdleAiming: #kitbashed anim + playfram 0x620 + wait 1 + playfram 0x720 + orderdone 64 #Clears the units Aiming Status + wait 1 + playfram 0x740 + goto OlympianAttackFistsFromIdleRifleAndAiming + +OlympianAttackFistsFromIdleRifle: + playfram 0x700 + wait 1 + playfram 0x720 + wait 1 + playfram 0x740 +OlympianAttackFistsFromIdleRifleAndAiming: + ub 62 + ub 128 + pw OlympianAttackFistsFromIdleFists01 # flagjmp 128 OlympianAttackFistsFromIdleFists01 wait 1 nobrkcodestart - playfram 0x2C0 + playfram 0x760 + wait 2 + playfram 0x780 wait 1 - playfram 0x2E0 attackmelee 3 1577 1578 1579 # Olympian Melee 01, 02, 03 + playfram 0x7A0 + wait 3 + playfram 0x7C0 wait 1 - playfram 0x300 + playfram 0x7E0 wait 1 - playfram 0x320 + playfram 0x800 wait 1 - playfram 0x340 + playfram 0x820 wait 1 - playfram 0x00 + playfram 0x840 + wait 1 + playfram 0x860 + wait 1 + playfram 0x880 + wait 1 + playfram 0x8A0 + wait 1 + playfram 0x8C0 + sigorder 128 nobrkcodeend gotorepeatattk ignorerest -OlympianLocal06: - goto OlympianWalkingToIdle + goto OlympianIdleFistsInit + +OlympianAttackFistsFromIdleFistsInit: + randcondjmp 127 OlympianAttackFistsFromIdleFists01 + goto OlympianAttackFistsFromIdleFists02 + +OlympianAttackFistsFromIdleFists01: + playfram 0x8E0 + wait 1 + playfram 0x900 + wait 1 + playfram 0x920 + wait 1 + nobrkcodestart + playfram 0x940 + wait 2 + playfram 0x960 + wait 1 + attackmelee 3 1577 1578 1579 # Olympian Melee 01, 02, 03 + playfram 0x980 + wait 3 + playfram 0x9A0 + wait 1 + playfram 0x9C0 + wait 1 + playfram 0x9E0 + wait 1 + playfram 0xA00 + wait 1 + playfram 0xA20 + wait 1 + playfram 0xA40 + wait 1 + playfram 0xA60 + wait 1 + playfram 0xA80 + wait 1 + playfram 0x8C0 + sigorder 128 + nobrkcodeend + gotorepeatattk + ignorerest + goto OlympianIdleFistsInit + +OlympianAttackFistsFromIdleFists02: + playfram 0xAA0 + wait 1 + playfram 0xAC0 + wait 1 + playfram 0xAE0 + wait 1 + nobrkcodestart + playfram 0xB00 + wait 2 + playfram 0xB20 + wait 1 + attackmelee 3 1577 1578 1579 # Olympian Melee 01, 02, 03 + playfram 0xB40 + wait 3 + playfram 0xB60 + wait 1 + playfram 0xB80 + wait 1 + playfram 0xBA0 + wait 1 + playfram 0xBC0 + wait 1 + playfram 0xBE0 + wait 1 + playfram 0xC00 + wait 1 + playfram 0xC20 + wait 1 + playfram 0xC40 + wait 1 + playfram 0x8C0 + sigorder 128 + nobrkcodeend + gotorepeatattk + ignorerest + goto OlympianIdleFistsInit -OlympianWalking: +# --- Walking --- # + +OlympianWalkingInit: + orderdone 64 # Clears the units Aiming Status + ub 62 + ub 128 + pw OlympianWalkingFists # flagjmp 128 OlympianWalkingFists + goto OlympianWalkingRifle +OlympianWalkingRifle: move 4 wait 1 + nobrkcodeend #done to stop weird point where a flagjmp warps while also in nocodebreak playfram 0xA0 move 4 wait 1 @@ -13084,7 +13617,63 @@ OlympianWalking: move 4 wait 1 playfram 0x80 - goto OlympianWalking + nobrkcodeend + goto OlympianWalkingRifle + +OlympianWalkingFists: + move 4 + wait 1 + nobrkcodeend #done to stop weird point where a flagjmp warps while also in nocodebreak + playfram 0x2A0 + move 4 + wait 1 + playfram 0x2C0 + move 4 + wait 1 + playfram 0x2E0 + move 4 + wait 1 + playfram 0x300 + move 4 + wait 1 + playfram 0x320 + move 4 + wait 1 + playfram 0x340 + move 4 + wait 1 + playfram 0x360 + move 4 + wait 1 + playfram 0x380 + move 4 + wait 1 + playfram 0x3A0 + move 4 + wait 1 + playfram 0x3C0 + move 4 + wait 1 + playfram 0x3E0 + move 4 + wait 1 + playfram 0x220 + move 4 + wait 1 + playfram 0x240 + move 4 + wait 1 + playfram 0x260 + move 4 + wait 1 + playfram 0x280 + goto OlympianWalkingFists + +OlympianWalkingToIdle: + ub 62 + ub 128 + pw OlympianIdleFistsInit # flagjmp 128 OlympianIdleFistsInit + goto OlympianIdleRifleInit # ----------------------------------------------------------------------------- # # This header is used by images.dat entries: diff --git a/mpq/sound/cm/t/magnetar/wh-01.wav b/mpq/sound/cm/t/magnetar/wh-01.wav new file mode 100644 index 00000000..d9c594d0 Binary files /dev/null and b/mpq/sound/cm/t/magnetar/wh-01.wav differ diff --git a/mpq/sound/cm/t/magnetar/wh-02.wav b/mpq/sound/cm/t/magnetar/wh-02.wav new file mode 100644 index 00000000..aec05033 Binary files /dev/null and b/mpq/sound/cm/t/magnetar/wh-02.wav differ diff --git a/mpq/sound/cm/t/magnetar/wh-03.wav b/mpq/sound/cm/t/magnetar/wh-03.wav new file mode 100644 index 00000000..47aeb45c Binary files /dev/null and b/mpq/sound/cm/t/magnetar/wh-03.wav differ diff --git a/mpq/unit/cm/a/arch-shadow.grp b/mpq/unit/cm/a/arch-shadow.grp index 6a9e41c6..6cf109e2 100644 Binary files a/mpq/unit/cm/a/arch-shadow.grp and b/mpq/unit/cm/a/arch-shadow.grp differ diff --git a/mpq/unit/cm/a/arch.grp b/mpq/unit/cm/a/arch.grp index ac8f6a5c..1a4b94b8 100644 Binary files a/mpq/unit/cm/a/arch.grp and b/mpq/unit/cm/a/arch.grp differ diff --git a/mpq/unit/cm/a/cardinal-shadow.grp b/mpq/unit/cm/a/cardinal-shadow.grp index 2764e693..145569dc 100644 Binary files a/mpq/unit/cm/a/cardinal-shadow.grp and b/mpq/unit/cm/a/cardinal-shadow.grp differ diff --git a/mpq/unit/cm/a/cardinal.grp b/mpq/unit/cm/a/cardinal.grp index 0769008c..2b6644d5 100644 Binary files a/mpq/unit/cm/a/cardinal.grp and b/mpq/unit/cm/a/cardinal.grp differ diff --git a/mpq/unit/cm/p/atreus-remains.grp b/mpq/unit/cm/p/atreus-remains.grp index e7ea8372..90f8f775 100644 Binary files a/mpq/unit/cm/p/atreus-remains.grp and b/mpq/unit/cm/p/atreus-remains.grp differ diff --git a/mpq/unit/cm/p/atreus-shadow.grp b/mpq/unit/cm/p/atreus-shadow.grp index 4f880a7b..a6b01d5b 100644 Binary files a/mpq/unit/cm/p/atreus-shadow.grp and b/mpq/unit/cm/p/atreus-shadow.grp differ diff --git a/mpq/unit/cm/p/atreus.grp b/mpq/unit/cm/p/atreus.grp index e557aa7c..58f6fbd0 100644 Binary files a/mpq/unit/cm/p/atreus.grp and b/mpq/unit/cm/p/atreus.grp differ diff --git a/mpq/unit/cm/t/olympian-remains.grp b/mpq/unit/cm/t/olympian-remains.grp new file mode 100644 index 00000000..e2404455 Binary files /dev/null and b/mpq/unit/cm/t/olympian-remains.grp differ diff --git a/mpq/unit/cm/t/olympian-shadow.grp b/mpq/unit/cm/t/olympian-shadow.grp index 40e2a7c4..b07075aa 100644 Binary files a/mpq/unit/cm/t/olympian-shadow.grp and b/mpq/unit/cm/t/olympian-shadow.grp differ diff --git a/mpq/unit/cm/t/olympian.grp b/mpq/unit/cm/t/olympian.grp index ae352f18..da8f2cc5 100644 Binary files a/mpq/unit/cm/t/olympian.grp and b/mpq/unit/cm/t/olympian.grp differ diff --git a/mpq/unit/cmdbtns/cmdicons.grp b/mpq/unit/cmdbtns/cmdicons.grp index db26f6d2..bea307dd 100644 Binary files a/mpq/unit/cmdbtns/cmdicons.grp and b/mpq/unit/cmdbtns/cmdicons.grp differ diff --git a/mpq/unit/cmdbtns/uniticons.grp b/mpq/unit/cmdbtns/uniticons.grp index cf1acd9c..26469bd2 100644 Binary files a/mpq/unit/cmdbtns/uniticons.grp and b/mpq/unit/cmdbtns/uniticons.grp differ diff --git a/plugins/gptp.qdp b/plugins/gptp.qdp index ef66979c..628caccf 100644 Binary files a/plugins/gptp.qdp and b/plugins/gptp.qdp differ diff --git a/plugins/vx4ex.qdp b/plugins/vx4ex.qdp deleted file mode 100644 index 54bad8be..00000000 Binary files a/plugins/vx4ex.qdp and /dev/null differ