diff --git a/BuGS.xcodeproj/project.pbxproj b/BuGS.xcodeproj/project.pbxproj index fe910f2..c0aa455 100644 --- a/BuGS.xcodeproj/project.pbxproj +++ b/BuGS.xcodeproj/project.pbxproj @@ -79,6 +79,7 @@ 9D33970024AEFBF2003222B3 /* segments.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = segments.s; sourceTree = ""; }; 9D33970124AF9D55003222B3 /* sprites.macros */ = {isa = PBXFileReference; lastKnownFileType = text; path = sprites.macros; sourceTree = ""; }; 9D47CBE02547BEDB00CDA5CB /* gameMushroom.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gameMushroom.s; sourceTree = ""; }; + 9D47CC14254A698900CDA5CB /* gamePlayer.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gamePlayer.s; sourceTree = ""; }; 9D62AF3B249871A300348F45 /* colour.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = colour.s; sourceTree = ""; }; 9D62AF3F2499CD1E00348F45 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 9D62AF402499CD3A00348F45 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; @@ -143,6 +144,7 @@ 9DB1505324C9E54C00558B87 /* gameSpider.s */, 9DB1505424D3BF6C00558B87 /* gameSegments.s */, 9D47CBE02547BEDB00CDA5CB /* gameMushroom.s */, + 9D47CC14254A698900CDA5CB /* gamePlayer.s */, 9D8AF0B72535542400C10E3C /* level.s */, 9D8AF0B82535543000C10E3C /* score.s */, 9D62AF3B249871A300348F45 /* colour.s */, diff --git a/BuGS/game.s b/BuGS/game.s index 06e0338..325692a 100644 --- a/BuGS/game.s +++ b/BuGS/game.s @@ -104,6 +104,7 @@ gameLoop anop sta >BORDER_COLOUR_REGISTER long i,m + jsl updatePlayer jsl updateScorpion jsl updateSpider jsl updateFlea diff --git a/BuGS/gamePlayer.s b/BuGS/gamePlayer.s new file mode 100644 index 0000000..df6ffb7 --- /dev/null +++ b/BuGS/gamePlayer.s @@ -0,0 +1,70 @@ +; +; gamePlayer.s +; BuGS +; +; Created by Jeremy Rand on 2020-10-28. +;Copyright © 2020 Jeremy Rand. All rights reserved. +; + + case on + mcopy gamePlayer.macros + keep gamePlayer + +gamePlayer start + using globalData + +updatePlayer entry + lda gameRunning + beq updatePlayer_gameRunning + rtl +updatePlayer_gameRunning anop + pha + pha + pha + ~ReadMouse + pla + pla + pla + lsr a + bcs updatePlayer_shift + adc #$9834 + tay + jsl drawShip + bra updatePlayer_dirty + +updatePlayer_shift anop + adc #$9834 + tay + jsl drawShipShift + bra updatePlayer_dirty + +updatePlayer_dirty anop + lda #TILE_STATE_DIRTY + sta tileDirty+1200 + sta tileDirty+1202 + sta tileDirty+1204 + sta tileDirty+1206 + sta tileDirty+1208 + sta tileDirty+1210 + sta tileDirty+1212 + sta tileDirty+1214 + sta tileDirty+1216 + sta tileDirty+1218 + sta tileDirty+1220 + sta tileDirty+1222 + sta tileDirty+1224 + sta tileDirty+1226 + sta tileDirty+1228 + sta tileDirty+1230 + sta tileDirty+1232 + sta tileDirty+1234 + sta tileDirty+1236 + sta tileDirty+1238 + sta tileDirty+1240 + sta tileDirty+1242 + sta tileDirty+1244 + sta tileDirty+1246 + sta tileDirty+1248 + rtl + + end diff --git a/BuGS/main.c b/BuGS/main.c index 2c61e5e..4bf507a 100644 --- a/BuGS/main.c +++ b/BuGS/main.c @@ -60,6 +60,11 @@ int main(void) srand(randomSeed); randInit(); + InitMouse(0); + SetMouse(transparent); + ClampMouse(0, (GAME_NUM_TILES_WIDE - 1) * 8, 0, 8 * 5); + PosMouse(GAME_NUM_TILES_WIDE * 4, 8 * 5); + initTiles(); initNonGameTiles(); addStartingMushrooms();