diff --git a/Atari/gr_basics.asm b/Atari/gr_basics.asm index 8cc6c1b..f651892 100644 --- a/Atari/gr_basics.asm +++ b/Atari/gr_basics.asm @@ -402,6 +402,18 @@ NoClearTanks ; in: CharCode ; in: left LOWER corner of the char coordinates (xdraw, ydraw) ;-------------------------------------------------- + ; check coordinates + cpw xdraw #(screenwidth-7) + bcs CharOffTheScreen + lda ydraw + cmp #7 + bcc CharOffTheScreen + cmp #(screenHeight-1) + bcc CharOnTheScreen +CharOffTheScreen + rts +CharOnTheScreen +Fast ; Put char without coordinates check! ; char to the table lda CharCode sta fontind @@ -560,6 +572,7 @@ EndPutChar jcs TypeChar.EndPutChar ;nearest RTS ; checks ommited. ; char to the table +Fast ; Put char without coordinates check! lda CharCode4x4 and #%00000001 beq Upper4bits ; A=0 diff --git a/C64/gr_basics.asm b/C64/gr_basics.asm index 42fa27f..5de54a0 100644 --- a/C64/gr_basics.asm +++ b/C64/gr_basics.asm @@ -303,6 +303,18 @@ NoMountain ; in: CharCode ; in: left LOWER corner of the char coordinates (xdraw, ydraw) ;-------------------------------------------------- + ; check coordinates + cpw xdraw #(screenwidth-7) + bcs CharOffTheScreen + lda ydraw + cmp #7 + bcc CharOffTheScreen + cmp #(screenHeight-1) + bcc CharOnTheScreen +CharOffTheScreen + rts +CharOnTheScreen +Fast ; Put char without coordinates check! ; char to the table lda CharCode sta fontind @@ -456,6 +468,7 @@ EndPutChar jcs TypeChar.EndPutChar ;nearest RTS ; checks ommited. ; char to the table +Fast ; Put char without coordinates check! lda CharCode4x4 and #%00000001 beq Upper4bits ; A=0 diff --git a/artwork/weapons_AW6_mod.fnt b/artwork/weapons_AW6_mod.fnt index ae0dec7..ef44e8c 100644 Binary files a/artwork/weapons_AW6_mod.fnt and b/artwork/weapons_AW6_mod.fnt differ diff --git a/constants.asm b/constants.asm index 9741687..9517790 100644 --- a/constants.asm +++ b/constants.asm @@ -638,7 +638,7 @@ CreditsStart dta d" "* dta d"Ideas, help and QA"^ dta d"Bocianu, Probabilitydragon,"^ - dta d"EnderDude, Dracon,"^ + dta d"EnderDude, Dracon, TDC,"^ dta d"Beeblebrox, KrzysRog, lopezpb,"^ dta d"brad-colbert, archon800, nowy80,"^ dta d"Shaggy the Atarian, RetroBorsuk, ZPH" diff --git a/grafproc.asm b/grafproc.asm index aba1a93..b857e37 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -660,7 +660,7 @@ DrawTankNrX ldx tanknr jsr SetupXYdraw - jsr TypeChar + jsr TypeChar.Fast lda Erase jne noTankNoPM ; now P/M graphics on the screen (only for 5 tanks) @@ -787,7 +787,7 @@ DrawTankFlag sec sbc #8 sta ydraw - jsr TypeChar + jsr TypeChar.Fast NoShieldDraw BarrelChange ldy #$01 @@ -925,7 +925,7 @@ tankflash_loop sbc #8 sta ydraw jsr SetupXYdraw.X - jsr TypeChar + jsr TypeChar.Fast ToHighToParachute ldx TankNr rts diff --git a/scorch.asm b/scorch.asm index 473b940..9044095 100644 --- a/scorch.asm +++ b/scorch.asm @@ -24,7 +24,7 @@ ;--------------------------------------------------- .macro build - dta d"1.31" ; number of this build (4 bytes) + dta d"1.32" ; number of this build (4 bytes) .endm .macro RMTSong diff --git a/scorch.bin b/scorch.bin index ff98dec..64c8452 100644 Binary files a/scorch.bin and b/scorch.bin differ diff --git a/scorch.xex b/scorch.xex index e47beb2..ea21e98 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/scorchC64.asm b/scorchC64.asm index 4480db9..8963785 100644 --- a/scorchC64.asm +++ b/scorchC64.asm @@ -24,7 +24,7 @@ ;--------------------------------------------------- .macro build - dta d"1.28" ; number of this build (4 bytes) + dta d"1.32" ; number of this build (4 bytes) .endm .macro RMTSong diff --git a/scorchC64.prg b/scorchC64.prg index 471f9b8..e17acad 100644 Binary files a/scorchC64.prg and b/scorchC64.prg differ diff --git a/weapons.asm b/weapons.asm index 7cd9c23..7f3fb50 100644 --- a/weapons.asm +++ b/weapons.asm @@ -294,16 +294,7 @@ LastNapalmRepeat lda #char_clear_flame ; clear flame symbol PutFlameChar sta CharCode - ; check coordinates - cpw xdraw #(screenwidth-7) - bcs CharOffTheScreen - lda ydraw - cmp #7 - bcc CharOffTheScreen - cmp #(screenHeight-1) - bcs CharOffTheScreen jsr TypeChar -CharOffTheScreen adw xdraw #5 ; reverse half character correction (4 px - we need positon of character center) and next char 1 pixels to righ inc magic+1 lda magic+1 @@ -443,8 +434,7 @@ WriteToBranches sta digtabyH,x dex bpl WriteToBranches - ;jsr DiggerCharacter ; start character ; No memory to check Y range! Let's not draw this char - fix for very high mountans - + jsr DiggerCharacter ; start character adw xdraw #4 lda DigLong ; looks strange, but it is (DigLong+2)*4 @@ -503,29 +493,6 @@ DigUp ; sbc #$00 @ ; sta digtabyH,x DigCalculateNext - ;second crashing bug here :) - if too much subtracted from digtaby, it gets under 8 (char height) and starts writing over random areas - lda digtabyH,x - bmi ToHigh -; cmp #0 ; necessary only if screenheight > 255 -; bne @+ - lda digtabyL,x - cmp #7 -;@ - bcs CheckLow -ToHigh - lda #0 - sta digtabyH,x - lda #7 - sta digtabyL,x -CheckLow - ;crashing bug here - if too much added to digtaby, it gets over screenheight and starts writing over random areas - ;WARNING! fix for 1 byte screenheight. TODO - lda digtabyL,x - cmp #screenheight - bcc @+ ; branch if less - lda #screenheight-1 - sta digtabyL,x -@ dex bpl CalculateBranches ; here we draw...