diff --git a/Art/015Crosshair.gif b/Art/015Crosshair.gif new file mode 100644 index 0000000..f34d83a Binary files /dev/null and b/Art/015Crosshair.gif differ diff --git a/Art/015Crosshair.xcf b/Art/015Crosshair.xcf new file mode 100644 index 0000000..4ced8f0 Binary files /dev/null and b/Art/015Crosshair.xcf differ diff --git a/GSCats.xcodeproj/project.pbxproj b/GSCats.xcodeproj/project.pbxproj index 50dcf15..2af5501 100644 --- a/GSCats.xcodeproj/project.pbxproj +++ b/GSCats.xcodeproj/project.pbxproj @@ -15,12 +15,14 @@ 700F21E01F4A3A5500D7007D /* GenerateTrigTables.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateTrigTables.py; sourceTree = ""; }; 700F72872112428D00225B17 /* RenumberSpriteFiles.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = RenumberSpriteFiles.sh; sourceTree = ""; }; 700FFAFB1F40F3BF00A442DE /* font.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = font.s; sourceTree = ""; }; + 705456862A43E03B00A2B866 /* GeneratePixelCircle.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GeneratePixelCircle.py; sourceTree = ""; }; 7059502B1F37A0BE00BBE90F /* GenerateVRAMTable.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateVRAMTable.py; sourceTree = ""; }; 705AAFA920040B0D001BB0ED /* terrain_e1.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = terrain_e1.s; sourceTree = ""; }; 705C54E62124B7F300515A6B /* fan.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = fan.s; sourceTree = ""; }; 706DF1641F2D39F700AA6680 /* loader.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = loader.s; sourceTree = ""; }; 706DF1651F2D4A8100AA6680 /* terrain.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = terrain.s; sourceTree = ""; }; 7088096D1F2ECE8D00D4C950 /* GenerateRenderSpans.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateRenderSpans.py; sourceTree = ""; }; + 708D1B1E27B9A1A600909AFC /* crosshair.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = crosshair.s; sourceTree = ""; }; 709175C01F60D263008FAFAB /* GenerateCircles.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateCircles.py; sourceTree = ""; }; 7099E3841F41022100182A82 /* gameobject.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gameobject.s; sourceTree = ""; }; 7099E3851F4107B100182A82 /* GenerateVRAMYOffset.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateVRAMYOffset.py; sourceTree = ""; }; @@ -66,6 +68,7 @@ 700B5E6F2069831000B31C00 /* inventory.s */, 700F21DF1F4A364600D7007D /* projectile.s */, 705C54E62124B7F300515A6B /* fan.s */, + 708D1B1E27B9A1A600909AFC /* crosshair.s */, 70A80FB01F43D7F200BD34C9 /* gamemanager.s */, 70E554C41F807ADB00F3C871 /* spritebank.s */, 70E9D8611F2BD95400555C19 /* gscats.s */, @@ -77,6 +80,7 @@ 7059502B1F37A0BE00BBE90F /* GenerateVRAMTable.py */, 7099E3851F4107B100182A82 /* GenerateVRAMYOffset.py */, 700F21E01F4A3A5500D7007D /* GenerateTrigTables.py */, + 705456862A43E03B00A2B866 /* GeneratePixelCircle.py */, 709175C01F60D263008FAFAB /* GenerateCircles.py */, 70BDCBCA200A99F200CB51F1 /* ParseMapFile.py */, ); diff --git a/GeneratePixelCircle.py b/GeneratePixelCircle.py new file mode 100755 index 0000000..02a54a2 --- /dev/null +++ b/GeneratePixelCircle.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 + +import sys +import math + +def main(argv): + + print ("pixelCircle90X:\t\t; X values of half a 90 pixel-radius circle, indexed by angle",end="") + print ("\n\t.word ", end="") + + rowCount=0 + endAngle = 181 + + for y in range(0,endAngle): + x = math.trunc(math.cos(math.radians(y)) * 90) + print ("%d" % x, end="") + + rowCount += 1 + if (rowCount<10 and y