From 12eba970d902be8c0db2e4af3a4abfc28b5853a3 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 22 Dec 2025 10:50:32 +0100 Subject: [PATCH] Teams results calculation and display --- Atari/textproc.asm | 4 ++++ game.asm | 52 +++++++++++++++++++++++++++++++++++++++++++-- scorch.xex | Bin 32595 -> 32691 bytes variables.asm | 2 +- 4 files changed, 55 insertions(+), 3 deletions(-) diff --git a/Atari/textproc.asm b/Atari/textproc.asm index 2beb1f6..84f9726 100644 --- a/Atari/textproc.asm +++ b/Atari/textproc.asm @@ -2098,6 +2098,10 @@ AngleDisplay .proc RoundOverSprites ; fill sprites with bytes ldy numberOfPlayers + bit TeamGame + bvc NoTeamSprites + ldy #2 ; 2 teams +NoTeamSprites dey lda gameOverSpritesTop,y sta temp diff --git a/game.asm b/game.asm index a33b240..658963b 100644 --- a/game.asm +++ b/game.asm @@ -173,9 +173,45 @@ esubstractlose sbc loseH,x sta EarnedMoneyH,x eskipzeroing - dex jpl CalculateGainsLoop + ; Team game calculations + ; set initial values + inx ; now X=0 + txa + inx ; now X=1 +initialTeamsVal + sta ResultsTable+MaxPlayers,x + sta DirectHits+MaxPlayers,x + sta EarnedMoneyH+MaxPlayers,x + sta EarnedMoneyL+MaxPlayers,x + dex + bpl initialTeamsVal + ; and now Team scores calculations + tax ; now X=0 + tay +CalculateTeamsResults + clc + lda ResultsTable+MaxPlayers,y + adc ResultsTable,x + sta ResultsTable+MaxPlayers,y + clc + lda DirectHits+MaxPlayers,y + adc DirectHits,x + sta DirectHits+MaxPlayers,y + clc + lda EarnedMoneyL+MaxPlayers,y + adc EarnedMoneyL,x + sta EarnedMoneyL+MaxPlayers,y + lda EarnedMoneyH+MaxPlayers,y + adc EarnedMoneyH,x + sta EarnedMoneyH+MaxPlayers,y + tya + eor #$01 ; swap team + tay + inx + cpx NumberOfPlayers + bne CalculateTeamsResults rts .endp ;-------------------------------------------------- @@ -978,6 +1014,11 @@ UsageLoop cpx NumberOfPlayers bcc GetRandomAgainX + ; and "sequence" for teans + ldx #MaxPlayers + stx TankSequence+MaxPlayers+1 ; B-Team + inx + stx TankSequence+MaxPlayers ; A-Team rts .endp ;---------------------------------------------- @@ -1353,6 +1394,10 @@ GameOver4x4 sbb ResultY #2 ;next line (was empty) ldx NumberOfPlayers ;we start from the highest (best) tank + bit TeamGame + bvc NoTeamsResults + ldx #MaxPlayers+2 ; set pointer to teams results +NoTeamsResults dex ;and it is the last one stx ResultOfTankNr ;in TankSequence table @@ -1419,7 +1464,10 @@ TankNameCopyLoop jsr TL4x4_empty dec ResultOfTankNr - bmi FinishResultDisplay + bmi FinishResultDisplay ; check for last player + lda ResultOfTankNr + cmp #MaxPlayers-1 ; check for last team + beq FinishResultDisplay sbb ResultY #2 ;distance between lines is smaller diff --git a/scorch.xex b/scorch.xex index ebfdaff11a035ce56d5051c6a3e8c90aeed38f7d..20566fb903ccdafcf99edfe97cbf5aa0a3311ffd 100644 GIT binary patch delta 9475 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