' decompiling 10AE:A551
       SUB DoShipPlanetCombat_10AE_A551
       void sub()
[A557] <1000>            ' make_frame 446, 62
[A56A] <1000>            Dim lvFFD4(0 To 500) OF size_2_type
[A56F] <0304>            lvFFCE := 462    // was a 'mov'
[A57D] <1000>            lvFFCA := GetString_10AE_CBBA (lvFFCE)
[A58D] <1000>            LogString_10AE_754B (lvFFCA)
[A590] <0304>            lvFFC8 := 1    // was a 'mov'
[A595] <1000>            FOR lvFFC0 := 1 TO 500 DO
[A59C] <0304>              lAggressiveL := 68812800L    // was a 'mov'
[A5A6] <1000>              FOR lvFFC2 := 1 TO 500 DO
[A5BC] <1000>                IF gShipFCBO((2 * lvFFC2)) < lvFFC6 THEN
[A5CC] <1000>                  IF gShipOwners((2 * lvFFC2)) > 0 THEN
[A5E0] <0304>                    lvFFC6 := gShipFCBO((2 * lvFFC2))    // was a 'mov'
[A5E6] <0304>                    lAggressive := lvFFC2    // was a 'mov'
[A5E9] <1000>                  ENDIF
[A5E9] <1000>                ENDIF
[A5ED] <1000>              NEXT lvFFC2
[A5F5] <1000>              IF lAggressive > 0 THEN
[A60C] <0304>                lvFFD4((2 * lvFFC8)) := lAggressive    // was a 'mov'
[A60D] <0304>                AX := lAggressive    // was a 'mov'
[A60F] <1000>                ++lvFFC8
[A612] <010E>       shl      AX, 0001h
[A61F] <0304>                gShipFCBO(AX) := 1050    // was a 'mov'
[A624] <1000>              ELSE
[A627] <1000>                BREAK 0xA62E
[A629] <1000>              ENDIF
[A62E] <1000>            NEXT lvFFC0
[A63E] <0304>            lvFFBE := FreeFile()    // was a 'mov'
[A64C] <1000>            Open (gGameDir ++ "VCR.HST") As #lvFFBE For -1, 32
[A659] <1000>            FileGet #lvFFBE, pos 1L, DS:lvFFBC, 2 bytes
[A66E] <1000>            FOR lvFFAA := 1 TO 500 DO
[A681] <1000>              IF lvFFD4((2 * lvFFAA)) > 0 THEN
[A695] <0304>                lShipId := lvFFD4((2 * lvFFAA))    // was a 'mov'
[A6A5] <1000>                IF gShipOwners((2 * lvFFD4((2 * lvFFAA)))) > 0 THEN
[A6AE] <1000>                  FOR lPlanetId := 1 TO 500 DO
[A6D4] <1000>                    IF gPlanetX((2 * lPlanetId)) = gShipX((2 * lShipId)) THEN
[A6F5] <1000>                      IF (gPlanetY((2 * lPlanetId)) = gShipY((2 * lShipId)) && gShipOwners((2 * lShipId)) <> gPlanetOwners((2 * lPlanetId))) THEN
[A726] <1000>                        IF gPlanetOwners((2 * lPlanetId)) > 0 THEN
[A73D] <0304>                          lvFFB8 := gShipOwners((2 * lShipId))    // was a 'mov'
[A74E] <0304>                          lvFFB6 := gPlanetOwners((2 * lPlanetId))    // was a 'mov'
[A75E] <0304>                          lvFFB4 := PlayerAllowsAlly_0000_578A (lvFFB6, lvFFB8)    // was a 'mov'
[A772] <0304>                          gPlanetOwners((2 * lPlanetId)) := lvFFB6    // was a 'mov'
[A786] <0304>                          gShipOwners((2 * lShipId)) := lvFFB8    // was a 'mov'
[A789] <1000>                          IF lvFFB4 = 0 THEN
[A78F] <0304>                            lPlanetAlliedWithShip := 0    // was a 'mov'
[A794] <1000>                          ELSE
[A797] <0304>                            lPlanetAlliedWithShip := 1    // was a 'mov'
[A79B] <1000>                          ENDIF
[A7AD] <0304>                          lvFFB0 := gPlanetOwners((2 * lPlanetId))    // was a 'mov'
[A7C1] <0304>                          lvFFAE := gShipOwners((2 * lShipId))    // was a 'mov'
[A7D1] <0304>                          lvFFAC := PlayerAllowsAlly_0000_578A (lvFFAE, lvFFB0)    // was a 'mov'
[A7E5] <0304>                          gShipOwners((2 * lShipId)) := lvFFAE    // was a 'mov'
[A7F9] <0304>                          gPlanetOwners((2 * lPlanetId)) := lvFFB0    // was a 'mov'
[A7FC] <1000>                          IF lvFFAC = 0 THEN
[A802] <0304>                            lShipAlliedWithPlanet := 0    // was a 'mov'
[A807] <1000>                          ELSE
[A80A] <0304>                            lShipAlliedWithPlanet := 1    // was a 'mov'
[A80E] <1000>                          ENDIF
[A80F] <1000>                          GOSUB 0xA847	;  FIXME: better formatting
[A817] <1000>                        ENDIF
[A817] <1000>                      ENDIF
[A817] <1000>                    ENDIF
[A81B] <1000>                  NEXT lPlanetId
[A826] <1000>                ENDIF
[A826] <1000>              ENDIF
[A82A] <1000>            NEXT lvFFAA
[A835] <1000>            Close #lvFFBE
[A83F] <1000>            GOTO 0xBFFA	; FIXME: better formatting



[A84A] <0304>            gShipId := lShipId    // was a 'mov'
[A84D] <1000>            ShipLoad_0000_668A ()
[A855] <0304>            gPlanetId := lPlanetId    // was a 'mov'
[A858] <1000>            PlanetLoad_0000_65DE ()
[A85D] <0304>            lHaveBase := 0    // was a 'mov'
[A870] <1000>            IF gBaseOwners((2 * lPlanetId)) > 0 THEN
[A876] <0304>              lHaveBase := 1    // was a 'mov'
[A87B] <1000>            ENDIF
[A87B] <1000>            IF lHaveBase = 1 THEN
[A887] <0304>              gBaseId := lPlanetId    // was a 'mov'
[A88A] <1000>              BaseLoad_0000_63D6 ()
[A88F] <1000>            ENDIF
[A89C] <1000>            IF ((Packed(DS:gPlanet.FCode, 3) = "NUK" && gConfig.PlanetsAttack = 1) && gPlanet.Defense = 0) THEN
[A8BE] <1000>              IF gShip.Player = 5 THEN
[A8C5] <0304>                gPlanet.Defense := 1    // was a 'mov'
[A8CB] <1000>              ENDIF
[A8CB] <1000>            ENDIF
[A8CB] <0304>            lAggressive := 0    // was a 'mov'
[A8D3] <1000>            IF gPlanet.Player = gShip.PE THEN
[A8D9] <1000>              IF lPlanetAlliedWithShip = 0 THEN
[A8DF] <0304>                lAggressive := 1    // was a 'mov'
[A8E4] <1000>              ENDIF
[A8E4] <1000>            ENDIF
[A8E4] <1000>            IF gShip.Mission = 4 THEN
[A8EB] <1000>              IF lPlanetAlliedWithShip = 0 THEN
[A8F1] <0304>                lAggressive := 1    // was a 'mov'
[A8F6] <1000>              ENDIF
[A8F6] <1000>            ENDIF
[A903] <1000>            IF (Packed(DS:gShip.FCode, 3) = Packed(DS:gPlanet.FCode, 3) && Packed(DS:gShip.FCode, 3) <> "NUK") THEN
[A93E] <1000>              IF Packed(DS:gShip.FCode, 3) <> "ATT" THEN
[A949] <0304>                lAggressive := 0    // was a 'mov'
[A94E] <1000>              ENDIF
[A94E] <1000>            ENDIF
[A94E] <1000>            IF gShip.N = 0 THEN
[A955] <0304>              lAggressive := 0    // was a 'mov'
[A95A] <1000>            ENDIF
[A95A] <0304>            lImmune := 0    // was a 'mov'
[A95F] <1000>            IF gShip.Player = 10 THEN
[A966] <1000>              IF gConfig.PlanetsAttackRebels = 0 THEN
[A96D] <0304>                lImmune := 1    // was a 'mov'
[A972] <1000>              ENDIF
[A972] <1000>            ENDIF
[A972] <1000>            IF gShip.Player = 4 THEN
[A979] <1000>              IF gConfig.PlanetsAttackFascist = 0 THEN
[A980] <0304>                lImmune := 1    // was a 'mov'
[A985] <1000>              ENDIF
[A985] <1000>            ENDIF
[A985] <1000>            IF (gShip.Player = 3 && gShip.N < 1) THEN
[A993] <1000>              IF gShip.NumBeams > 0 THEN
[A99A] <0304>                lImmune := 1    // was a 'mov'
[A99F] <1000>              ENDIF
[A99F] <1000>            ENDIF
[A99F] <1000>            IF gShip.Hull = 69 THEN
[A9A6] <1000>              IF gConfig.AllowImperialAssault = 1 THEN
[A9AD] <0304>                lImmune := 1    // was a 'mov'
[A9B2] <1000>              ENDIF
[A9B2] <1000>            ENDIF
[A9C0] <1000>            IF gShipCloaked((2 * lShipId)) = 1 THEN
[A9C6] <0304>              lImmune := 1    // was a 'mov'
[A9CB] <1000>            ENDIF
[A9CB] <1000>            IF (((lImmune = 0 && lShipAlliedWithPlanet = 0) && Packed(DS:gPlanet.FCode, 3) = "ATT") && gShip.N > 0) THEN
[A9F6] <1000>              IF gConfig.PlanetsAttack = 1 THEN
[A9FD] <0304>                lAggressive := 1    // was a 'mov'
[AA02] <1000>              ENDIF
[AA02] <1000>            ENDIF
[AA02] <1000>            IF (((lImmune = 0 && lShipAlliedWithPlanet = 0) && Packed(DS:gPlanet.FCode, 3) = "NUK") && gConfig.PlanetsAttack = 1) THEN
[AA2D] <1000>              IF gPlanet.Defense > 0 THEN
[AA34] <0304>                lAggressive := 1    // was a 'mov'
[AA39] <1000>              ENDIF
[AA39] <1000>            ENDIF
[AA7A] <1000>            IF (gPlanetX((2 * lPlanetId)) <> gShipX((2 * lShipId)) || gPlanetY((2 * lPlanetId)) <> gShipY((2 * lShipId))) THEN
[AA7F] <0304>              lAggressive := 0    // was a 'mov'
[AA84] <1000>            ENDIF
[AA92] <1000>            IF gShipCloaked((2 * lShipId)) = 1 THEN
[AA98] <0304>              lAggressive := 0    // was a 'mov'
[AA9D] <1000>            ENDIF
[AA9D] <1000>            IF lAggressive = 1 THEN
[AAA6] <0304>              lvFFA4 := 463    // was a 'mov'
[AAB4] <1000>              lvFFA0 := GetString_10AE_CBBA (lvFFA4)
[AAC4] <1000>              LogString_10AE_754B (lvFFA0)
[AACE] <1000>              Randomize Timer()
[AAE7] <1000>              dword ptr DS:[060Ah] := ERND(((dword ptr DS:[@Random()] * 110) + 1))
[AAFE] <0304>              gVcr.Temp := gPlanet.Temp    // was a 'mov'
[AB01] <0304>              gVcr.Type := 1    // was a 'mov'
[AB0A] <1000>              HullLoad_0000_653E (gShip.Hull)
[AB12] <0304>              gVcr.MassL := gHull.Mass    // was a 'mov'
[AB18] <0304>              gVcr.Left.Picture := gHull.Picture    // was a 'mov'
[AB19] <1000>              Packed(DS:gVcr.Left.Name, 20) := Packed(DS:gShip.Name, 20)
[AB33] <0304>              gVcr.Left.Damage := gShip.Damage    // was a 'mov'
[AB39] <0304>              gVcr.Left.Crew := gShip.Crew    // was a 'mov'
[AB3F] <0304>              gVcr.Left.Id := gShip.Id    // was a 'mov'
[AB45] <0304>              gVcr.Left.Player := gShip.Player    // was a 'mov'
[AB4B] <0304>              gVcr.Left.BeamType := gShip.BeamType    // was a 'mov'
[AB51] <0304>              gVcr.Left.NumBeams := gShip.NumBeams    // was a 'mov'
[AB57] <0304>              gVcr.Left.NumBays := gShip.NumBays    // was a 'mov'
[AB67] <1000>              IF Packed(DS:gShip.FCode, 3) = "NTP" THEN
[AB72] <0304>                gVcr.Left.NumBays := 0    // was a 'mov'
[AB78] <1000>              ENDIF
[AB7B] <0304>              gVcr.Left.TorpType := gShip.TorpType    // was a 'mov'
[AB81] <0304>              gVcr.Left.Ammo := gShip.Ammo    // was a 'mov'
[AB87] <0304>              gVcr.Left.NumTubes := gShip.NumTubes    // was a 'mov'
[AB97] <1000>              IF Packed(DS:gShip.FCode, 3) = "NTP" THEN
[ABA2] <0304>                gVcr.Left.NumTubes := 0    // was a 'mov'
[ABA8] <1000>              ENDIF
[ABA8] <0304>              gVcr.Right.Damage := 0    // was a 'mov'
[ABB1] <0304>              lPlanetDefense := gPlanet.Defense    // was a 'mov'
[ABB4] <1000>              lPlanetBeamTech := ERND(Sqrt((gPlanet.Defense / 2)))
[ABC7] <0304>              lBaseFighters := 0    // was a 'mov'
[ABCC] <0304>              lBaseDefense := 0    // was a 'mov'
[ABD1] <0304>              lBaseDamage := 0    // was a 'mov'
[ABD6] <1000>              IF lHaveBase = 1 THEN
[ABE3] <0304>                lBaseFighters := gBase.Fighters    // was a 'mov'
[ABEA] <0304>                lBaseDefense := gBase.Defense    // was a 'mov'
[ABF0] <1000>                IF gBase.BeamTech > lPlanetBeamTech THEN
[ABF5] <0304>                  lPlanetBeamTech := gBase.BeamTech    // was a 'mov'
[ABF8] <1000>                ENDIF
[ABFB] <0304>                lBaseDamage := gBase.Damage    // was a 'mov'
[ABFE] <1000>              ENDIF
[ABFE] <1000>              IF lPlanetBeamTech < 1 THEN
[AC04] <0304>                lPlanetBeamTech := 1    // was a 'mov'
[AC09] <1000>              ENDIF
[AC09] <1000>              gVcr.Right.NumBays := ERND(Sqrt(lPlanetDefense))
[AC17] <1000>              IF lBaseFighters > 0 THEN
[AC1D] <1000>                gVcr.Right.NumBays := gVcr.Right.NumBays + 5
[AC22] <1000>              ENDIF
[AC22] <1000>              gVcr.Right.Ammo := ERND((Sqrt(lPlanetDefense) + lBaseFighters))
[AC34] <0304>              gVcr.Right.TorpType := 0    // was a 'mov'
[AC3A] <0304>              gVcr.Right.NumTubes := 0    // was a 'mov'
[AC43] <0304>              gVcr.Right.Crew := gVcr.Right.Ammo    // was a 'mov'
[AC4C] <0304>              lvFF94 := (lPlanetDefense + lBaseDefense)    // was a 'mov'
[AC4F] <1000>              gVcr.Right.NumBeams := ERND(Sqrt((lvFF94 / 3)))
[AC62] <1000>              IF gVcr.Right.NumBeams > 10 THEN
[AC69] <0304>                gVcr.Right.NumBeams := 10    // was a 'mov'
[AC6F] <1000>              ENDIF
[AC6F] <1000>              IF lPlanetBeamTech > 10 THEN
[AC75] <0304>                lPlanetBeamTech := 10    // was a 'mov'
[AC7A] <1000>              ENDIF
[AC7D] <0304>              gVcr.Right.BeamType := lPlanetBeamTech    // was a 'mov'
[AC89] <1000>              lvFF90 := PlanetName_0000_AACC (lPlanetId)
[AC96] <1000>              Packed(DS:gVcr.Right.Name, 20) := DS:lvFF90
[ACAE] <0304>              gVcr.MassR := (lvFF94 + 100)    // was a 'mov'
[ACB4] <0304>              gVcr.Right.Id := lPlanetId    // was a 'mov'
[ACC7] <0304>              gVcr.Right.Player := gPlanetOwners((2 * lPlanetId))    // was a 'mov'
[ACCB] <0304>              gVcr.Right.Picture := 1    // was a 'mov'
[ACE2] <0304>              gVcr.ShieldL := gShipShield((2 * lShipId))    // was a 'mov'
[ACF4] <0304>              gVcr.ShieldR := gPlanetShield((2 * lPlanetId))    // was a 'mov'
[ACFE] <0304>              lLeftShieldLimit := (100 - gVcr.Left.Damage)    // was a 'mov'
[AD01] <1000>              IF (100 - gVcr.Left.Damage) < gVcr.ShieldL THEN
[AD07] <0304>                gVcr.ShieldL := (100 - gVcr.Left.Damage)    // was a 'mov'
[AD0A] <1000>              ENDIF
[AD11] <1000>              IF (gVcr.Left.Player <> 1 || gConfig.AllowFedCrewBonus <> 1) THEN
[AD26] <0304>                lLeftWeaponLimit := (10 - (gVcr.Left.Damage \ 10))    // was a 'mov'
[AD29] <1000>                IF gVcr.Left.Player = 2 THEN
[AD35] <0304>                  lLeftWeaponLimit := (15 - (gVcr.Left.Damage \ 10))    // was a 'mov'
[AD38] <1000>                ENDIF
[AD38] <1000>                IF lLeftWeaponLimit < 0 THEN
[AD3E] <0304>                  lLeftWeaponLimit := 0    // was a 'mov'
[AD43] <1000>                ENDIF
[AD46] <1000>                IF lLeftWeaponLimit < gVcr.Left.NumBays THEN
[AD4C] <0304>                  gVcr.Left.NumBays := lLeftWeaponLimit    // was a 'mov'
[AD4F] <1000>                ENDIF
[AD52] <1000>                IF lLeftWeaponLimit < gVcr.Left.NumTubes THEN
[AD58] <0304>                  gVcr.Left.NumTubes := lLeftWeaponLimit    // was a 'mov'
[AD5B] <1000>                ENDIF
[AD5E] <1000>                IF lLeftWeaponLimit < gVcr.Left.NumBeams THEN
[AD64] <0304>                  gVcr.Left.NumBeams := lLeftWeaponLimit    // was a 'mov'
[AD67] <1000>                ENDIF
[AD67] <1000>              ENDIF
[AD67] <1000>              IF (gConfig.AllowFedCrewBonus = 1 && gVcr.Left.Player = 1) THEN
[AD7B] <1000>                IF gVcr.Left.NumBays > 0 THEN
[AD82] <1000>                  gVcr.Left.NumBays := gVcr.Left.NumBays + 3
[AD87] <1000>                ENDIF
[AD87] <1000>                gVcr.MassL := gVcr.MassL + 50
[AD8C] <1000>                gVcr.ShieldL := gVcr.ShieldL + 25
[AD91] <1000>                IF gVcr.ShieldL > 100 THEN
[AD98] <0304>                  gVcr.ShieldL := 100    // was a 'mov'
[AD9E] <1000>                ENDIF
[AD9E] <1000>              ENDIF
[AD9E] <0304>              lvFFE6L := 100L    // was a 'mov'
[ADA8] <1000>              ++lvFFBC
[ADAF] <0304>              lvFF88L := lvFFBC    // was a 'mov'
[ADCE] <0304>              lvFFEAL := ((lvFFE6L * (lvFFBC - 1L)) + 3L)    // was a 'mov'
[ADD4] <1000>              FilePut #lvFFBE, pos >((lvFFE6L * (lvFFBC - 1L)) + 3L):<((lvFFE6L * (lvFFBC - 1L)) + 3L), DS:gVcr.Seed, 100 bytes
[ADE7] <1000>              FilePut #lvFFBE, pos 1L, DS:lvFFBC, 2 bytes
[ADFC] <0304>              lvFF86 := 464    // was a 'mov'
[AE0A] <1000>              lvFF82 := GetString_10AE_CBBA (lvFF86)
[AE17] <1000>              Print1 lvFF82
[AE20] <1000>              VcrRun_0EE2_02EE (gVcr.Seed)
[AE25] <1000>              lvFF7E := ""
[AE39] <1000>              LogString_10AE_754B (lvFF7E)
[AE4D] <0304>              gShipShield((2 * lShipId)) := gVcr.ShieldL    // was a 'mov'
[AE63] <0304>              gPlanetShield((2 * lPlanetId)) := gVcr.ShieldR    // was a 'mov'
[AE69] <1000>              lBaseDamage := lBaseDamage + gVcr.Right.Damage
[AE6C] <1000>              IF lHaveBase = 1 THEN
[AE78] <0304>                gBase.Damage := lBaseDamage    // was a 'mov'
[AE7B] <1000>                IF lBaseDamage > 100 THEN
[AE8B] <0304>                  gBaseOwners((2 * lPlanetId)) := 0    // was a 'mov'
[AE90] <0304>                  gBase.Owner := 0    // was a 'mov'
[AE96] <1000>                ENDIF
[AE96] <1000>              ENDIF
[AE96] <0304>              lvFF7AL := 0L    // was a 'mov'
[AEA2] <0304>              lvFF78 := 0    // was a 'mov'
[AEAB] <0304>              gShip.Damage := gVcr.Left.Damage    // was a 'mov'
[AEB1] <0304>              gShip.Ammo := gVcr.Left.Ammo    // was a 'mov'
[AEB7] <0304>              gShip.Crew := gVcr.Left.Crew    // was a 'mov'
[AEBA] <1000>              ShipSave_0000_D099 ()
[AEBF] <1000>              lvFF74 := gVcr.Right.Damage
[AECB] <1000>              lvFF70 := ((100 - lvFF74) / 100)
[AEE1] <1000>              gPlanet.Defense := ERND((gPlanet.Defense * lvFF70))
[AEF9] <0304>              lvFF6E := (gVcr.Right.Crew - gVcr.Right.Ammo)    // was a 'mov'
[AEFD] <1000>              IF lHaveBase = 1 THEN
[AF0A] <0304>                lvFF6C := gBase.Fighters    // was a 'mov'
[AF0E] <1000>                lvFF6C := lvFF6C - (gVcr.Right.Crew - gVcr.Right.Ammo)
[AF12] <1000>                IF lvFF6C < 0 THEN
[AF19] <0304>                  AX := <lvFF6C    // was a 'mov'
[AF1E] <0107>         xor      AX, >lvFF6C
[AF20] <0106>         sub      AX, >lvFF6C
[AF22] <0304>                  lvFF6E := AX    // was a 'mov'
[AF26] <0304>                  gBase.Fighters := 0    // was a 'mov'
[AF2C] <1000>                ELSE
[AF33] <1000>                  gBase.Fighters := gBase.Fighters - lvFF6E
[AF37] <0304>                  lvFF6E := 0    // was a 'mov'
[AF3C] <1000>                ENDIF
[AF3D] <1000>                gBase.Defense := ERND((gBase.Defense * lvFF70))
[AF4E] <1000>                gBase.HullTech := ERND((gBase.HullTech * lvFF70))
[AF5F] <1000>                gBase.BeamTech := ERND((gBase.BeamTech * lvFF70))
[AF70] <1000>                gBase.TorpTech := ERND((gBase.TorpTech * lvFF70))
[AF81] <1000>                gBase.EngTech := ERND((gBase.EngTech * lvFF70))
[AF92] <1000>                IF gBase.HullTech < 1 THEN
[AF99] <0304>                  gBase.HullTech := 1    // was a 'mov'
[AF9F] <1000>                ENDIF
[AF9F] <1000>                IF gBase.BeamTech < 1 THEN
[AFA6] <0304>                  gBase.BeamTech := 1    // was a 'mov'
[AFAC] <1000>                ENDIF
[AFAC] <1000>                IF gBase.TorpTech < 1 THEN
[AFB3] <0304>                  gBase.TorpTech := 1    // was a 'mov'
[AFB9] <1000>                ENDIF
[AFB9] <1000>                IF gBase.EngTech < 1 THEN
[AFC0] <0304>                  gBase.EngTech := 1    // was a 'mov'
[AFC6] <1000>                ENDIF
[AFC6] <1000>              ENDIF
[AFCA] <1000>              gPlanet.Defense := gPlanet.Defense - lvFF6E
[AFCE] <1000>              IF gPlanet.Defense < 1 THEN
[AFD5] <0304>                gPlanet.Defense := 0    // was a 'mov'
[AFDB] <1000>              ENDIF
[AFDB] <1000>              IF gVcr.Left.Damage > 99 THEN
[AFE2] <0304>                lvFF78 := 1    // was a 'mov'
[AFF6] <0304>                gShipOwners((2 * lShipId)) := 0    // was a 'mov'
[AFFB] <0304>                gShip.Player := 0    // was a 'mov'
[B001] <0304>                gShip.Mission := 0    // was a 'mov'
[B007] <0304>                gShip.PE := 0    // was a 'mov'
[B00D] <1000>                gPlanet.ColHappy := gPlanet.ColHappy - 10
[B012] <1000>              ELSE
[B015] <1000>                IF gVcr.Left.Crew < 1 THEN
[B01C] <0304>                  lvFF78 := 1    // was a 'mov'
[B030] <0304>                  gShipOwners((2 * lShipId)) := 0    // was a 'mov'
[B035] <0304>                  gShip.Player := 0    // was a 'mov'
[B03B] <0304>                  gShip.Mission := 0    // was a 'mov'
[B041] <0304>                  gShip.PE := 0    // was a 'mov'
[B047] <1000>                ELSE
[B04A] <1000>                  IF gVcr.Right.Damage > 99 THEN
[B054] <0304>                    lvFF7A := 1    // was a 'mov'
[B06D] <0304>                    gPlanetOwners((2 * lPlanetId)) := gVcr.Left.Player    // was a 'mov'
[B070] <0304>                    gPlanet.Player := gVcr.Left.Player    // was a 'mov'
[B071] <0304>                    lvFF6A := (2 * lPlanetId)    // was a 'mov'
[B0C5] <1000>                    Packed(DS:gPlanet.FCode, 3) := DS:(("A" ++ Chr(ERND(((Random() * 20) + 65)))) ++ Chr(ERND(((Random() * 20) + 65))))
[B0D7] <1000>                    Packed(ES:gPlanetFCodes(<(3 * lvFF68)), 3) := Packed(DS:gPlanet.FCode, 3)
[B109] <0304>                    gBaseOwners(lvFF6A) := 0    // was a 'mov'
[B10E] <0304>                    gBase.Owner := 0    // was a 'mov'
[B114] <0304>                    gPlanet.ColL := 1L    // was a 'mov'
[B120] <1000>                  ENDIF
[B11F] <1000>                ENDIF
[B11F] <1000>              ENDIF
[B120] <1000>              IF gVcr.Right.Damage > 99 THEN
[B12A] <0304>                lvFF7A := 1    // was a 'mov'
[B143] <0304>                gPlanetOwners((2 * lPlanetId)) := gVcr.Left.Player    // was a 'mov'
[B146] <0304>                gPlanet.Player := gVcr.Left.Player    // was a 'mov'
[B147] <0304>                lvFF66 := (2 * lPlanetId)    // was a 'mov'
[B175] <1000>                Packed(DS:gPlanet.FCode, 3) := DS:("AA" ++ Chr(ERND(((Random() * 24) + 65))))
[B194] <0304>                gBaseOwners(lvFF66) := 0    // was a 'mov'
[B199] <0304>                gBase.Owner := 0    // was a 'mov'
[B19F] <0304>                gPlanet.ColL := 1L    // was a 'mov'
[B1AB] <1000>                IF gPlanet.NatClansL > 0L THEN
[B1BE] <1000>                  gPlanet.NatHappy := gPlanet.NatHappy - 20
[B1C3] <1000>                  dword ptr DS:[04F7h] := ERND((dword ptr DS:[04F7h] * 0.75))
[B1D4] <1000>                ENDIF
[B1D4] <1000>              ENDIF
[B1D4] <1000>              ShipSave_0000_D099 ()
[B1D9] <1000>              PlanetSave_0000_CA72 ()
[B1DE] <1000>              IF lHaveBase = 1 THEN
[B1EA] <0304>                gBaseId := lPlanetId    // was a 'mov'
[B1ED] <1000>                BaseSave_0000_C0A5 ()
[B1F2] <1000>              ENDIF
[B1F2] <1000>              GOSUB 0xB1FF	;  FIXME: better formatting
[B1FA] <1000>            ENDIF
[B1FA] <1000>            RETURN
[B1FF] <1000>            IF (lvFF7A = 0 && lvFF7C = 0) THEN
[B213] <1000>              IF lvFF78 = 0 THEN
[B21D] <0304>                lvFF64 := 465    // was a 'mov'
[B22D] <1000>                lvFF60 := GetString_10AE_CBBA (lvFF64)
[B23C] <1000>                lvFF46 := lvFF60
[B279] <1000>                lvFF46 := ((lvFF46 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ Packed(DS:gCR, 1))
[B284] <0304>                lvFF5E := 466    // was a 'mov'
[B294] <1000>                lvFF5A := GetString_10AE_CBBA (lvFF5E)
[B2A3] <1000>                lvFF46 := lvFF46 ++ lvFF5A
[B2BC] <1000>                lvFF56 := PlanetName_0000_AACC (lPlanetId)
[B2EA] <1000>                lvFF46 := ((lvFF46 ++ lvFF56) ++ Packed(DS:gCR, 1))
[B2F5] <0304>                lvFF54 := 3    // was a 'mov'
[B308] <1000>                lvFF50 := GetRaceName_0000_B063 (lvFF54, gVcr.Right.Player)
[B313] <0304>                lvFF4E := 490    // was a 'mov'
[B323] <1000>                lvFF4A := GetString_10AE_CBBA (lvFF4E)
[B351] <1000>                lvFF46 := (((lvFF46 ++ "a ") ++ lvFF50) ++ lvFF4A)
[B35C] <1000>                lvFF42 := "f0"
[B379] <1000>                SendMessage_0000_AD12 (lvFF46, gVcr.Left.Id, lvFF42, gVcr.Left.Player)
[B37E] <0304>                lvFF40 := 467    // was a 'mov'
[B38E] <1000>                lvFF3C := GetString_10AE_CBBA (lvFF40)
[B39D] <1000>                lvFF46 := lvFF3C
[B3B1] <1000>                lvFF38 := PlanetName_0000_AACC (lPlanetId)
[B3DF] <1000>                lvFF46 := ((lvFF46 ++ lvFF38) ++ Packed(DS:gCR, 1))
[B3EA] <0304>                lvFF36 := 468    // was a 'mov'
[B3FA] <1000>                lvFF32 := GetString_10AE_CBBA (lvFF36)
[B409] <1000>                lvFF46 := lvFF46 ++ lvFF32
[B419] <0304>                lvFF30 := 469    // was a 'mov'
[B429] <1000>                lvFF2C := GetString_10AE_CBBA (lvFF30)
[B434] <0304>                lvFF2A := 3    // was a 'mov'
[B447] <1000>                lvFF26 := GetRaceName_0000_B063 (lvFF2A, gVcr.Left.Player)
[B480] <1000>                lvFF46 := (((lvFF46 ++ lvFF2C) ++ lvFF26) ++ Packed(DS:gCR, 1))
[B48B] <0304>                lvFF24 := 470    // was a 'mov'
[B49B] <1000>                lvFF20 := GetString_10AE_CBBA (lvFF24)
[B4E6] <1000>                lvFF46 := ((((lvFF46 ++ lvFF20) ++ Packed(DS:gVcr.Left.Name, 20)) ++ ".") ++ Packed(DS:gCR, 1))
[B4F1] <1000>                lvFF1C := "p0"
[B50F] <1000>                SendMessage_0000_AD12 (lvFF46, lPlanetId, lvFF1C, gVcr.Right.Player)
[B514] <1000>              ENDIF
[B514] <1000>            ENDIF
[B514] <1000>            IF lvFF78 = 1 THEN
[B51E] <0304>              lvFF1A := 471    // was a 'mov'
[B52E] <1000>              lvFF16 := GetString_10AE_CBBA (lvFF1A)
[B53D] <1000>              lvFF46 := lvFF16
[B57A] <1000>              lvFF46 := ((lvFF46 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ Packed(DS:gCR, 1))
[B585] <0304>              lvFF14 := 472    // was a 'mov'
[B595] <1000>              lvFF10 := GetString_10AE_CBBA (lvFF14)
[B5A4] <1000>              lvFF46 := lvFF46 ++ lvFF10
[B5B4] <0304>              lvFF0E := 473    // was a 'mov'
[B5C4] <1000>              lvFF0A := GetString_10AE_CBBA (lvFF0E)
[B5D3] <1000>              lvFF46 := lvFF46 ++ lvFF0A
[B5EC] <1000>              lvFF06 := PlanetName_0000_AACC (lPlanetId)
[B61A] <1000>              lvFF46 := ((lvFF46 ++ lvFF06) ++ Packed(DS:gCR, 1))
[B625] <0304>              lvFF04 := 3    // was a 'mov'
[B638] <1000>              lvFF00 := GetRaceName_0000_B063 (lvFF04, gVcr.Right.Player)
[B643] <0304>              lvFEFE := 490    // was a 'mov'
[B653] <1000>              lvFEFA := GetString_10AE_CBBA (lvFEFE)
[B681] <1000>              lvFF46 := (((lvFF46 ++ "a ") ++ lvFF00) ++ lvFEFA)
[B68C] <1000>              IF gVcr.Left.Player = 2 THEN
[B696] <1000>                IF gVcr.Left.Damage <= 150 THEN
[B6A1] <0304>                  lvFEF8 := 474    // was a 'mov'
[B6B1] <1000>                  lvFEF4 := GetString_10AE_CBBA (lvFEF8)
[B6C0] <1000>                  lvFF46 := lvFF46 ++ lvFEF4
[B701] <1000>                  lvFF46 := (((lvFF46 ++ Str(gVcr.Left.Damage)) ++ "%") ++ Packed(DS:gCR, 1))
[B70C] <0304>                  lvFEF2 := 475    // was a 'mov'
[B71C] <1000>                  lvFEEE := GetString_10AE_CBBA (lvFEF2)
[B72B] <1000>                  lvFF46 := lvFF46 ++ lvFEEE
[B73B] <1000>                ENDIF
[B73B] <1000>              ENDIF
[B73B] <1000>              lvFEEA := "f0"
[B758] <1000>              SendMessage_0000_AD12 (lvFF46, gVcr.Left.Id, lvFEEA, gVcr.Left.Player)
[B75D] <0304>              lvFEE8 := 476    // was a 'mov'
[B76D] <1000>              lvFEE4 := GetString_10AE_CBBA (lvFEE8)
[B77C] <1000>              lvFF46 := lvFEE4
[B787] <0304>              lvFEE2 := 477    // was a 'mov'
[B797] <1000>              lvFEDE := GetString_10AE_CBBA (lvFEE2)
[B7A6] <1000>              lvFF46 := lvFF46 ++ lvFEDE
[B7BF] <1000>              lvFEDA := PlanetName_0000_AACC (lPlanetId)
[B7ED] <1000>              lvFF46 := ((lvFF46 ++ lvFEDA) ++ Packed(DS:gCR, 1))
[B7F8] <0304>              lvFED8 := 478    // was a 'mov'
[B808] <1000>              lvFED4 := GetString_10AE_CBBA (lvFED8)
[B817] <1000>              lvFF46 := lvFF46 ++ lvFED4
[B827] <0304>              lvFED2 := 3    // was a 'mov'
[B83A] <1000>              lvFECE := GetRaceName_0000_B063 (lvFED2, gVcr.Left.Player)
[B845] <0304>              lvFECC := 491    // was a 'mov'
[B855] <1000>              lvFEC8 := GetString_10AE_CBBA (lvFECC)
[B87A] <1000>              lvFF46 := ((lvFF46 ++ lvFECE) ++ lvFEC8)
[B8C0] <1000>              lvFF46 := (((lvFF46 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ ".") ++ Packed(DS:gCR, 1))
[B8CB] <1000>              lvFEC4 := "p0"
[B8E9] <1000>              SendMessage_0000_AD12 (lvFF46, lPlanetId, lvFEC4, gVcr.Right.Player)
[B8EE] <0304>              lvFEC2 := 479    // was a 'mov'
[B8FE] <1000>              lvFEBE := GetString_10AE_CBBA (lvFEC2)
[B90D] <1000>              lvFF46 := lvFEBE
[B925] <0304>              lvFEB6 := (2 * lPlanetId)    // was a 'mov'
[B98A] <1000>              lvFF46 := ((((((lvFF46 ++ "(") ++ Str(gPlanetX((2 * lPlanetId)))) ++ " ,") ++ Str(gPlanetY(lvFEB6))) ++ " )") ++ Packed(DS:gCR, 1))
[B995] <0304>              lvFEBC := 480    // was a 'mov'
[B9A5] <1000>              lvFEB8 := GetString_10AE_CBBA (lvFEBC)
[B9B4] <1000>              lvFF46 := lvFF46 ++ lvFEB8
[B9F0] <1000>              lvFF46 := ((lvFF46 ++ Packed(DS:gVcr.Left.Name, 20)) ++ Packed(DS:gCR, 1))
[B9FB] <1000>              ++gBangCount
[B9FF] <1000>              IF gBangCount <= 50 THEN
[BA09] <1000>                FOR lvFEB0 := 1 TO 11 DO
[BA10] <1000>                  IF (lvFEB0 <> gVcr.Left.Player && lvFEB0 <> gVcr.Right.Player) THEN
[BA2F] <1000>                    IF gPlayerIsActive((2 * lvFEB0)) = 1 THEN
[BA38] <1000>                      lvFEB2 := "x0"
[BA57] <1000>                      SendMessage_0000_AD12 (lvFF46, gBangCount, lvFEB2, lvFEB0)
[BA5C] <1000>                    ENDIF
[BA5C] <1000>                  ENDIF
[BA61] <1000>                NEXT lvFEB0
[BA6A] <1000>              ENDIF
[BA6A] <1000>            ENDIF
[BA6A] <1000>            IF lvFF7C = 1 THEN
[BA74] <0304>              lvFEAE := 481    // was a 'mov'
[BA84] <1000>              lvFEAA := GetString_10AE_CBBA (lvFEAE)
[BA93] <1000>              lvFF46 := lvFEAA
[BAA7] <1000>              lvFEA6 := PlanetName_0000_AACC (lPlanetId)
[BAD5] <1000>              lvFF46 := ((lvFF46 ++ lvFEA6) ++ Packed(DS:gCR, 1))
[BAE0] <0304>              lvFEA4 := 482    // was a 'mov'
[BAF0] <1000>              lvFEA0 := GetString_10AE_CBBA (lvFEA4)
[BAFF] <1000>              lvFF46 := lvFF46 ++ lvFEA0
[BB0F] <0304>              lvFE9E := 3    // was a 'mov'
[BB22] <1000>              lvFE9A := GetRaceName_0000_B063 (lvFE9E, gVcr.Left.Player)
[BB2D] <0304>              lvFE98 := 491    // was a 'mov'
[BB3D] <1000>              lvFE94 := GetString_10AE_CBBA (lvFE98)
[BB62] <1000>              lvFF46 := ((lvFF46 ++ lvFE9A) ++ lvFE94)
[BBA8] <1000>              lvFF46 := (((lvFF46 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ ".") ++ Packed(DS:gCR, 1))
[BBB3] <1000>              lvFE90 := "p0"
[BBD1] <1000>              SendMessage_0000_AD12 (lvFF46, lPlanetId, lvFE90, gVcr.Right.Player)
[BBD6] <0304>              lvFE8E := 483    // was a 'mov'
[BBE6] <1000>              lvFE8A := GetString_10AE_CBBA (lvFE8E)
[BBF5] <1000>              lvFF46 := lvFE8A
[BC32] <1000>              lvFF46 := ((lvFF46 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ Packed(DS:gCR, 1))
[BC3D] <0304>              lvFE88 := 484    // was a 'mov'
[BC4D] <1000>              lvFE84 := GetString_10AE_CBBA (lvFE88)
[BC5C] <1000>              lvFF46 := lvFF46 ++ lvFE84
[BC6C] <0304>              lvFE82 := 3    // was a 'mov'
[BC7F] <1000>              lvFE7E := GetRaceName_0000_B063 (lvFE82, gVcr.Right.Player)
[BC8A] <0304>              lvFE7C := 485    // was a 'mov'
[BC9A] <1000>              lvFE78 := GetString_10AE_CBBA (lvFE7C)
[BCBF] <1000>              lvFF46 := ((lvFF46 ++ lvFE7E) ++ lvFE78)
[BCD3] <1000>              lvFE74 := PlanetName_0000_AACC (lPlanetId)
[BD0A] <1000>              lvFF46 := (((lvFF46 ++ lvFE74) ++ ".") ++ Packed(DS:gCR, 1))
[BD15] <1000>              lvFE70 := "e0"
[BD32] <1000>              SendMessage_0000_AD12 (lvFF46, gVcr.Left.Id, lvFE70, gVcr.Left.Player)
[BD37] <1000>            ENDIF
[BD37] <1000>            IF lvFF7A = 1 THEN
[BD41] <0304>              lvFE6E := 486    // was a 'mov'
[BD51] <1000>              lvFE6A := GetString_10AE_CBBA (lvFE6E)
[BD8E] <1000>              lvFF46 := ((lvFE6A ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ Packed(DS:gCR, 1))
[BD99] <0304>              lvFE68 := 487    // was a 'mov'
[BDA9] <1000>              lvFE64 := GetString_10AE_CBBA (lvFE68)
[BDB8] <1000>              lvFF46 := lvFF46 ++ lvFE64
[BDC8] <0304>              lvFE62 := 3    // was a 'mov'
[BDDB] <1000>              lvFE5E := GetRaceName_0000_B063 (lvFE62, gVcr.Right.Player)
[BDE6] <0304>              lvFE5C := 490    // was a 'mov'
[BDF6] <1000>              lvFE58 := GetString_10AE_CBBA (lvFE5C)
[BE1B] <1000>              lvFF46 := ((lvFF46 ++ lvFE5E) ++ lvFE58)
[BE2F] <1000>              lvFE54 := PlanetName_0000_AACC (lPlanetId)
[BE66] <1000>              lvFF46 := (((lvFF46 ++ lvFE54) ++ ".") ++ Packed(DS:gCR, 1))
[BE71] <1000>              lvFE50 := "f0"
[BE8E] <1000>              SendMessage_0000_AD12 (lvFF46, gVcr.Left.Id, lvFE50, gVcr.Left.Player)
[BE93] <0304>              lvFE4E := 488    // was a 'mov'
[BEA3] <1000>              lvFE4A := GetString_10AE_CBBA (lvFE4E)
[BEB2] <1000>              lvFF46 := lvFE4A
[BEC6] <1000>              lvFE46 := PlanetName_0000_AACC (lPlanetId)
[BEF4] <1000>              lvFF46 := ((lvFF46 ++ lvFE46) ++ Packed(DS:gCR, 1))
[BEFF] <0304>              lvFE44 := 489    // was a 'mov'
[BF0F] <1000>              lvFE40 := GetString_10AE_CBBA (lvFE44)
[BF1E] <1000>              lvFF46 := lvFF46 ++ lvFE40
[BF2E] <0304>              lvFE3E := 3    // was a 'mov'
[BF41] <1000>              lvFE3A := GetRaceName_0000_B063 (lvFE3E, gVcr.Left.Player)
[BF4C] <0304>              lvFE38 := 491    // was a 'mov'
[BF5C] <1000>              lvFE34 := GetString_10AE_CBBA (lvFE38)
[BF81] <1000>              lvFF46 := ((lvFF46 ++ lvFE3A) ++ lvFE34)
[BFC7] <1000>              lvFF46 := (((lvFF46 ++ RTrim(Packed(DS:gVcr.Left.Name, 20))) ++ ".") ++ Packed(DS:gCR, 1))
[BFD2] <1000>              lvFE30 := "p0"
[BFF0] <1000>              SendMessage_0000_AD12 (lvFF46, lPlanetId, lvFE30, gVcr.Right.Player)
[BFF5] <1000>            ENDIF
[BFF5] <1000>            RETURN
[BFFA] <1001>   LABEL    0001h
[BFFD] <1000>            UnDim lvFFD4
[C003] <1000>            ' leave_frame
[C008] <0504>   retf     0000h
       END SUB
