├── .gitignore ├── .dockerignore ├── data ├── application.ico ├── icons │ ├── icon_32x32.png │ ├── icon_48x48.png │ ├── icon_64x64.png │ └── icon_128x128.png ├── deb │ ├── azimuth.desktop │ ├── Dockerfile │ └── control ├── music │ ├── music17.txt │ ├── music18.txt │ ├── music21.txt │ ├── music12.txt │ ├── music14.txt │ └── music20.txt ├── win │ ├── info.rc │ └── Dockerfile ├── Info.plist └── rooms │ ├── room260.txt │ ├── room131.txt │ ├── room462.txt │ ├── room402.txt │ ├── room236.txt │ ├── room009.txt │ ├── room039.txt │ ├── room475.txt │ ├── room295.txt │ ├── room404.txt │ ├── room296.txt │ ├── room015.txt │ ├── room225.txt │ ├── room270.txt │ ├── room477.txt │ ├── room027.txt │ ├── room430.txt │ ├── room450.txt │ ├── room016.txt │ ├── room025.txt │ ├── room466.txt │ ├── room252.txt │ ├── room384.txt │ ├── room132.txt │ ├── room008.txt │ ├── room133.txt │ ├── room043.txt │ ├── room400.txt │ ├── room304.txt │ ├── room439.txt │ ├── room021.txt │ ├── room032.txt │ ├── room010.txt │ ├── room017.txt │ ├── room042.txt │ ├── room186.txt │ ├── room065.txt │ ├── room463.txt │ ├── room019.txt │ ├── room031.txt │ ├── room076.txt │ ├── room136.txt │ └── room471.txt └── src ├── azimuth ├── view │ ├── cursor.h │ ├── space.h │ ├── speck.h │ ├── pickup.h │ ├── victory.h │ ├── doodad.h │ ├── ship.h │ ├── baddie_kilofuge.h │ ├── particle.h │ ├── projectile.h │ ├── baddie_clam.h │ ├── baddie_core.h │ ├── baddie_wyrm.h │ ├── background.h │ ├── hud.h │ ├── baddie_night.h │ ├── baddie_vehicle.h │ ├── baddie_swooper.h │ ├── baddie.h │ ├── baddie_magbeest.h │ ├── baddie_spiner.h │ ├── baddie_myco.h │ ├── cutscene.h │ └── dialog.h ├── tick │ ├── node.h │ ├── ship.h │ ├── wall.h │ ├── pickup.h │ ├── cutscene.h │ ├── victory.h │ ├── camera.h │ ├── particle.h │ ├── speck.h │ ├── projectile.h │ ├── baddie_nocturne.h │ ├── baddie_core.h │ ├── door.h │ ├── baddie_clam.h │ ├── space.h │ ├── speck.c │ ├── baddie_oth_gunship.h │ ├── baddie_myco.h │ ├── baddie_vehicle.h │ └── particle.c ├── control │ ├── gameover.h │ ├── victory.h │ ├── paused.h │ └── space.h ├── system │ ├── resource.h │ └── generate_blob_index.sh ├── util │ ├── warning.c │ ├── clock.c │ └── clock.h └── state │ └── speck.h ├── editor ├── audit.h └── view.h ├── muse └── wave.h ├── zfxr └── view.h └── test └── string.c /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | /out/ 3 | /scratch/ 4 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !Makefile 3 | !data 4 | !src 5 | -------------------------------------------------------------------------------- /data/application.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdsteele/azimuth/HEAD/data/application.ico -------------------------------------------------------------------------------- /data/icons/icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdsteele/azimuth/HEAD/data/icons/icon_32x32.png -------------------------------------------------------------------------------- /data/icons/icon_48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdsteele/azimuth/HEAD/data/icons/icon_48x48.png -------------------------------------------------------------------------------- /data/icons/icon_64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdsteele/azimuth/HEAD/data/icons/icon_64x64.png -------------------------------------------------------------------------------- /data/icons/icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdsteele/azimuth/HEAD/data/icons/icon_128x128.png -------------------------------------------------------------------------------- /data/deb/azimuth.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Encoding=UTF-8 3 | Exec=azimuth 4 | Icon=azimuth 5 | Name=Azimuth 6 | Terminal=false 7 | Type=Application 8 | Version=1.0 9 | Categories=Game;ArcadeGame; 10 | -------------------------------------------------------------------------------- /data/deb/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | RUN apt-get update && apt-get install -y \ 3 | clang \ 4 | libgl1-mesa-dev \ 5 | libsdl2-dev \ 6 | make 7 | WORKDIR /azimuth 8 | COPY Makefile ./Makefile 9 | COPY src ./src 10 | COPY data ./data 11 | RUN make test 12 | RUN BUILDTYPE=release make clean 13 | RUN BUILDTYPE=release make linux_deb 14 | -------------------------------------------------------------------------------- /data/music/music17.txt: -------------------------------------------------------------------------------- 1 | @M "S !0a W|aABAACA" 2 | =title "Respite" 3 | 4 | =tempo 120 5 | 6 | 7 | !Part S 8 | 9 | 2 Wp50 L0 E400,15 10 | 3 Wt50 L200 E400,15 D+10,20 V1,50 11 | 5 Wn L40 12 | 13 | 14 | !Part W 15 | 16 | 3| rh a2h+w+w+w g2w+w+w+w | 17 | 5| rw+w+w+w+w x8w rw+w | 18 | 19 | !Part A 20 | 21 | 2| a3w+w+w+w g3w+w+w+w | 22 | 3| a2w+w+w+w g2w+w+w+w | 23 | 5| rw+w x8w rw+w x8w rw x8w | 24 | 25 | !Part B 26 | 27 | 2 L5 28 | 29 | !Part C 30 | 31 | 2 L0 32 | -------------------------------------------------------------------------------- /data/music/music18.txt: -------------------------------------------------------------------------------- 1 | @M "S|ABABCB" 2 | =title "Revelation" 3 | 4 | =key 2# % B minor 5 | =tempo 110 6 | 7 | 8 | !Part S 9 | 10 | 1 Wp50 L40 E0,0 11 | 2 Wp25 L30 E0,25 12 | 3 Wt25 L200 E15,15 13 | 4 Wn L30 E0,100 14 | 5 Wn L70 E0,100 15 | 16 | 17 | !Part A 18 | 19 | 2| rq ' b4s b f bs+ ' +s be fs ' be b | 20 | 3| b2w | 21 | 22 | !Part B 23 | 24 | 2| rq ' a4s a e as+ ' +s ae es ' ae a | 25 | 3| a2w | 26 | 27 | !Part C 28 | 29 | 2| rq ' g4s g d gs+ ' +s ge ds ' ge g | 30 | 3| g2w | 31 | -------------------------------------------------------------------------------- /data/music/music21.txt: -------------------------------------------------------------------------------- 1 | @M "S|A" 2 | =title "Requiem for a Planet" 3 | 4 | =key 2# % B minor 5 | =tempo 50 6 | 7 | 8 | !Part S 9 | 10 | 1 Wp25 L30 E0,25 11 | 2 Wp25 L20 E0,25 12 | 3 Wt25 L200 E15,15 13 | 14 | 15 | !Part A 16 | 17 | 1| b4e bs b ' be d5 ' ce a4e ' aq | 18 | 2| f3h a3h | 19 | 3| b2w | 20 | 21 | 1| g4e gs g ' ge d5 ' c d ' a4q | 22 | 2| d3h e3h | 23 | 3| g2w | 24 | 25 | 1| b4e bs b ' be d5 ' ce a4e ' aq | 26 | 2| f3h a3h | 27 | 3| b2w | 28 | 29 | 1| f5q e d c | 30 | 2| d4q a3 f a | 31 | 3| f2h a2 | 32 | -------------------------------------------------------------------------------- /data/deb/control: -------------------------------------------------------------------------------- 1 | Package: Azimuth 2 | Version: %AZ_VERSION_NUMBER 3 | Architecture: %AZ_ARCHITECTURE 4 | Maintainer: Matthew D. Steele 5 | Depends: libsdl2-2.0-0 (>= 2.0.5), libgl1-mesa-glx | libgl1 6 | Description: A spaceship metroidvania. 7 | Azimuth is a metroidvania-style game -- you explore, fight enemies, solve 8 | puzzles, find new upgrades and weapons, and uncover the storyline piece by 9 | piece. Unlike many games in the genre, it's not a platformer; instead, you 10 | pilot a spaceship with Astroids-style controls. There is a huge game world to 11 | explore, lots of little puzzles to solve, dozens of weapons and upgrades to 12 | find and use, and a wide variety of enemies and bosses to tangle with. 13 | -------------------------------------------------------------------------------- /data/music/music12.txt: -------------------------------------------------------------------------------- 1 | @M "SA|B" 2 | =title "Ominousness" 3 | 4 | =tempo 70 5 | =key 1b % D minor 6 | 7 | 8 | !Part S 9 | 10 | 1 Wp60 L20 E40,40 D-10,20 11 | 2 Wt25 L60 E10,25 V+1,50 12 | 3 Wt50 L175 E25,100 D+20,30 13 | 4 Wn L15 E0,100 14 | 15 | !Part A 16 | 17 | 1| d3q a d a | ebq b eb b | 18 | 2| rw | rh re g3e a b | 19 | 4| c2s rs+e cs r c cb cs rs+e cs r c cb | 20 | | c2s rs+e cs r c cb cs rs c cb c cb c cb | 21 | 22 | !Part B 23 | 24 | 1| d3q a d a | ebq b eb b | 25 | 2| E10,75 a3h E10,25 rh | rh re g3e a b | 26 | 3| a2w | g2w | 27 | 4| c2s rs+e cs r c cb cs rs+e cs r c cb | 28 | | c2s rs+e cs r c cb cs rs c cb c cb c cb | 29 | -------------------------------------------------------------------------------- /data/win/info.rc: -------------------------------------------------------------------------------- 1 | 2 ICON "data/application.ico" 2 | 1 VERSIONINFO 3 | FILEVERSION %AZ_VERSION_QUAD 4 | PRODUCTVERSION %AZ_VERSION_QUAD 5 | BEGIN 6 | BLOCK "StringFileInfo" 7 | BEGIN 8 | BLOCK "040904E4" 9 | BEGIN 10 | VALUE "CompanyName", "Matthew D. Steele" 11 | VALUE "FileDescription", "Azimuth" 12 | VALUE "FileVersion", "%AZ_VERSION_NUMBER" 13 | VALUE "InternalName", "Azimuth" 14 | VALUE "LegalCopyright", "Copyright 2012-2016 Matthew D. Steele" 15 | VALUE "OriginalFilename", "Azimuth.exe" 16 | VALUE "ProductName", "Azimuth" 17 | VALUE "ProductVersion", "%AZ_VERSION_NUMBER" 18 | END 19 | END 20 | BLOCK "VarFileInfo" 21 | BEGIN 22 | VALUE "Translation", 0x409, 1252 23 | END 24 | END 25 | -------------------------------------------------------------------------------- /data/music/music14.txt: -------------------------------------------------------------------------------- 1 | @M "SABC" 2 | =title "You Will Be Upgraded" 3 | 4 | =tempo 150 5 | =key 3# % F# minor 6 | 7 | 8 | !Part S 9 | 10 | 1 Wp75 L40 E0,25 V1,50 11 | 2 Wp50 L20 E0,25 D25,40 12 | 3 Wt25 L250 E0,25 13 | 4 Wn L40 E0,100 14 | 5 Wn L60 E0,100 15 | 16 | 17 | !Part A 18 | 19 | 4| L5 c4t L10 c L15 c L20 c ' L25 c L30 c L35 c L40 c | 20 | 21 | 22 | !Part B 23 | 24 | 1| f4e fs f ' ae c5 ' es e g4s g ' ae b | 25 | 2| a3q ' c ' a ' f | 26 | 3| f2h ' a | 27 | 4| L20 c3q ' ce cs c ' L40 cq ' cs c c c | 28 | 29 | 30 | !Part C 31 | 32 | 1| f5w | 33 | 2| a#4w | 34 | 3| f2w | 35 | 4| L20 c3t c c c L25 c c c c ' L35 ct c c c L40 c c c c ' cq | 36 | 5| c8h c8h+e+s | 37 | -------------------------------------------------------------------------------- /data/music/music20.txt: -------------------------------------------------------------------------------- 1 | @M "S a A=1c A=1c A=1c A=1c B=1c B=1c B=1c B=1c :a cC" 2 | =title "Mission Briefing" 3 | 4 | =key 3b % C minor 5 | =tempo 140 6 | 7 | 8 | !Part S 9 | 10 | 1 Wp50 L30 E0,25 11 | 2 Wp50 L10 E0,100 12 | 3 Wt25 L100 E0,50 13 | 4 Wn L30 E0,100 14 | 15 | 16 | !Part A 17 | 18 | 1| c3e c ' r c ' c r ' c c | 19 | 3| E200,0 c2w | 20 | 4| c4s r c4 r ' re c4s r ' c4s rs+e ' c4s r c r | 21 | 22 | 3| E0,100 c2w | 23 | 4| re c4s r ' c r c r ' c r c r ' c r c r | 24 | 25 | 26 | !Part B 27 | 28 | 1| c3e c ' r c ' c r ' c c | 29 | 2| rw | 30 | 3| E200,0 c2w | 31 | 4| c4s r c4 r ' re c4s r ' c4s rs+e ' c4s r c r | 32 | 33 | 2| re c6e ' g c ' g a ' f g | 34 | 3| E0,100 c2w | 35 | 4| re c4s r ' c r c r ' c r c r ' c r c r | 36 | 37 | 38 | !Part C 39 | 40 | 1| c3e c ' r c ' c r ' c E0,100 V-100,0.5 ce+ | +w | 41 | 3| E200,0 c2w | E0,100 c2w | 42 | 4| c4s r c4 r ' re c4s r ' c4s rs+e ' c4s r c r | 43 | -------------------------------------------------------------------------------- /data/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDisplayName 8 | Azimuth 9 | CFBundleExecutable 10 | azimuth 11 | CFBundleIconFile 12 | application.icns 13 | CFBundleIdentifier 14 | io.github.mdsteele.azimuth 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | Azimuth 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | %AZ_VERSION_NUMBER 23 | CFBundleVersion 24 | %AZ_VERSION_NUMBER 25 | NSHumanReadableCopyright 26 | Copyright 2012-2016 Matthew D. Steele 27 | 28 | 29 | -------------------------------------------------------------------------------- /data/win/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | # Install MXE prereqs (see https://mxe.cc/#requirements-debian) 4 | RUN apt-get update && apt-get install -y \ 5 | autoconf \ 6 | automake \ 7 | autopoint \ 8 | bash \ 9 | bison \ 10 | bzip2 \ 11 | flex \ 12 | g++ \ 13 | gettext \ 14 | git \ 15 | gperf \ 16 | intltool \ 17 | libgdk-pixbuf2.0-dev \ 18 | libltdl-dev \ 19 | libgl-dev \ 20 | libpcre3-dev \ 21 | libssl-dev \ 22 | libtool-bin \ 23 | libxml-parser-perl \ 24 | lzip \ 25 | make \ 26 | openssl \ 27 | p7zip-full \ 28 | patch \ 29 | perl \ 30 | python3 \ 31 | python3-distutils \ 32 | python3-mako \ 33 | python3-pkg-resources \ 34 | python-is-python3 \ 35 | ruby \ 36 | sed \ 37 | unzip \ 38 | wget \ 39 | xz-utils 40 | # Build MXE (see https://mxe.cc/#tutorial) 41 | RUN git clone https://github.com/mxe/mxe.git /opt/mxe && \ 42 | cd /opt/mxe && \ 43 | make cc sdl2 MXE_TARGETS='i686-w64-mingw32.static' 44 | ENV PATH="/opt/mxe/usr/bin:${PATH}" 45 | 46 | WORKDIR /azimuth 47 | COPY Makefile ./Makefile 48 | COPY src ./src 49 | COPY data ./data 50 | RUN BUILDTYPE=release TARGET=windows make clean 51 | RUN BUILDTYPE=release TARGET=windows make windows_zip 52 | -------------------------------------------------------------------------------- /data/rooms/room260.txt: -------------------------------------------------------------------------------- 1 | @R z1 p4 k1 b2 d2 g4 n1 w16 2 | c(35731.95,86.95,1.349748,0.000000) 3 | $s:mus2; 4 | !W4 d12 x7835.57 y35191.73 a-0.221629 u0 5 | !W1 d12 x7726.34 y34636.03 a-0.219142 u0 6 | !W1 d13 x8054.18 y34693.09 a-2.268976 u0 7 | !W1 d41 x7659.69 y35205.09 a-0.456137 u0 8 | !W1 d41 x7590.22 y35041.43 a-2.026224 u0 9 | !W1 d13 x7965.22 y34582.40 a-0.668426 u0 10 | !W1 d12 x8088.49 y34585.08 a-2.268976 u0 11 | !W1 d13 x8136.22 y34833.26 a1.126041 u0 12 | !W1 d41 x8156.48 y35102.99 a3.015551 u0 13 | !W1 d13 x7963.84 y35156.52 a3.019108 u0 14 | !W1 d5 x8012.34 y35072.77 a-0.246773 u0 15 | !W1 d13 x8148.80 y34973.98 a2.993383 u0 16 | !W1 d13 x7539.85 y34879.45 a2.703763 u0 17 | !W1 d13 x7621.10 y34738.39 a2.057586 u0 18 | !W1 d13 x7526.84 y34743.01 a-1.650846 u0 19 | !W1 d11 x7714.66 y34684.74 a-1.724458 u0 20 | !D7 x7838.18 y35227.97 a-1.789256 r107 u0 21 | !D7 x7819.79 y34588.51 a1.349807 r248 u0 22 | !G4 x7844.32 y34907.01 a1.349748 o0.00 f340.00 r340.00 l320.00 u0 23 | !G2 x7805.56 y34535.33 a0.503348 s25.00 w100.00 i250.00 t100.00 u0 24 | !G2 x7805.56 y34535.33 a0.503348 s50.00 w100.00 i150.00 t100.00 u0 25 | !G2 x7805.56 y34535.33 a0.503348 s100.00 w100.00 i50.00 t100.00 u0 26 | !N9/107 x7844.88 y35248.00 a-0.221048 u0 27 | !B21 x7952.92 y34680.54 a1.780711 u0 28 | !B21 x7748.65 y34679.30 a0.506899 u0 29 | -------------------------------------------------------------------------------- /data/rooms/room131.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k1 b0 d1 g0 n8 w20 2 | c(37180.03,0.00,1.322387,0.000000) 3 | $s:msg0,mus2; 4 | !W1 d7 x9085.57 y35912.10 a-0.245363 u0 5 | !W1 d7 x8904.91 y35957.34 a-0.245363 u0 6 | !W1 d14 x9025.22 y36293.14 a3.033563 u0 7 | !W1 d41 x9271.60 y35841.57 a-0.165389 u0 8 | !W1 d41 x8827.72 y36263.66 a-0.165389 u0 9 | !W1 d14 x8820.68 y35966.09 a-1.815733 u0 10 | !W1 d14 x8932.30 y35868.75 a2.985336 u0 11 | !W1 d13 x9117.09 y35838.55 a0.153716 u0 12 | !W1 d13 x9419.90 y35902.20 a-1.450810 u0 13 | !W1 d12 x9350.66 y36192.81 a2.453174 u0 14 | !W1 d14 x9220.44 y36248.73 a2.769999 u0 15 | !W1 d13 x9452.37 y36211.25 a1.867039 u0 16 | !W1 d5 x9447.34 y36021.61 a-1.711892 u0 17 | !W1 d5 x9450.13 y36097.26 a3.105374 u0 18 | !W1 d11 x9400.64 y36146.01 a0.877189 u0 19 | !W1 d11 x9414.73 y36108.70 a-2.264404 u0 20 | !W1 d11 x9345.24 y35924.12 a-0.080851 u0 21 | !W1 d7 x8995.22 y35934.73 a-0.245363 u0 22 | !W1 d5 x9350.09 y35760.10 a2.932954 u0 23 | !W1 d5 x9420.47 y35796.75 a0.077039 u0 24 | !D1 x8860.95 y36112.20 a-0.242558 r107 u0 25 | !N5/1 x9268.34 y36047.80 a2.891038 u0 26 | !N1/2 x9199.33 y36065.30 a2.892568 u0 27 | !N5/9 x9336.56 y36086.75 a2.892568 u0 28 | !N5/3 x9298.33 y36040.20 a-1.823079 u0 29 | !N5/2 x9317.74 y36043.54 a1.319616 u0 30 | !N5/1 x9353.89 y36154.07 a-1.822169 u0 31 | !N5/1 x9288.25 y36000.52 a1.318380 u0 32 | !N5/1 x9276.23 y35953.90 a-1.823361 u0 33 | -------------------------------------------------------------------------------- /data/rooms/room462.txt: -------------------------------------------------------------------------------- 1 | @R z4 p4 k2 b0 d1 g0 n5 w26 2 | c(23608.82,0.00,1.851175,0.000000) 3 | !W1 d25 x-6870.96 y22654.21 a-2.861040 u0 4 | !W1 d25 x-6833.38 y22521.41 a-2.861040 u0 5 | !W1 d33 x-6490.68 y22539.89 a1.851175 u0 6 | !W1 d66 x-6261.35 y22821.20 a1.851349 u0 7 | !W1 d24 x-6229.43 y22854.48 a-2.861040 u0 8 | !W1 d24 x-6181.77 y22692.51 a-2.861040 u0 9 | !W1 d66 x-6226.43 y22703.51 a-1.290244 u0 10 | !W1 d25 x-6268.13 y22631.54 a-2.861040 u0 11 | !W1 d25 x-6133.70 y22598.43 a-2.861040 u0 12 | !W1 d25 x-6238.66 y22959.91 a-2.861040 u0 13 | !W1 d25 x-6229.37 y22498.58 a-2.861040 u0 14 | !W1 d25 x-6363.68 y22531.64 a-2.861040 u0 15 | !W1 d25 x-6459.98 y22432.12 a-2.861040 u0 16 | !W1 d25 x-6594.40 y22465.15 a-2.861040 u0 17 | !W1 d25 x-6690.79 y22365.61 a-2.861040 u0 18 | !W1 d25 x-6728.59 y22498.85 a-2.861040 u0 19 | !W1 d25 x-6824.92 y22399.24 a-2.861040 u0 20 | !W1 d25 x-6794.68 y22727.94 a-2.861040 u0 21 | !W1 d25 x-6928.24 y22761.16 a-2.861040 u0 22 | !W1 d25 x-6832.95 y22861.07 a-2.861040 u0 23 | !W1 d25 x-6334.84 y22860.45 a-2.861040 u0 24 | !W1 d25 x-6373.06 y22993.59 a-2.861040 u0 25 | !W1 d25 x-6468.73 y22893.62 a-2.861040 u0 26 | !W1 d25 x-6698.81 y22827.32 a-2.861040 u0 27 | !W1 d25 x-6603.05 y22927.32 a-2.861040 u0 28 | !W1 d32 x-6507.84 y22599.47 a1.851175 u0 29 | !D7 x-6194.89 y22776.49 a-2.861214 r362 u0 30 | !N3/43 x-6520.50 y22641.61 a0.280379 u0 31 | $u:snd5; 32 | !N7/24 x-6719.69 y22749.71 a0.280379 u0 33 | !N7/24 x-6345.09 y22608.87 a0.280379 u0 34 | !N7/24 x-6653.55 y22520.04 a0.280379 u0 35 | !N7/24 x-6410.26 y22838.81 a0.280379 u0 36 | -------------------------------------------------------------------------------- /data/rooms/room402.txt: -------------------------------------------------------------------------------- 1 | @R z5 p4 k7 b0 d1 g1 n5 w25 2 | c(19381.78,0.00,1.129392,0.000000) 3 | !W1 d98 x8098.47 y17820.18 a0.457671 u0 4 | !W1 d98 x8376.65 y17747.82 a2.364570 u0 5 | !W1 d98 x8598.79 y17392.01 a-1.815818 u0 6 | !W1 d97 x8513.05 y17305.57 a-3.105827 u0 7 | !W1 d98 x8423.18 y17246.03 a0.454100 u0 8 | !W1 d98 x8022.64 y17392.26 a2.267358 u0 9 | !W1 d98 x7950.55 y17470.25 a-1.852879 u0 10 | !W1 d39 x8416.62 y17435.44 a-2.011403 u0 11 | !W1 d39 x8345.58 y17470.57 a-2.011403 u0 12 | !W1 d38 x8045.17 y17715.25 a-2.012114 u0 13 | !W1 d38 x7978.92 y17575.01 a-2.012114 u0 14 | !W1 d40 x8421.05 y17538.79 a-2.797341 u0 15 | !W1 d38 x8368.81 y17519.97 a-2.797341 u0 16 | !W1 d38 x8439.67 y17486.31 a-2.797341 u0 17 | !W1 d38 x8387.59 y17467.64 a-2.797341 u0 18 | !W1 d39 x8304.61 y17383.68 a-2.011403 u0 19 | !W1 d39 x8375.85 y17348.96 a-2.011403 u0 20 | !W1 d98 x8133.46 y17355.26 a-0.183285 u0 21 | !W1 d98 x8299.05 y17267.99 a3.100044 u0 22 | !W1 d97 x8232.24 y17315.77 a3.100044 u0 23 | !W1 d98 x8602.54 y17627.11 a1.890696 u0 24 | !W1 d97 x8602.32 y17516.18 a0.328277 u0 25 | !W1 d98 x8522.81 y17700.51 a-1.262738 u0 26 | !W1 d98 x8228.23 y17834.48 a-1.477284 u0 27 | !W1 d97 x8300.55 y17762.30 a-1.477284 u0 28 | !D1 x8012.04 y17645.23 a-0.441510 r232 u0 29 | !G4 x8231.62 y17426.22 a1.129496 o0.00 f330.00 r330.00 l170.00 u0 30 | !N7/38 x8221.19 y17679.32 a0.350348 u0 31 | !N3/4 x8432.83 y17564.14 a-0.441290 u0 32 | $u:mus14,wait0.1,mus17,musf1; 33 | !N7/39 x8246.87 y17734.12 a-2.011403 u0 34 | !N7/38 x8193.72 y17452.92 a0.350348 u0 35 | !N7/39 x8167.55 y17396.97 a-2.011403 u0 36 | -------------------------------------------------------------------------------- /data/rooms/room236.txt: -------------------------------------------------------------------------------- 1 | @R z4 p0 k2 b0 d1 g0 n4 w28 2 | c(20095.02,0.00,1.815926,0.000000) 3 | !W1 d33 x-4758.50 y19354.83 a-0.993668 u0 4 | !W1 d33 x-4910.62 y19321.00 a-1.669613 u0 5 | !W1 d25 x-4812.17 y19741.09 a1.815827 u0 6 | !W1 d25 x-5043.41 y19683.18 a1.815827 u0 7 | !W1 d25 x-4716.11 y19641.76 a1.815827 u0 8 | !W1 d25 x-4679.07 y19774.98 a1.815827 u0 9 | !W1 d25 x-4581.89 y19676.21 a1.815827 u0 10 | !W1 d25 x-4619.50 y19543.51 a1.815827 u0 11 | !W1 d25 x-4523.29 y19444.49 a1.815827 u0 12 | !W1 d25 x-4559.69 y19311.06 a1.815827 u0 13 | !W1 d25 x-5177.30 y19649.92 a1.815827 u0 14 | !W1 d25 x-5214.74 y19517.03 a1.815827 u0 15 | !W1 d25 x-5118.46 y19418.26 a1.815827 u0 16 | !W1 d25 x-5154.67 y19284.66 a1.815827 u0 17 | !W1 d25 x-5058.64 y19185.87 a1.815827 u0 18 | !W1 d25 x-4925.03 y19220.31 a1.815827 u0 19 | !W1 d25 x-4694.35 y19278.90 a1.815827 u0 20 | !W1 d24 x-5013.04 y19279.77 a1.815827 u0 21 | !W1 d24 x-5060.56 y19329.75 a1.815827 u0 22 | !W1 d24 x-5119.39 y19561.40 a1.815827 u0 23 | !W1 d66 x-5132.02 y19517.02 a0.245239 u0 24 | !W1 d65 x-4640.72 y19353.09 a0.245239 u0 25 | !W1 d65 x-4598.43 y19393.49 a1.286534 u0 26 | !W1 d24 x-4635.38 y19390.01 a2.337533 u0 27 | !W1 d25 x-4810.52 y19242.17 a1.815827 u0 28 | !W1 d33 x-4844.46 y19373.88 a-2.897467 u0 29 | !W1 d34 x-4786.24 y19388.40 a1.813219 u0 30 | !W1 d34 x-4901.71 y19359.62 a0.247981 u0 31 | !D1 x-4925.30 y19701.90 a-1.325757 r235 u0 32 | !N3/14 x-4853.37 y19414.67 a0.245129 u0 33 | $u:mus14,wait0.1,mus5; 34 | !N7/45 x-5007.50 y19268.41 a0.080986 u0 35 | !N7/45 x-4811.60 y19293.18 a0.247577 u0 36 | !N7/45 x-4631.86 y19377.82 a0.556380 u0 37 | -------------------------------------------------------------------------------- /data/rooms/room009.txt: -------------------------------------------------------------------------------- 1 | @R z0 p4 k3 b0 d1 g0 n4 w28 2 | c(48305.57,0.00,1.502602,0.000000) 3 | $s:msg68,test23,heqz,nix1; 4 | !W1 d7 x3434.30 y48133.64 a-0.069975 u0 5 | !W1 d39 x3517.14 y48312.76 a1.502664 u0 6 | !W1 d39 x3510.76 y48219.22 a1.502664 u0 7 | !W1 d39 x3504.03 y48120.67 a1.502664 u0 8 | !W1 d39 x3450.47 y48303.85 a-0.063768 u0 9 | !W1 d38 x3513.96 y48299.80 a-0.063768 u0 10 | !W1 d39 x3357.10 y48309.82 a-0.063768 u0 11 | !W1 d39 x3259.32 y48316.06 a-0.063768 u0 12 | !W1 d39 x3162.22 y48322.26 a-0.063768 u0 13 | !W1 d38 x3087.76 y48327.02 a-0.063768 u0 14 | !W1 d39 x3435.87 y48054.30 a-0.063768 u0 15 | !W1 d38 x3499.37 y48050.25 a-0.063768 u0 16 | !W1 d165 x3588.80 y48269.71 a1.502623 u0 17 | !W1 d39 x3342.50 y48060.27 a-0.063768 u0 18 | !W1 d39 x3244.73 y48066.51 a-0.063768 u0 19 | !W1 d39 x3147.62 y48072.71 a-0.063768 u0 20 | !W1 d38 x3073.16 y48077.46 a-0.063768 u0 21 | !W1 d165 x2999.54 y48107.69 a-0.063768 u0 22 | !W1 d165 x3011.53 y48306.34 a-0.063768 u0 23 | !W1 d166 x3068.76 y48003.10 a-0.063768 u0 24 | !W1 d166 x3317.56 y47987.21 a-0.063768 u0 25 | !W1 d166 x3566.23 y47971.34 a-0.063768 u0 26 | !W1 d165 x3575.19 y48070.37 a1.502623 u0 27 | !W1 d166 x3092.85 y48401.19 a-0.063768 u0 28 | !W1 d166 x3341.60 y48385.31 a-0.063768 u0 29 | !W1 d166 x3590.19 y48369.44 a-0.063768 u0 30 | !W1 d165 x3581.99 y48170.04 a1.502623 u0 31 | !W1 d8 x3365.51 y48138.46 a-0.069975 u0 32 | !D7 x2942.15 y48210.62 a-0.063768 r11 u0 33 | !N3/37 x3387.31 y48180.01 a-0.068194 u1 34 | $u:snd5; 35 | !N7/7 x3106.64 y48288.36 a-0.069975 u0 36 | !N5/6 x3152.26 y48117.07 a-0.063768 u0 37 | !N5/6 x3197.54 y48119.30 a1.504106 u0 38 | -------------------------------------------------------------------------------- /data/rooms/room039.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b0 d2 g0 n1 w32 2 | c(48201.90,1.42,1.315202,0.000029) 3 | !W1 d33 x12025.62 y46903.40 a-0.255594 u0 4 | !W1 d33 x12453.76 y46791.52 a-0.255594 u0 5 | !W1 d33 x12348.45 y46370.00 a-0.255594 u0 6 | !W1 d33 x12436.61 y46422.65 a1.315202 u0 7 | !W1 d33 x12510.69 y46706.14 a1.315202 u0 8 | !W1 d39 x12370.45 y46757.73 a-1.824756 u0 9 | !W1 d39 x12082.74 y46823.53 a1.315231 u0 10 | !W1 d39 x12140.34 y46465.81 a-1.824756 u0 11 | !W1 d38 x12154.11 y46515.80 a-0.257967 u0 12 | !W1 d32 x12492.44 y46636.30 a1.315202 u0 13 | !W1 d38 x12361.57 y46719.74 a-0.257967 u0 14 | !W1 d38 x12074.66 y46792.58 a-0.257967 u0 15 | !W1 d32 x12527.93 y46772.14 a-0.255594 u0 16 | !W1 d32 x12453.16 y46485.98 a1.315202 u0 17 | !W1 d32 x12418.09 y46351.80 a2.885998 u0 18 | !W1 d33 x12254.69 y46394.50 a-0.255594 u0 19 | !W1 d33 x12158.90 y46419.53 a-0.255594 u0 20 | !W1 d33 x12065.30 y46443.99 a-0.255594 u0 21 | !W1 d33 x11970.48 y46468.77 a-0.255594 u0 22 | !W1 d33 x11877.60 y46493.04 a-0.255594 u0 23 | !W1 d33 x11862.89 y46573.85 a1.315202 u0 24 | !W1 d33 x11936.97 y46857.34 a1.315202 u0 25 | !W1 d32 x11918.72 y46787.50 a1.315202 u0 26 | !W1 d32 x11954.21 y46923.34 a1.315202 u0 27 | !W1 d32 x11879.44 y46637.18 a1.315202 u0 28 | !W1 d32 x11844.37 y46503.00 a2.885998 u0 29 | !W1 d33 x12361.11 y46815.73 a-0.255594 u0 30 | !W1 d33 x12265.67 y46840.67 a-0.255594 u0 31 | !W1 d33 x12169.80 y46865.72 a-0.255594 u0 32 | !W1 d32 x12098.29 y46884.41 a-0.255594 u0 33 | !W1 d32 x12384.07 y46809.73 a-0.255594 u0 34 | !W1 d32 x12130.33 y46427.00 a-0.255594 u0 35 | !D1 x11900.87 y46712.05 a-0.249463 r79 u0 36 | !D1 x12472.60 y46561.17 a2.885998 r76 u0 37 | !N3/15 x12165.24 y46558.18 a-0.255535 u0 38 | $u:mus14,wait0.1,mus15; 39 | -------------------------------------------------------------------------------- /data/rooms/room475.txt: -------------------------------------------------------------------------------- 1 | @R z5 p0 k4 b1 d2 g1 n6 w26 2 | c(26294.67,0.00,1.532922,0.000000) 3 | $s:mus6,test141,heqz,unlock1; 4 | !W1 d76 x1295.65 y26420.75 a1.134996 u0 5 | !W1 d98 x1233.85 y26489.58 a-2.234038 u0 6 | !W1 d75 x732.52 y26117.25 a2.317791 u0 7 | !W1 d78 x944.58 y26447.47 a2.141197 u0 8 | !W1 d77 x1295.54 y26256.14 a2.716173 u0 9 | !W1 d73 x758.10 y26314.24 a-1.496469 u0 10 | !W1 d91 x1177.90 y26129.51 a0.180483 u0 11 | !W1 d91 x814.45 y26091.71 a-0.127569 u0 12 | !W1 d97 x678.46 y26537.25 a-2.771165 u0 13 | !W1 d98 x767.66 y26480.00 a-2.771165 u0 14 | !W1 d97 x1013.23 y26494.97 a-2.592366 u0 15 | !W1 d98 x920.63 y26495.77 a-0.450513 u0 16 | !W1 d98 x776.96 y26400.74 a0.751281 u0 17 | !W1 d97 x677.98 y26401.31 a-2.688279 u0 18 | !W1 d98 x667.43 y26276.28 a-2.990414 u0 19 | !W1 d97 x686.30 y26186.28 a-0.812545 u0 20 | !W1 d98 x873.27 y26015.97 a-2.283517 u0 21 | !W1 d98 x729.00 y26079.89 a-0.812545 u0 22 | !W1 d97 x887.58 y26403.33 a2.323335 u0 23 | !W1 d98 x1358.73 y26454.32 a3.088953 u0 24 | !W1 d98 x1360.17 y26386.29 a0.949884 u0 25 | !W1 d97 x1320.47 y26268.25 a-0.347423 u0 26 | !W1 d98 x1238.36 y26170.37 a0.700371 u0 27 | !W1 d98 x1121.14 y26045.33 a-2.237816 u0 28 | !W1 d98 x1286.26 y26026.20 a2.652850 u0 29 | !W1 d97 x1205.14 y26048.67 a-2.756197 u0 30 | !D1 x987.29 y26060.74 a1.532923 r281 u0 31 | !D4 x1100.14 y26482.77 a-1.608670 r351 u1 32 | $o:set141; 33 | !G4 x995.62 y26275.78 a1.532923 o0.00 f330.00 r330.00 l250.00 u0 34 | !N7/6 x1133.96 y26184.31 a-0.081831 u0 35 | !N7/35 x862.07 y26346.45 a-0.362486 u0 36 | !N8/0 x1032.72 y26356.70 a-0.039314 u0 37 | !N8/0 x712.29 y26205.25 a-0.039314 u0 38 | !N5/22 x811.70 y26123.15 a1.532922 u0 39 | !N5/22 x1145.65 y26154.03 a1.532922 u0 40 | !B105 x896.51 y26346.79 a-1.495067 u0 41 | -------------------------------------------------------------------------------- /data/rooms/room295.txt: -------------------------------------------------------------------------------- 1 | @R z5 p0 k1 b0 d1 g1 n15 w20 2 | c(33687.26,0.00,1.541315,0.000000) 3 | !W1 d33 x755.22 y33626.37 a3.112145 u0 4 | !W1 d88 x1198.98 y33891.52 a-0.677067 u0 5 | !W1 d89 x991.42 y33906.24 a-0.470974 u0 6 | !W1 d89 x657.04 y33760.32 a-1.426496 u0 7 | !W1 d89 x811.17 y33452.82 a-2.319432 u0 8 | !W1 d89 x642.83 y33608.97 a2.717992 u0 9 | !W1 d89 x1271.54 y33523.93 a0.433192 u0 10 | !W1 d89 x1133.74 y33428.12 a0.267989 u0 11 | !W1 d88 x1186.81 y33492.46 a2.833885 u0 12 | !W1 d89 x1255.23 y33410.25 a2.975652 u0 13 | !W1 d88 x750.96 y33554.94 a2.236735 u0 14 | !W1 d89 x686.50 y33477.78 a1.569376 u0 15 | !W1 d89 x957.74 y33435.54 a2.848329 u0 16 | !W1 d89 x753.97 y33901.34 a0.519572 u0 17 | !W1 d88 x850.96 y33896.98 a-0.038648 u0 18 | !W1 d88 x1119.84 y33887.91 a2.607050 u0 19 | !W1 d89 x1294.42 y33857.71 a1.832975 u0 20 | !W1 d88 x1285.08 y33738.06 a2.868992 u0 21 | !W1 d33 x853.18 y33623.49 a3.112145 u0 22 | !W1 d38 x929.15 y33621.25 a-1.600149 u0 23 | !D1 x1284.23 y33647.21 a3.104241 r244 u0 24 | !G4 x988.32 y33491.12 a1.541295 o0.00 f325.00 r325.00 l90.00 u0 25 | !N5/5 x740.53 y33774.24 a-0.024417 u0 26 | !N5/1 x775.68 y33695.61 a1.547298 u0 27 | !N5/1 x774.96 y33664.87 a1.547298 u0 28 | !N5/6 x774.16 y33670.64 a3.117165 u0 29 | !N5/1 x817.23 y33735.45 a-0.024417 u0 30 | !N7/33 x864.90 y33853.33 a3.112145 u0 31 | !N1/0 x898.91 y33732.76 a3.112145 u0 32 | $u:skip1,dlog,pt1,pb3,test77,bnez/A,tb113,tt114,tb115,tt116,tb117,tt118,tb119,set77,A#tb120,map5,dend,skip0; 33 | !N7/33 x790.95 y33855.50 a3.112145 u0 34 | !N7/38 x934.87 y33851.27 a-1.600149 u0 35 | !N5/1 x718.58 y33664.04 a-0.023110 u0 36 | !N5/1 x718.92 y33677.23 a-0.023110 u0 37 | !N5/2 x784.57 y33728.24 a-1.593962 u0 38 | !N5/2 x853.06 y33763.47 a3.116385 u0 39 | !N5/1 x820.06 y33772.29 a-0.024417 u0 40 | !N5/1 x779.52 y33773.30 a3.118775 u0 41 | -------------------------------------------------------------------------------- /data/rooms/room404.txt: -------------------------------------------------------------------------------- 1 | @R z2 p4 k4 b0 d1 g0 n15 w22 2 | c(15248.80,0.00,1.593861,0.000000) 3 | !W1 d111 x-360.46 y15392.90 a0.025264 u0 4 | !W1 d108 x-469.34 y15119.27 a-3.118762 u0 5 | !W1 d104 x-389.47 y15121.09 a0.022757 u0 6 | !W1 d108 x-309.49 y15122.91 a0.022757 u0 7 | !W1 d111 x-570.81 y15058.71 a-3.121402 u0 8 | !W1 d111 x-210.20 y15079.92 a-3.121402 u0 9 | !W1 d112 x-477.17 y15382.93 a0.029016 u0 10 | !W1 d110 x-469.06 y15466.13 a2.563824 u0 11 | !W1 d109 x-295.47 y15380.06 a-2.232231 u0 12 | !W1 d110 x-318.26 y15458.56 a-2.591389 u0 13 | !W1 d110 x-185.36 y15420.57 a-2.232231 u0 14 | !W1 d110 x-677.55 y15193.12 a1.246550 u0 15 | !W1 d110 x-443.19 y15021.31 a-2.404803 u0 16 | !W1 d110 x-326.26 y15023.41 a2.407254 u0 17 | !W1 d110 x-69.97 y15421.79 a2.388530 u0 18 | !W1 d110 x-51.02 y15202.95 a1.086598 u0 19 | !W1 d110 x-81.02 y15069.63 a0.309115 u0 20 | !W1 d109 x-203.31 y15027.53 a0.911108 u0 21 | !W1 d110 x-646.08 y15049.03 a-0.537135 u0 22 | !W1 d109 x-558.15 y14987.71 a-2.217179 u0 23 | !W1 d110 x-639.43 y15338.22 a-1.952123 u0 24 | !W1 d110 x-600.18 y15459.24 a-0.318306 u0 25 | !D7 x-3.40 y15315.80 a-3.118745 r238 u0 26 | !N7/111 x-512.33 y15094.33 a-3.121402 u0 27 | !N7/111 x-206.94 y15332.06 a0.011415 u0 28 | !N3/62 x-408.63 y15163.21 a0.023261 u0 29 | $u:snd5; 30 | !N7/112 x-539.16 y15117.45 a-3.121402 u0 31 | !N7/112 x-195.01 y15335.33 a0.025264 u0 32 | !N7/112 x-289.53 y15313.18 a0.025264 u0 33 | !N7/111 x-331.93 y15330.22 a0.025264 u0 34 | !N7/111 x-441.24 y15386.74 a0.025264 u0 35 | !N7/111 x-537.04 y15376.56 a0.025264 u0 36 | !N7/111 x-192.91 y15067.31 a-3.127964 u0 37 | !N7/111 x-231.77 y15060.43 a-3.127964 u0 38 | !N7/111 x-551.83 y15363.49 a0.025264 u0 39 | !N7/109 x-544.08 y15039.59 a-0.240105 u0 40 | !N7/111 x-602.60 y15095.51 a-3.121402 u0 41 | !N7/111 x-136.76 y15107.77 a-3.127964 u0 42 | -------------------------------------------------------------------------------- /data/rooms/room296.txt: -------------------------------------------------------------------------------- 1 | @R z5 p0 k4 b0 d1 g1 n11 w26 2 | c(27527.14,0.00,1.483252,0.000000) 3 | $s:msg0,mus6; 4 | !W1 d51 x2461.97 y27304.15 a0.048804 u0 5 | !W1 d40 x2365.47 y27303.64 a-1.669876 u0 6 | !W1 d74 x2351.28 y27197.96 a2.274161 u0 7 | !W1 d51 x2598.42 y27310.81 a0.048804 u0 8 | !W1 d78 x2146.39 y27640.87 a-2.953619 u0 9 | !W1 d77 x2269.91 y27663.90 a2.890254 u0 10 | !W1 d74 x2515.36 y27635.56 a2.470142 u0 11 | !W1 d76 x2178.94 y27313.71 a1.466794 u0 12 | !W1 d74 x2154.69 y27250.18 a0.180141 u0 13 | !W1 d75 x2496.53 y27176.27 a1.466794 u0 14 | !W1 d77 x2678.08 y27203.12 a0.227469 u0 15 | !W1 d78 x2689.99 y27570.64 a1.899422 u0 16 | !W1 d38 x2707.76 y27467.09 a-1.669876 u0 17 | !W1 d38 x2692.42 y27312.72 a-1.669876 u0 18 | !W1 d73 x2608.49 y27179.74 a1.466794 u0 19 | !W1 d76 x2553.42 y27194.07 a1.466794 u0 20 | !W1 d76 x2615.30 y27623.16 a-2.738496 u0 21 | !W1 d77 x2722.78 y27666.34 a-1.996807 u0 22 | !W1 d73 x2262.59 y27268.10 a2.591959 u0 23 | !W1 d73 x2258.33 y27206.21 a-1.118035 u0 24 | !W1 d77 x2099.90 y27339.69 a-2.837352 u0 25 | !W1 d78 x2082.43 y27459.30 a0.804151 u0 26 | !W1 d73 x2139.83 y27612.95 a1.720197 u0 27 | !W1 d76 x2132.04 y27557.41 a-1.288217 u0 28 | !W1 d75 x2412.71 y27656.68 a-1.616564 u0 29 | !W1 d73 x2340.65 y27635.79 a-2.183542 u0 30 | !D1 x2698.10 y27390.20 a3.054164 r286 u0 31 | !G4 x2406.52 y27421.99 a1.483263 o0.00 f325.00 r325.00 l245.00 u0 32 | !N5/6 x2268.23 y27364.06 a-0.080928 u0 33 | !N1/2 x2346.26 y27458.07 a-0.086102 u0 34 | !N5/1 x2275.47 y27464.10 a-0.086102 u0 35 | !N5/2 x2243.24 y27458.71 a-1.651543 u0 36 | !N5/1 x2232.59 y27426.49 a1.490614 u0 37 | !N5/2 x2236.25 y27374.32 a-0.080928 u0 38 | !N5/1 x2231.09 y27407.84 a-1.651443 u0 39 | !N5/1 x2253.80 y27314.61 a1.486662 u0 40 | !N5/1 x2272.48 y27313.04 a1.486662 u0 41 | !N5/2 x2299.89 y27353.69 a3.057021 u0 42 | !N5/1 x2305.13 y27320.22 a1.486662 u0 43 | -------------------------------------------------------------------------------- /data/rooms/room015.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b5 d3 g0 n2 w26 2 | c(46624.31,0.00,1.516090,0.000000) 3 | $s:push2.5,sheal2,test23,beqz/A,lock1,halt,A#nix10,nix11,test7,beqz/B,unlock1,B#test1,hnez,dark0.5,C#rand,dup,mul,muli4,addi0.75,waits,blink0,snd6,jump/C; 4 | !W1 d163 x2261.08 y46689.61 a1.516763 u0 5 | !W2 d10 x2759.29 y46481.74 a-0.057727 u0 6 | !W1 d35 x2434.14 y46391.67 a-1.624468 u0 7 | !W1 d35 x2537.99 y46386.01 a-1.624468 u0 8 | !W1 d35 x2331.35 y46398.28 a-1.624468 u0 9 | !W1 d163 x2833.88 y46352.87 a1.516763 u0 10 | !W1 d163 x2244.87 y46390.89 a1.516763 u0 11 | !W1 d165 x2462.42 y46791.58 a-0.051346 u0 12 | !W1 d165 x2362.56 y46796.92 a-0.051346 u0 13 | !W1 d165 x2262.61 y46789.24 a-0.051346 u0 14 | !W1 d165 x2661.51 y46779.66 a-0.051346 u0 15 | !W1 d165 x2759.76 y46775.05 a-0.051346 u0 16 | !W1 d165 x2857.51 y46750.44 a-0.051346 u0 17 | !W1 d163 x2850.68 y46651.18 a1.516763 u0 18 | !W1 d163 x2250.20 y46490.52 a1.516763 u0 19 | !W1 d163 x2839.30 y46451.71 a1.510094 u0 20 | !W1 d165 x2244.00 y46335.34 a-0.051346 u0 21 | !W1 d165 x2341.63 y46326.19 a-0.051346 u0 22 | !W1 d165 x2830.90 y46298.17 a-0.051346 u0 23 | !W1 d165 x2731.07 y46304.05 a-0.051346 u0 24 | !W1 d165 x2635.05 y46309.37 a-0.051346 u0 25 | !W1 d165 x2437.57 y46319.29 a-0.051346 u0 26 | !W1 d165 x2536.88 y46313.99 a-0.051346 u0 27 | !W1 d163 x2336.91 y46445.05 a3.090610 u0 28 | !W1 d163 x2436.76 y46439.60 a3.090610 u0 29 | !W1 d163 x2533.61 y46434.31 a3.090610 u0 30 | !D1 x2560.86 y46766.25 a-1.625118 r14 u0 31 | !D3 x2846.10 y46551.46 a3.081259 r16 u1 32 | $o:set7; 33 | !D1 x2252.91 y46590.03 a-0.048683 r24 u0 34 | !N7/10 x2384.97 y46682.86 a3.089416 u0 35 | !N7/9 x2272.14 y46689.06 a3.089416 u0 36 | !B7 x2336.15 y46483.11 a-0.051657 u0 37 | !B7 x2375.09 y46480.98 a-0.051657 u0 38 | !B7 x2505.04 y46473.33 a3.088580 u2 39 | !B114 x2654.26 y46201.14 a1.518595 u10 40 | !B114 x2400.63 y46124.49 a1.518595 u11 41 | -------------------------------------------------------------------------------- /src/azimuth/view/cursor.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_CURSOR_H_ 22 | #define AZIMUTH_VIEW_CURSOR_H_ 23 | 24 | /*===========================================================================*/ 25 | 26 | void az_draw_cursor(void); 27 | 28 | /*===========================================================================*/ 29 | 30 | #endif // AZIMUTH_VIEW_CURSOR_H_ 31 | -------------------------------------------------------------------------------- /data/rooms/room225.txt: -------------------------------------------------------------------------------- 1 | @R z3 p4 k1 b0 d1 g0 n6 w31 2 | c(33607.11,0.00,1.938959,0.000000) 3 | $s:dark0.75; 4 | !W1 d159 x-11811.67 y31573.39 a-0.713108 u0 5 | !W1 d159 x-11759.16 y31364.43 a-1.202634 u0 6 | !W1 d159 x-12055.90 y31132.32 a-2.773430 u0 7 | !W1 d159 x-12276.10 y31064.80 a-2.871898 u0 8 | !W1 d159 x-12402.79 y31210.76 a1.938959 u0 9 | !W1 d61 x-11815.05 y31275.92 a0.511311 u0 10 | !W2 d5 x-12223.00 y31158.72 a0.368069 u0 11 | !W1 d61 x-12345.94 y31185.92 a-1.366887 u0 12 | !W1 d45 x-12293.01 y31392.36 a-2.121138 u0 13 | !W1 d45 x-11914.90 y31568.30 a2.718725 u0 14 | !W1 d59 x-12024.93 y31606.24 a1.795430 u0 15 | !W1 d59 x-12173.01 y31550.34 a-2.773659 u0 16 | !W1 d13 x-12284.53 y31524.11 a0.045584 u0 17 | !W1 d41 x-11877.17 y31711.96 a-0.057190 u0 18 | !W1 d5 x-11982.25 y31675.83 a0.705461 u0 19 | !W1 d11 x-12194.14 y31587.11 a0.397409 u0 20 | !W1 d60 x-11796.45 y31527.89 a-2.100475 u0 21 | !W1 d61 x-11834.09 y31458.66 a1.286183 u0 22 | !W1 d61 x-12348.96 y31268.38 a-1.757649 u0 23 | !W1 d41 x-12405.35 y31425.08 a0.856327 u0 24 | !W1 d60 x-12336.67 y31105.40 a1.854833 u0 25 | !W1 d45 x-12209.84 y31139.96 a0.172828 u0 26 | !W1 d61 x-12081.71 y31178.97 a0.551545 u0 27 | !W1 d61 x-11995.93 y31220.57 a0.366600 u0 28 | !W1 d59 x-11848.23 y31384.58 a1.041087 u0 29 | !W1 d61 x-11801.89 y31325.08 a2.298439 u0 30 | !W1 d61 x-11903.80 y31245.51 a0.166565 u0 31 | !W1 d14 x-11934.73 y31156.36 a-2.476993 u0 32 | !W1 d60 x-11766.18 y31288.08 a-2.666174 u0 33 | !W1 d12 x-11751.73 y31308.58 a-1.998826 u0 34 | !W1 d13 x-11779.88 y31209.80 a-2.811584 u0 35 | !D7 x-12119.71 y31636.29 a-1.202575 r224 u0 36 | !N7/5 x-12063.56 y31209.50 a1.033928 u0 37 | !N3/38 x-12224.67 y31176.57 a0.368163 u0 38 | $u:snd5; 39 | !N7/5 x-11937.26 y31243.22 a2.723429 u0 40 | !N7/11 x-12109.86 y31176.64 a2.213457 u0 41 | !N7/12 x-11837.17 y31514.43 a-1.203262 u0 42 | !N7/5 x-11805.92 y31277.70 a0.590000 u0 43 | -------------------------------------------------------------------------------- /data/rooms/room270.txt: -------------------------------------------------------------------------------- 1 | @R z5 p0 k7 b0 d1 g1 n17 w21 2 | c(18314.25,0.00,1.377758,0.000000) 3 | $s:msg0,test45,beqz/A,mus6,jump/@,A#mus12; 4 | !W1 d53 x3685.03 y18068.02 a-2.173188 u0 5 | !W1 d98 x3483.09 y18236.35 a0.037842 u0 6 | !W1 d97 x3386.17 y18209.08 a-1.068418 u0 7 | !W1 d98 x3287.41 y18225.09 a-2.875166 u0 8 | !W1 d98 x3166.67 y18035.96 a0.942041 u0 9 | !W1 d98 x3511.07 y17737.85 a-0.785369 u0 10 | !W1 d52 x3322.52 y17879.06 a0.518645 u0 11 | !W1 d98 x3214.13 y17898.72 a1.687033 u0 12 | !W1 d97 x3283.43 y17854.71 a2.327582 u0 13 | !W1 d98 x3314.79 y17760.05 a2.327582 u0 14 | !W1 d98 x3220.18 y17804.35 a-0.943524 u0 15 | !W1 d97 x3417.79 y17766.27 a-2.771009 u0 16 | !W1 d98 x3781.98 y17779.54 a2.312117 u0 17 | !W1 d98 x3737.20 y17692.06 a-2.669440 u0 18 | !W1 d98 x3604.17 y17720.41 a2.022750 u0 19 | !W1 d97 x3234.15 y18138.39 a2.322909 u0 20 | !W1 d98 x3574.43 y18152.45 a1.844183 u0 21 | !W1 d98 x3738.63 y18095.95 a2.940459 u0 22 | !W1 d97 x3686.26 y18185.10 a2.381945 u0 23 | !W1 d98 x3836.97 y18015.01 a-2.986358 u0 24 | !W1 d97 x3836.70 y18132.09 a-2.403825 u0 25 | !D1 x3800.10 y17912.60 a2.934236 r234 u0 26 | !G4 x3512.84 y17976.23 a1.377812 o0.00 f330.00 r330.00 l250.00 u0 27 | !N5/5 x3338.23 y18075.62 a2.963960 u0 28 | !N5/5 x3377.92 y18041.74 a-0.183117 u0 29 | !N1/2 x3431.90 y18031.30 a-0.193310 u0 30 | !N5/3 x3353.18 y18046.35 a-0.183117 u0 31 | !N5/2 x3348.66 y18065.47 a2.959417 u0 32 | !N5/2 x3342.22 y18030.16 a1.388177 u0 33 | !N5/1 x3308.18 y18028.30 a-0.181085 u0 34 | !N5/1 x3263.18 y18036.54 a2.962608 u0 35 | !N5/1 x3276.65 y18086.93 a-0.181085 u0 36 | !N5/5 x3247.99 y18092.18 a2.963960 u0 37 | !N5/6 x3323.23 y18119.54 a1.389137 u0 38 | !N5/3 x3317.01 y18079.51 a1.390348 u0 39 | !N5/1 x3275.50 y18138.57 a-0.181085 u0 40 | !N5/22 x3481.22 y17804.10 a1.375128 u0 41 | !N5/22 x3492.55 y17861.23 a1.375128 u0 42 | !N5/22 x3589.74 y17828.48 a1.375128 u0 43 | !N5/22 x3573.94 y18053.39 a-1.766099 u0 44 | -------------------------------------------------------------------------------- /data/rooms/room477.txt: -------------------------------------------------------------------------------- 1 | @R z5 p0 k4 b0 d1 g1 n8 w30 2 | c(20919.92,0.00,1.139607,0.000000) 3 | !W1 d90 x8574.25 y18857.33 a-0.523020 u0 4 | !W1 d91 x8858.42 y18759.61 a-0.331065 u0 5 | !W1 d50 x8949.00 y19069.34 a-0.431189 u0 6 | !W1 d9 x8865.26 y19107.86 a-0.431189 u0 7 | !W1 d9 x8663.31 y19200.77 a-0.431189 u0 8 | !W1 d9 x8763.37 y19154.74 a-0.431189 u0 9 | !W1 d46 x9006.72 y18904.92 a-2.001985 u0 10 | !W1 d46 x8966.96 y18818.48 a-2.001985 u0 11 | !W1 d98 x9059.28 y18880.21 a1.627371 u0 12 | !W1 d148 x8746.92 y18803.63 a1.139607 u0 13 | !W1 d148 x8678.25 y18823.59 a1.139607 u0 14 | !W1 d79 x8719.28 y18828.03 a1.139607 u0 15 | !W1 d97 x8686.71 y19293.90 a0.709749 u0 16 | !W1 d98 x8759.99 y18717.94 a-2.791826 u0 17 | !W1 d97 x8658.99 y18783.12 a0.404381 u0 18 | !W1 d98 x8445.44 y18903.99 a-0.492792 u0 19 | !W1 d98 x8574.23 y19293.08 a0.233113 u0 20 | !W1 d98 x8584.79 y19370.89 a0.824611 u0 21 | !W1 d97 x8522.10 y19303.05 a-0.415220 u0 22 | !W1 d97 x8501.64 y19219.69 a-2.023497 u0 23 | !W1 d98 x8402.97 y18995.85 a-1.866133 u0 24 | !W1 d97 x8364.42 y18933.94 a-0.551774 u0 25 | !W1 d98 x8547.45 y18835.00 a0.049335 u0 26 | !W1 d98 x8819.91 y19245.14 a-0.569815 u0 27 | !W1 d98 x8891.27 y18725.70 a0.537285 u0 28 | !W1 d97 x9000.94 y18788.25 a-2.801561 u0 29 | !W1 d98 x9033.13 y19009.89 a2.588589 u0 30 | !W1 d98 x8961.20 y19149.91 a-1.228119 u0 31 | !W1 d97 x9021.37 y19091.44 a2.277326 u0 32 | !W1 d97 x9096.14 y19086.21 a0.564520 u0 33 | !D7 x8424.66 y19147.34 a-0.431189 r279 u0 34 | !G4 x8743.51 y19005.08 a1.139607 o0.00 f330.00 r330.00 l250.00 u0 35 | !N7/49 x8565.44 y18969.87 a-0.431189 u0 36 | !N3/10 x8748.90 y18891.81 a-0.431189 u0 37 | $u:mus14,wait0.1,mus6; 38 | !N7/39 x8610.62 y18912.02 a1.139607 u0 39 | !N7/39 x8650.32 y18998.32 a1.139607 u0 40 | !N7/39 x8689.61 y19083.71 a1.139607 u0 41 | !N7/39 x8729.46 y19170.33 a1.139607 u0 42 | !N7/38 x8624.88 y18943.01 a1.139607 u0 43 | !N7/39 x8471.79 y18935.24 a0.354209 u0 44 | -------------------------------------------------------------------------------- /data/rooms/room027.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k1 b0 d1 g0 n13 w28 2 | c(45706.76,0.00,1.550147,0.000000) 3 | $s:msg0,mus2; 4 | !W1 d0 x1031.29 y45842.24 a1.551962 u0 5 | !W1 d0 x1025.76 y45548.28 a1.551962 u0 6 | !W1 d13 x1037.16 y45473.01 a-1.154809 u0 7 | !W1 d6 x841.90 y45558.78 a-0.735126 u0 8 | !W1 d51 x742.18 y45796.73 a0.232799 u0 9 | !W1 d51 x737.44 y45609.35 a-0.253562 u0 10 | !W1 d41 x687.03 y45922.68 a-2.598320 u0 11 | !W1 d13 x835.85 y45447.17 a-3.134218 u0 12 | !W1 d13 x871.93 y45963.57 a2.929521 u0 13 | !W1 d13 x1206.05 y45899.27 a-0.731218 u0 14 | !W1 d12 x648.78 y45563.48 a1.889399 u0 15 | !W1 d7 x1178.99 y45533.35 a0.970226 u0 16 | !W1 d12 x1147.96 y45462.09 a-0.341910 u0 17 | !W1 d8 x1217.88 y45590.06 a0.970226 u0 18 | !W1 d5 x1251.78 y45639.34 a2.197535 u0 19 | !W1 d5 x1265.40 y45769.59 a-1.624747 u0 20 | !W1 d5 x1280.04 y45546.69 a-1.705364 u0 21 | !W1 d5 x1259.97 y45708.69 a2.790596 u0 22 | !W1 d5 x1270.38 y45872.96 a1.882059 u0 23 | !W1 d11 x1254.83 y45661.44 a2.417140 u0 24 | !W1 d32 x648.58 y45627.13 a1.550147 u0 25 | !W1 d32 x651.78 y45782.29 a1.550147 u0 26 | !W1 d51 x875.68 y45828.38 a0.232799 u0 27 | !W1 d13 x995.53 y45908.96 a-1.428871 u0 28 | !W1 d5 x1102.65 y45896.69 a-1.409082 u0 29 | !W1 d13 x677.15 y45472.79 a2.760739 u0 30 | !W1 d13 x1285.20 y45454.29 a-2.918571 u0 31 | !W1 d5 x941.10 y45472.01 a1.549531 u0 32 | !D1 x650.90 y45704.50 a-0.020649 r26 u0 33 | !N1/2 x1026.80 y45695.24 a3.124044 u0 34 | !N4/0 x1116.78 y45500.98 a2.375010 u0 35 | !N5/1 x1098.60 y45693.69 a3.118407 u0 36 | !N5/1 x1113.21 y45693.35 a-0.023701 u0 37 | !N5/2 x1172.98 y45699.80 a1.545713 u0 38 | !N5/1 x1181.73 y45732.70 a-1.595505 u0 39 | !N5/2 x1190.69 y45762.24 a-1.595931 u0 40 | !N5/1 x1224.09 y45769.13 a3.118407 u0 41 | !N5/3 x1154.45 y45692.29 a-1.595906 u0 42 | !N5/2 x1161.86 y45674.06 a-0.024901 u0 43 | !N5/1 x1194.67 y45665.20 a3.115437 u0 44 | !N5/1 x1229.16 y45664.32 a-0.024672 u0 45 | !N7/6 x944.83 y45521.51 a0.239737 u0 46 | -------------------------------------------------------------------------------- /src/azimuth/tick/node.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_NODE_H_ 22 | #define AZIMUTH_TICK_NODE_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_tick_nodes(az_space_state_t *state, double time); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_TICK_NODE_H_ 33 | -------------------------------------------------------------------------------- /src/azimuth/tick/ship.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_SHIP_H_ 22 | #define AZIMUTH_TICK_SHIP_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_tick_ship(az_space_state_t *state, double time); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_TICK_SHIP_H_ 33 | -------------------------------------------------------------------------------- /src/azimuth/tick/wall.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_WALL_H_ 22 | #define AZIMUTH_TICK_WALL_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_tick_walls(az_space_state_t *state, double time); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_TICK_WALL_H_ 33 | -------------------------------------------------------------------------------- /src/azimuth/view/space.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_SPACE_H_ 22 | #define AZIMUTH_VIEW_SPACE_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_space_draw_screen(az_space_state_t *state); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_VIEW_SPACE_H_ 33 | -------------------------------------------------------------------------------- /src/azimuth/view/speck.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_SPECK_H_ 22 | #define AZIMUTH_VIEW_SPECK_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_draw_specks(const az_space_state_t *state); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_VIEW_SPECK_H_ 33 | -------------------------------------------------------------------------------- /src/azimuth/view/pickup.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_PICKUP_H_ 22 | #define AZIMUTH_VIEW_PICKUP_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_draw_pickups(const az_space_state_t *state); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_VIEW_PICKUP_H_ 33 | -------------------------------------------------------------------------------- /src/azimuth/tick/pickup.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_PICKUP_H_ 22 | #define AZIMUTH_TICK_PICKUP_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_tick_pickups(az_space_state_t *state, double time); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_TICK_PICKUP_H_ 33 | -------------------------------------------------------------------------------- /data/rooms/room430.txt: -------------------------------------------------------------------------------- 1 | @R z6 p4 k17 b0 d1 g1 n17 w23 2 | c(7368.65,0.00,1.613990,0.000000) 3 | $s:msg0,mus7; 4 | !W1 d128 x-143.44 y7188.63 a2.202282 u0 5 | !W1 d130 x-483.79 y7611.53 a-2.222923 u0 6 | !W1 d129 x-613.56 y7532.94 a2.195589 u0 7 | !W1 d128 x-626.48 y7431.53 a2.432418 u0 8 | !W1 d129 x-626.54 y7311.58 a-0.239245 u0 9 | !W1 d129 x-273.57 y7130.98 a2.202282 u0 10 | !W1 d129 x-393.63 y7156.95 a1.244984 u0 11 | !W1 d125 x-6.83 y7344.65 a1.613990 u0 12 | !W1 d126 x-14.37 y7519.00 a1.613990 u0 13 | !W1 d126 x-179.84 y7338.07 a1.613990 u0 14 | !W1 d126 x-323.65 y7330.76 a1.613990 u0 15 | !W1 d127 x-487.41 y7321.57 a1.613990 u0 16 | !W1 d130 x15.56 y7247.27 a-2.991570 u0 17 | !W1 d129 x-97.08 y7176.89 a-0.922332 u0 18 | !W1 d128 x-13.19 y7169.11 a-0.167205 u0 19 | !W1 d130 x-229.02 y7116.14 a-0.002387 u0 20 | !W1 d128 x-476.61 y7186.05 a0.851484 u0 21 | !W1 d129 x-337.53 y7601.16 a2.659512 u0 22 | !W1 d130 x-226.85 y7610.95 a-0.091069 u0 23 | !W1 d128 x-113.28 y7584.74 a-2.331383 u0 24 | !W1 d129 x-20.34 y7593.66 a1.028006 u0 25 | !W1 d130 x-565.01 y7173.82 a-2.226053 u0 26 | !W1 d129 x-466.49 y7099.50 a-0.719530 u0 27 | !D1 x-16.82 y7444.11 a-3.098399 r426 u0 28 | !G5 x-310.61 y7203.86 a1.613886 o0.00 f330.00 r330.00 l110.00 u0 29 | !N7/155 x-331.03 y7543.39 a-1.527603 u0 30 | !N7/155 x-356.57 y7555.30 a-1.527603 u0 31 | !N7/153 x-301.54 y7555.68 a-1.527603 u0 32 | !N7/155 x-158.67 y7561.85 a-1.527603 u0 33 | !N5/5 x-421.96 y7522.03 a1.627139 u0 34 | !N5/5 x-572.00 y7370.56 a-3.065496 u0 35 | !N1/2 x-492.94 y7400.73 a0.043194 u0 36 | !N7/51 x-175.82 y7245.31 a1.613990 u0 37 | !N7/6 x-485.01 y7250.95 a1.613990 u0 38 | !N5/9 x-552.33 y7493.95 a0.043194 u0 39 | !N5/9 x-474.98 y7497.29 a1.613990 u0 40 | !N5/2 x-556.02 y7379.79 a1.644831 u0 41 | !N5/1 x-549.86 y7424.73 a1.613990 u0 42 | !N5/3 x-548.87 y7398.42 a0.043194 u0 43 | !N5/2 x-429.08 y7505.40 a1.627139 u0 44 | !N7/51 x-319.11 y7238.88 a1.613990 u0 45 | !N7/155 x-132.17 y7574.01 a-1.527603 u0 46 | -------------------------------------------------------------------------------- /src/azimuth/tick/cutscene.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_CUTSCENE_H_ 22 | #define AZIMUTH_TICK_CUTSCENE_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_tick_cutscene(az_space_state_t *state, double time); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_TICK_CUTSCENE_H_ 33 | -------------------------------------------------------------------------------- /src/azimuth/view/victory.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_VICTORY_H_ 22 | #define AZIMUTH_VIEW_VICTORY_H_ 23 | 24 | #include "azimuth/state/victory.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_victory_draw_screen(const az_victory_state_t *state); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_VIEW_VICTORY_H_ 33 | -------------------------------------------------------------------------------- /data/rooms/room450.txt: -------------------------------------------------------------------------------- 1 | @R z2 p4 k6 b1 d2 g5 n6 w24 2 | c(17250.72,355.45,1.335527,0.000000) 3 | $s:mus3,test83,heqz,unlock1; 4 | !W1 d98 x4368.78 y16721.35 a0.917815 u0 5 | !W1 d98 x4287.32 y16581.24 a-1.535492 u0 6 | !W1 d98 x3830.23 y17041.30 a1.761313 u0 7 | !W1 d98 x4377.43 y16921.11 a-1.821087 u0 8 | !W1 d98 x4403.88 y17183.00 a0.983784 u0 9 | !W1 d98 x4193.84 y17333.61 a1.696623 u0 10 | !W1 d98 x3977.20 y17413.73 a-0.917014 u0 11 | !W1 d98 x3860.95 y17378.70 a-2.421777 u0 12 | !W1 d98 x4320.99 y17258.75 a-1.028545 u0 13 | !W1 d97 x4423.76 y17274.52 a-1.508920 u0 14 | !W1 d98 x3804.60 y17253.64 a0.903333 u0 15 | !W1 d98 x4377.80 y17040.39 a-2.604604 u0 16 | !W1 d97 x3824.96 y17146.69 a-1.004501 u0 17 | !W1 d98 x3754.99 y17058.31 a-1.281612 u0 18 | !W1 d98 x3772.36 y16900.73 a-2.574234 u0 19 | !W1 d97 x3877.11 y16584.35 a-2.482225 u0 20 | !W1 d97 x4070.29 y16521.97 a-1.026168 u0 21 | !W1 d98 x3816.91 y16653.07 a-1.010708 u0 22 | !W1 d98 x3756.68 y16797.39 a-0.573489 u0 23 | !W1 d98 x3689.64 y16664.14 a1.679556 u0 24 | !W1 d98 x4174.46 y16513.32 a-2.604260 u0 25 | !W1 d98 x4282.63 y16517.40 a0.531705 u0 26 | !W1 d97 x4330.60 y16671.10 a-1.535492 u0 27 | !W1 d97 x4372.00 y16810.14 a-1.040479 u0 28 | !D6 x4084.75 y17343.13 a-1.803344 r234 u1 29 | $o:set83; 30 | !D7 x3956.78 y16514.56 a1.329068 r333 u0 31 | !G2 x3933.36 y16405.86 a0.438007 s200.00 w100.00 i100.00 t150.00 u0 32 | !G2 x3933.36 y16405.86 a0.438007 s100.00 w100.00 i200.00 t100.00 u0 33 | !G2 x3933.36 y16405.86 a0.438007 s50.00 w100.00 i300.00 t100.00 u0 34 | !G2 x3933.36 y16405.86 a0.438007 s25.00 w100.00 i400.00 t100.00 u0 35 | !G4 x4063.32 y16951.07 a1.335527 o0.00 f330.00 r330.00 l430.00 u0 36 | !N7/9 x3935.82 y17012.11 a-3.071229 u0 37 | !N7/50 x4242.39 y17044.05 a2.117628 u0 38 | !N7/97 x3892.45 y17332.89 a2.371895 u0 39 | !N7/55 x4279.16 y17057.87 a2.904900 u0 40 | !N7/55 x3932.78 y17030.35 a2.906405 u0 41 | !N7/9 x4290.08 y16965.71 a2.117628 u0 42 | !B74 x4223.18 y16868.72 a2.114948 u0 43 | -------------------------------------------------------------------------------- /src/azimuth/tick/victory.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_VICTORY_H_ 22 | #define AZIMUTH_TICK_VICTORY_H_ 23 | 24 | #include "azimuth/state/victory.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_tick_victory_state(az_victory_state_t *state, double time); 29 | 30 | /*===========================================================================*/ 31 | 32 | #endif // AZIMUTH_TICK_VICTORY_H_ 33 | -------------------------------------------------------------------------------- /data/rooms/room016.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b3 d2 g0 n3 w33 2 | c(46621.94,176.24,1.498390,0.003915) 3 | $s:test7,heqz,unlock1; 4 | !W1 d46 x3065.40 y46380.61 a-0.638133 u0 5 | !W1 d163 x2903.02 y46646.29 a-1.633411 u0 6 | !W1 d9 x3574.16 y46508.30 a1.497655 u0 7 | !W1 d46 x2968.29 y46363.05 a-0.074134 u0 8 | !W1 d35 x3488.09 y46325.66 a1.500074 u0 9 | !W1 d6 x3493.12 y46394.48 a1.500074 u0 10 | !W1 d35 x3379.46 y46334.61 a1.500074 u0 11 | !W1 d6 x3384.41 y46402.43 a1.500074 u0 12 | !W1 d165 x3691.72 y46566.33 a-0.075503 u0 13 | !W1 d165 x3707.13 y46765.90 a-0.075503 u0 14 | !W1 d165 x2905.95 y46744.77 a-0.062124 u0 15 | !W1 d163 x2890.31 y46446.72 a1.507887 u0 16 | !W1 d163 x2883.59 y46347.14 a-1.633237 u0 17 | !W1 d165 x2891.17 y46294.65 a-1.633237 u0 18 | !W1 d165 x2913.64 y46843.88 a-0.062124 u0 19 | !W1 d166 x3022.42 y46932.49 a-0.092203 u0 20 | !W1 d166 x3271.70 y46913.50 a-0.041408 u0 21 | !W1 d166 x3618.85 y46871.28 a-0.083629 u0 22 | !W1 d165 x3445.20 y46895.04 a-0.058574 u0 23 | !W1 d165 x2990.83 y46286.91 a-0.064826 u0 24 | !W1 d165 x3088.72 y46282.00 a-0.064826 u0 25 | !W1 d165 x3188.48 y46274.96 a-0.064826 u0 26 | !W1 d165 x3288.37 y46269.91 a-0.064826 u0 27 | !W1 d165 x3388.12 y46262.87 a-0.064826 u0 28 | !W1 d165 x3488.01 y46257.83 a-0.064826 u0 29 | !W1 d165 x3589.35 y46272.73 a-0.064826 u0 30 | !W1 d165 x3687.25 y46267.82 a-0.064826 u0 31 | !W1 d165 x3691.37 y46466.46 a-0.075503 u0 32 | !W1 d163 x3664.21 y46368.16 a1.507887 u0 33 | !W1 d163 x3590.47 y46457.71 a-0.064826 u0 34 | !W1 d163 x3490.73 y46464.93 a-0.064826 u0 35 | !W1 d163 x3390.99 y46472.14 a-0.064826 u0 36 | !W1 d163 x3593.65 y46591.17 a-0.064826 u0 37 | !D3 x2896.74 y46546.56 a-0.063122 r15 u1 38 | $o:set7; 39 | !D1 x3678.57 y46667.59 a3.063141 r17 u0 40 | !N7/9 x3312.52 y46447.78 a0.716778 u0 41 | !N7/9 x3227.50 y46373.58 a0.716778 u0 42 | !N7/9 x3142.73 y46299.60 a0.716778 u0 43 | !B12 x3163.50 y46851.03 a-1.076707 u0 44 | !B12 x3223.55 y46847.94 a-2.165840 u0 45 | !B12 x3274.57 y46846.38 a-1.076707 u0 46 | -------------------------------------------------------------------------------- /data/rooms/room025.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b0 d1 g0 n16 w23 2 | c(46630.22,0.00,1.652048,0.000000) 3 | $s:msg0,test1,beqz/A,mus15,halt,A#mus1,dark0.5,B#rand,dup,mul,muli4,addi0.75,waits,blink0,snd6,jump/B; 4 | !W1 d9 x-3882.51 y46606.94 a0.083678 u0 5 | !W1 d9 x-3791.73 y46613.30 a0.081366 u0 6 | !W1 d9 x-3861.93 y46320.11 a0.077149 u0 7 | !W1 d9 x-3731.37 y46330.78 a0.077149 u0 8 | !W1 d165 x-3474.07 y46396.61 a0.077149 u0 9 | !W1 d165 x-3467.04 y46296.85 a0.077149 u0 10 | !W1 d165 x-3491.03 y46594.89 a0.077149 u0 11 | !W1 d165 x-3498.97 y46693.57 a0.077149 u0 12 | !W1 d166 x-3639.44 y46259.96 a0.080480 u0 13 | !W1 d166 x-3888.42 y46239.66 a0.080480 u0 14 | !W1 d166 x-3674.44 y46703.54 a0.080480 u0 15 | !W1 d166 x-3923.63 y46683.44 a0.080480 u0 16 | !W1 d165 x-4080.27 y46451.32 a-3.053749 u0 17 | !W1 d165 x-4087.51 y46550.06 a0.087834 u0 18 | !W1 d165 x-4093.76 y46648.88 a0.087782 u0 19 | !W1 d165 x-4072.95 y46351.59 a0.087896 u0 20 | !W1 d165 x-4063.80 y46253.99 a0.077149 u0 21 | !W1 d32 x-3685.52 y46334.53 a0.077149 u0 22 | !W1 d32 x-3816.04 y46323.36 a0.082395 u0 23 | !W1 d32 x-3944.65 y46313.34 a0.077149 u0 24 | !W1 d32 x-3965.40 y46602.23 a0.077149 u0 25 | !W1 d32 x-3836.83 y46612.66 a0.077149 u0 26 | !W1 d32 x-3708.25 y46623.09 a0.077149 u0 27 | !D1 x-3493.74 y46494.87 a-3.065765 r22 u0 28 | !N5/1 x-3944.68 y46350.11 a-1.484983 u0 29 | !N5/1 x-3819.87 y46356.88 a-1.488788 u0 30 | !N5/1 x-3950.89 y46426.04 a-1.486333 u0 31 | !N5/1 x-3955.41 y46480.74 a1.655325 u0 32 | !N5/1 x-3961.54 y46552.96 a1.655325 u0 33 | !N1/2 x-3808.38 y46469.37 a0.075828 u0 34 | !N5/1 x-3879.05 y46463.72 a0.084479 u0 35 | !N5/3 x-3953.49 y46457.33 a0.085250 u0 36 | !N5/1 x-3912.63 y46460.78 a-3.057374 u0 37 | !N5/3 x-3958.90 y46521.35 a-3.056516 u0 38 | !N5/1 x-3999.74 y46518.14 a0.085954 u0 39 | !N5/1 x-4019.82 y46516.44 a-3.055390 u0 40 | !N5/3 x-3947.40 y46384.82 a0.085101 u0 41 | !N5/1 x-3906.56 y46388.28 a-3.055481 u0 42 | !N5/1 x-3863.60 y46391.88 a0.083278 u0 43 | !N5/2 x-3830.16 y46386.53 a-3.059546 u0 44 | -------------------------------------------------------------------------------- /data/rooms/room466.txt: -------------------------------------------------------------------------------- 1 | @R z6 p4 k17 b1 d2 g0 n20 w21 2 | c(13237.79,0.00,1.547271,0.000000) 3 | !W1 d125 x604.11 y13354.29 a-1.594322 u0 4 | !W1 d125 x12.42 y13368.20 a-1.594322 u0 5 | !W1 d129 x137.69 y13121.43 a-0.881511 u0 6 | !W1 d125 x14.77 y13467.92 a-1.594322 u0 7 | !W1 d125 x80.63 y13466.38 a-1.594322 u0 8 | !W1 d125 x146.59 y13464.74 a-1.594322 u0 9 | !W1 d131 x25.64 y13306.40 a1.744662 u0 10 | !W1 d133 x22.23 y13190.93 a-1.011608 u0 11 | !W1 d125 x540.59 y13455.36 a-1.594322 u0 12 | !W1 d125 x606.45 y13453.83 a-1.594322 u0 13 | !W1 d132 x638.21 y13292.33 a1.615308 u0 14 | !W1 d132 x601.64 y13209.74 a0.833799 u0 15 | !W1 d129 x611.09 y13089.12 a-2.392821 u0 16 | !W1 d130 x543.85 y13016.56 a1.817839 u0 17 | !W1 d125 x212.45 y13463.20 a-1.594322 u0 18 | !W1 d125 x278.26 y13461.79 a-1.594322 u0 19 | !W1 d125 x344.12 y13460.26 a-1.594322 u0 20 | !W1 d125 x410.08 y13458.61 a-1.594322 u0 21 | !W1 d129 x417.82 y13012.54 a-0.315754 u0 22 | !W1 d130 x13.96 y13049.07 a2.566294 u0 23 | !W1 d130 x168.61 y12990.36 a2.992604 u0 24 | !D1 x307.43 y13023.41 a1.547271 r436 u0 25 | !D7 x476.19 y13500.20 a-1.594321 r465 u0 26 | !N5/5 x341.35 y13412.90 a-1.594322 u0 27 | !N7/8 x175.07 y13392.18 a1.547271 u0 28 | !N5/5 x196.05 y13394.27 a3.118067 u0 29 | !N7/128 x98.18 y13426.46 a0.386997 u0 30 | !N7/128 x135.82 y13169.24 a0.386997 u0 31 | !N7/7 x171.29 y13231.36 a1.547271 u0 32 | !N7/7 x402.99 y13088.43 a1.547271 u0 33 | !N7/7 x405.16 y13180.61 a1.547271 u0 34 | !N7/7 x407.34 y13273.13 a1.547271 u0 35 | !N7/7 x409.48 y13364.35 a1.547271 u0 36 | !N7/129 x546.39 y13103.56 a-0.408446 u0 37 | !N7/128 x565.25 y13395.20 a0.995801 u0 38 | !N5/9 x286.79 y13378.75 a-0.023525 u0 39 | !N5/9 x95.84 y13383.24 a-0.023525 u0 40 | !N5/1 x218.31 y13393.74 a-0.023525 u0 41 | !N7/7 x173.45 y13322.97 a1.547271 u0 42 | !N5/1 x165.31 y13394.99 a3.118067 u0 43 | !N5/1 x26.87 y13398.25 a-0.023525 u0 44 | !N5/2 x332.96 y13399.07 a1.547271 u0 45 | !N5/1 x26.62 y13382.09 a-0.023525 u0 46 | !B7 x475.16 y13095.52 a0.625525 u0 47 | -------------------------------------------------------------------------------- /src/editor/audit.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef EDITOR_AUDIT_H_ 22 | #define EDITOR_AUDIT_H_ 23 | 24 | #include 25 | 26 | #include "azimuth/state/planet.h" 27 | 28 | /*===========================================================================*/ 29 | 30 | // Returns true if there are no problems. 31 | bool az_audit_scenario(const az_planet_t *planet); 32 | 33 | /*===========================================================================*/ 34 | 35 | #endif // EDITOR_AUDIT_H_ 36 | -------------------------------------------------------------------------------- /src/azimuth/tick/camera.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_CAMERA_H_ 22 | #define AZIMUTH_TICK_CAMERA_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | #include "azimuth/util/vector.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_tick_camera(az_space_state_t *state, az_vector_t goal, double time); 30 | 31 | /*===========================================================================*/ 32 | 33 | #endif // AZIMUTH_TICK_CAMERA_H_ 34 | -------------------------------------------------------------------------------- /data/rooms/room252.txt: -------------------------------------------------------------------------------- 1 | @R z5 p0 k1 b0 d1 g0 n4 w36 2 | c(36837.45,0.00,1.263041,0.000000) 3 | $s:dark1,has24,hnez,lock1; 4 | !W1 d33 x10943.46 y35145.75 a2.839941 u0 5 | !W1 d39 x11026.91 y35193.72 a-1.874807 u0 6 | !W1 d39 x10926.03 y35328.62 a-1.870814 u0 7 | !W1 d39 x11274.16 y35152.91 a2.830543 u0 8 | !W1 d39 x11430.11 y35240.79 a-0.308266 u0 9 | !W1 d39 x11323.30 y35076.43 a-1.884694 u0 10 | !W1 d39 x11415.74 y34977.64 a-1.884694 u0 11 | !W1 d39 x11265.83 y34958.21 a2.830543 u0 12 | !W1 d39 x11175.72 y34915.55 a1.265764 u0 13 | !W1 d39 x11036.74 y34993.33 a1.265764 u0 14 | !W1 d38 x11016.44 y34929.48 a-0.305251 u0 15 | !W1 d49 x11061.62 y35071.46 a0.482026 u0 16 | !W1 d49 x11135.70 y35109.83 a-0.308244 u0 17 | !W1 d38 x11164.09 y34882.53 a-0.305251 u0 18 | !W1 d40 x11195.96 y34979.42 a-1.880565 u0 19 | !W1 d39 x11210.02 y35086.18 a2.830543 u0 20 | !W1 d39 x11331.49 y34937.10 a2.830543 u0 21 | !W1 d38 x11395.44 y34916.54 a2.830543 u0 22 | !W1 d39 x11270.93 y35066.59 a2.830543 u0 23 | !W1 d38 x11316.42 y35051.33 a2.830543 u0 24 | !W1 d40 x11340.91 y35131.69 a2.830968 u0 25 | !W1 d39 x11445.71 y35069.97 a-1.884694 u0 26 | !W1 d39 x11475.66 y35162.22 a-1.884694 u0 27 | !W1 d38 x11494.36 y35219.84 a-1.884694 u0 28 | !W1 d39 x11335.79 y35270.83 a-0.308266 u0 29 | !W1 d39 x11240.51 y35301.17 a-0.308266 u0 30 | !W1 d39 x11145.22 y35331.51 a-0.308266 u0 31 | !W1 d39 x11051.83 y35361.24 a-0.308266 u0 32 | !W1 d39 x10975.61 y35385.52 a-0.308266 u0 33 | !W1 d38 x10947.24 y35395.33 a2.830543 u0 34 | !W1 d39 x11180.82 y35182.91 a2.830543 u0 35 | !W1 d39 x11086.60 y35213.20 a2.830543 u0 36 | !W1 d39 x10897.36 y35235.91 a-1.870814 u0 37 | !W1 d38 x11038.77 y35227.73 a2.830543 u0 38 | !W1 d34 x10876.75 y35166.95 a-0.300655 u0 39 | !W1 d34 x11006.36 y35125.75 a1.268127 u0 40 | !D1 x11090.51 y34905.80 a1.263272 r251 u1 41 | !N3/24 x10957.07 y35198.14 a-0.307891 u0 42 | $u:mus14,wait0.1,mus6,unlock1; 43 | !N7/9 x10917.85 y35070.67 a1.263143 u0 44 | !N7/9 x10884.24 y34964.88 a1.263143 u0 45 | !N7/9 x11370.38 y34837.26 a1.263143 u0 46 | -------------------------------------------------------------------------------- /src/muse/wave.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef MUSE_WAVE_H_ 22 | #define MUSE_WAVE_H_ 23 | 24 | #include 25 | #include 26 | 27 | #include "azimuth/util/music.h" 28 | 29 | /*===========================================================================*/ 30 | 31 | void az_write_music_to_wav_file(FILE *file, az_music_synth_t *synth, 32 | double duration); 33 | 34 | /*===========================================================================*/ 35 | 36 | #endif // MUSE_WAVE_H_ 37 | -------------------------------------------------------------------------------- /data/rooms/room384.txt: -------------------------------------------------------------------------------- 1 | @R z4 p0 k2 b0 d1 g0 n18 w24 2 | c(21852.37,0.00,1.755737,0.000000) 3 | $s:msg0,mus5; 4 | !W1 d24 x-3740.35 y21799.03 a1.754660 u0 5 | !W1 d24 x-3763.03 y21733.64 a1.754660 u0 6 | !W1 d24 x-3656.75 y21370.81 a1.754660 u0 7 | !W1 d25 x-4306.85 y21634.61 a1.754660 u0 8 | !W1 d25 x-4366.02 y21402.94 a1.754660 u0 9 | !W1 d25 x-4170.69 y21659.81 a1.754660 u0 10 | !W1 d25 x-4034.64 y21684.72 a1.754660 u0 11 | !W1 d25 x-4276.39 y21297.56 a1.754660 u0 12 | !W1 d25 x-4186.55 y21192.23 a1.754660 u0 13 | !W1 d24 x-4291.90 y21193.91 a1.754660 u0 14 | !W1 d24 x-4088.06 y21230.75 a1.754660 u0 15 | !W1 d25 x-3982.37 y21229.53 a1.754660 u0 16 | !W1 d24 x-3884.03 y21268.28 a1.754660 u0 17 | !W1 d24 x-3816.13 y21280.91 a1.754660 u0 18 | !W1 d24 x-3748.01 y21293.22 a1.754660 u0 19 | !W1 d24 x-3724.82 y21358.30 a1.754660 u0 20 | !W1 d25 x-3642.84 y21292.48 a1.754660 u0 21 | !W1 d24 x-3701.35 y21423.39 a1.754660 u0 22 | !W1 d25 x-3685.78 y21527.70 a1.754660 u0 23 | !W1 d24 x-3936.07 y21722.88 a1.754660 u0 24 | !W1 d25 x-3837.78 y21761.32 a1.754660 u0 25 | !W1 d24 x-3785.60 y21669.46 a1.754660 u0 26 | !W1 d24 x-3740.93 y21616.95 a1.754660 u0 27 | !W1 d24 x-3717.45 y21681.49 a1.754660 u0 28 | !D1 x-4339.77 y21520.11 a-0.335780 r357 u0 29 | !N5/6 x-3781.65 y21445.40 a0.174841 u0 30 | !N5/1 x-3726.38 y21454.31 a-2.966600 u0 31 | !N5/1 x-3792.13 y21321.06 a-1.391069 u0 32 | !N5/5 x-3824.13 y21355.22 a-2.964871 u0 33 | !N5/1 x-3867.12 y21308.09 a-1.391069 u0 34 | !N5/5 x-3841.16 y21394.58 a1.073265 u0 35 | !N1/2 x-3883.08 y21436.64 a2.792939 u0 36 | !N7/25 x-4148.39 y21244.09 a1.754660 u0 37 | !N7/24 x-3949.45 y21676.05 a1.754660 u0 38 | !N7/24 x-4212.33 y21607.53 a1.754660 u0 39 | !N7/24 x-3755.18 y21573.03 a1.754660 u0 40 | !N5/3 x-3830.72 y21416.31 a2.725682 u0 41 | !N5/4 x-3814.43 y21430.32 a-1.348061 u0 42 | !N5/4 x-3844.46 y21373.18 a-0.571316 u0 43 | !N5/3 x-3848.49 y21350.84 a1.749201 u0 44 | !N5/2 x-3864.73 y21339.77 a-1.391069 u0 45 | !N5/2 x-3805.49 y21350.41 a-2.966231 u0 46 | !N4/24 x-4394.39 y21539.17 a-0.335780 u0 47 | -------------------------------------------------------------------------------- /src/azimuth/tick/particle.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_PARTICLE_H_ 22 | #define AZIMUTH_TICK_PARTICLE_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_tick_particle(az_particle_t *particle, double time); 29 | 30 | void az_tick_particles(az_space_state_t *state, double time); 31 | 32 | /*===========================================================================*/ 33 | 34 | #endif // AZIMUTH_TICK_PARTICLE_H_ 35 | -------------------------------------------------------------------------------- /data/rooms/room132.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k8 b0 d1 g0 n14 w28 2 | c(45764.02,0.00,1.235439,0.000000) 3 | $s:msg0,mus2; 4 | !W1 d9 x14782.32 y43313.67 a1.240295 u0 5 | !W1 d26 x15367.10 y43199.00 a-0.341767 u0 6 | !W1 d26 x15307.79 y43029.72 a-0.341767 u0 7 | !W1 d27 x15289.27 y42976.88 a1.229856 u0 8 | !W1 d26 x15239.34 y42950.81 a0.448726 u0 9 | !W1 d27 x15188.16 y42926.83 a0.444458 u0 10 | !W1 d26 x15135.56 y42947.53 a-0.338061 u0 11 | !W1 d26 x15060.05 y42973.53 a-0.338061 u0 12 | !W1 d26 x14984.45 y42999.42 a-0.338061 u0 13 | !W1 d26 x14909.03 y43025.63 a-0.338061 u0 14 | !W1 d26 x14833.73 y43052.18 a-0.338061 u0 15 | !W1 d27 x15339.83 y43353.96 a2.802437 u0 16 | !W1 d27 x15385.89 y43252.34 a2.016713 u0 17 | !W1 d26 x15365.37 y43303.82 a0.443631 u0 18 | !W1 d26 x15287.58 y43374.81 a-0.338858 u0 19 | !W1 d26 x15212.75 y43401.63 a-0.341767 u0 20 | !W1 d26 x15137.44 y43428.62 a-0.341767 u0 21 | !W1 d26 x15062.15 y43455.70 a-0.341767 u0 22 | !W1 d26 x14987.05 y43483.29 a-0.341767 u0 23 | !W1 d27 x14832.41 y43454.82 a-1.903307 u0 24 | !W1 d27 x14934.24 y43502.47 a-2.691375 u0 25 | !W1 d26 x14883.47 y43478.87 a0.457359 u0 26 | !W1 d26 x14814.20 y43401.65 a-0.328677 u0 27 | !W1 d26 x14784.59 y43312.55 a-0.328677 u0 28 | !W1 d26 x14753.07 y43224.93 a-0.328677 u0 29 | !W1 d27 x14780.63 y43070.73 a-0.330567 u0 30 | !W1 d27 x14734.35 y43172.23 a-1.114114 u0 31 | !W1 d26 x14756.48 y43121.26 a0.452863 u0 32 | !D1 x15335.62 y43114.99 a2.800454 r100 u0 33 | !N5/5 x14828.45 y43269.36 a1.239153 u0 34 | !N5/1 x14874.14 y43275.85 a2.810606 u0 35 | !N1/2 x14962.90 y43245.18 a-0.334262 u0 36 | !N5/1 x14774.92 y43365.13 a-0.331581 u0 37 | !N5/1 x14827.78 y43346.70 a2.811210 u0 38 | !N5/3 x14910.10 y43263.57 a1.239488 u0 39 | !N5/2 x14908.61 y43283.48 a2.809473 u0 40 | !N5/2 x14840.25 y43279.33 a-1.901773 u0 41 | !N5/1 x14783.75 y43263.52 a2.810460 u0 42 | !N5/2 x14904.27 y43301.81 a-0.330757 u0 43 | !N5/2 x14892.39 y43316.47 a2.810519 u0 44 | !N5/1 x14863.78 y43334.76 a-0.331074 u0 45 | !N5/1 x14730.83 y43281.63 a-0.329210 u0 46 | !N5/2 x14817.15 y43260.48 a1.240295 u0 47 | -------------------------------------------------------------------------------- /src/azimuth/control/gameover.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_CONTROL_GAMEOVER_H_ 22 | #define AZIMUTH_CONTROL_GAMEOVER_H_ 23 | 24 | /*===========================================================================*/ 25 | 26 | typedef enum { 27 | AZ_GOA_TRY_AGAIN, 28 | AZ_GOA_RETURN_TO_TITLE, 29 | AZ_GOA_QUIT 30 | } az_gameover_action_t; 31 | 32 | az_gameover_action_t az_gameover_event_loop(void); 33 | 34 | /*===========================================================================*/ 35 | 36 | #endif // AZIMUTH_CONTROL_GAMEOVER_H_ 37 | -------------------------------------------------------------------------------- /src/azimuth/tick/speck.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_SPECK_H_ 22 | #define AZIMUTH_TICK_SPECK_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | #include "azimuth/state/speck.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_tick_speck(az_speck_t *speck, double time); 30 | 31 | void az_tick_specks(az_space_state_t *state, double time); 32 | 33 | /*===========================================================================*/ 34 | 35 | #endif // AZIMUTH_TICK_SPECK_H_ 36 | -------------------------------------------------------------------------------- /data/rooms/room008.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b4 d3 g0 n1 w33 2 | c(47974.69,334.11,1.551747,0.000000) 3 | $s:test23,beqz/A,lock1,halt,A#nix10,nix11,nix12,nix13,test1,hnez,dark0.5,B#rand,dup,mul,muli4,addi0.75,waits,blink0,snd6,jump/B; 4 | !W1 d10 x1001.02 y48247.61 a-0.020603 u0 5 | !W1 d9 x1112.59 y48245.15 a-0.022835 u0 6 | !W1 d10 x792.37 y48348.70 a3.124094 u0 7 | !W1 d50 x700.89 y48350.37 a3.125836 u0 8 | !W1 d165 x1024.77 y48530.32 a3.122552 u0 9 | !W1 d165 x1116.95 y48079.77 a-0.019049 u0 10 | !W1 d165 x1124.67 y48528.42 a3.122552 u0 11 | !W1 d165 x1224.63 y48526.52 a3.122552 u0 12 | !W1 d165 x1222.75 y48426.64 a-1.589846 u0 13 | !W1 d165 x1218.94 y48226.88 a-1.589846 u0 14 | !W1 d165 x1217.04 y48127.17 a-1.589846 u0 15 | !W1 d165 x825.15 y48534.13 a3.122552 u0 16 | !W1 d165 x725.49 y48536.02 a3.122552 u0 17 | !W1 d165 x625.83 y48537.92 a-1.589846 u0 18 | !W1 d165 x623.93 y48438.08 a-1.589846 u0 19 | !W1 d165 x622.03 y48338.37 a-1.589846 u0 20 | !W1 d165 x620.13 y48238.68 a-1.589846 u0 21 | !W1 d165 x618.23 y48139.00 a-1.589846 u0 22 | !W1 d165 x616.32 y48039.05 a-1.589846 u0 23 | !W1 d165 x614.42 y47939.31 a-1.589846 u0 24 | !W1 d165 x612.52 y47839.62 a-1.589846 u0 25 | !W1 d165 x610.63 y47739.93 a-0.019049 u0 26 | !W1 d165 x710.42 y47738.03 a-0.019049 u0 27 | !W1 d165 x810.35 y47736.13 a-0.019049 u0 28 | !W1 d165 x1009.28 y47732.34 a-0.019049 u0 29 | !W1 d165 x1109.25 y47730.43 a-0.019049 u0 30 | !W1 d165 x1208.91 y47728.54 a-0.019049 u0 31 | !W1 d165 x1215.14 y48027.30 a-1.589846 u0 32 | !W1 d165 x1213.25 y47927.99 a-1.589846 u0 33 | !W1 d165 x1211.35 y47828.34 a-1.589846 u0 34 | !W1 d165 x1017.55 y48081.66 a-0.019049 u0 35 | !W1 d165 x917.93 y48083.56 a-0.019049 u0 36 | !W1 d165 x818.68 y48085.45 a-0.019049 u0 37 | !D1 x924.42 y48510.39 a-1.589850 r7 u0 38 | !D1 x1213.16 y48326.96 a3.122543 r11 u0 39 | !D1 x910.06 y47754.82 a1.551742 r12 u1 40 | !N7/9 x719.45 y48101.93 a-0.019049 u0 41 | !B114 x1285.47 y48029.92 a2.669409 u10 42 | !B114 x1192.56 y47608.77 a1.547062 u11 43 | !B114 x620.56 y47625.96 a1.547062 u12 44 | !B114 x541.51 y48283.08 a-0.010918 u13 45 | -------------------------------------------------------------------------------- /src/azimuth/control/victory.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_CONTROL_VICTORY_H_ 22 | #define AZIMUTH_CONTROL_VICTORY_H_ 23 | 24 | #include "azimuth/state/save.h" 25 | #include "azimuth/state/player.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_victory_event_loop(az_saved_games_t *saved_games, 30 | const az_player_t *player); 31 | 32 | /*===========================================================================*/ 33 | 34 | #endif // AZIMUTH_CONTROL_VICTORY_H_ 35 | -------------------------------------------------------------------------------- /src/azimuth/system/resource.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_SYSTEM_RESOURCE_H_ 22 | #define AZIMUTH_SYSTEM_RESOURCE_H_ 23 | 24 | #include 25 | 26 | #include "azimuth/util/rw.h" 27 | 28 | /*===========================================================================*/ 29 | 30 | // An az_resource_reader_fn_t for reading game resources. 31 | bool az_system_resource_reader(const char *name, az_reader_t *reader); 32 | 33 | /*===========================================================================*/ 34 | 35 | #endif // AZIMUTH_SYSTEM_RESOURCE_H_ 36 | -------------------------------------------------------------------------------- /src/azimuth/view/doodad.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_DOODAD_H_ 22 | #define AZIMUTH_VIEW_DOODAD_H_ 23 | 24 | #include "azimuth/state/node.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | // Draw a single doodad. The GL matrix should be at the doodad's position. 30 | void az_draw_doodad(az_doodad_kind_t doodad_kind, az_clock_t clock); 31 | 32 | /*===========================================================================*/ 33 | 34 | #endif // AZIMUTH_VIEW_DOODAD_H_ 35 | -------------------------------------------------------------------------------- /src/azimuth/view/ship.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_SHIP_H_ 22 | #define AZIMUTH_VIEW_SHIP_H_ 23 | 24 | #include "azimuth/state/ship.h" 25 | #include "azimuth/state/space.h" 26 | #include "azimuth/util/clock.h" 27 | 28 | /*===========================================================================*/ 29 | 30 | void az_draw_ship(az_space_state_t *state); 31 | 32 | void az_draw_ship_body(const az_ship_t *ship, az_clock_t clock); 33 | 34 | /*===========================================================================*/ 35 | 36 | #endif // AZIMUTH_VIEW_SHIP_H_ 37 | -------------------------------------------------------------------------------- /data/rooms/room133.txt: -------------------------------------------------------------------------------- 1 | @R z1 p4 k1 b2 d1 g0 n5 w35 2 | c(43204.26,383.99,1.252687,0.000000) 3 | !W1 d14 x13784.88 y41586.31 a1.250788 u0 4 | !W1 d41 x13895.92 y41505.84 a-0.324304 u0 5 | !W1 d14 x13430.30 y41705.73 a-0.311539 u0 6 | !W1 d41 x13347.07 y41469.04 a-2.732937 u0 7 | !W7 d6 x13663.99 y41494.34 a2.823295 u0 8 | !W7 d6 x13640.16 y41422.18 a2.823295 u0 9 | !W7 d6 x13616.11 y41349.03 a2.823295 u0 10 | !W1 d12 x13700.80 y41337.95 a1.249630 u0 11 | !W1 d14 x13577.26 y41502.94 a-1.891846 u0 12 | !W1 d13 x13777.68 y41427.37 a2.591523 u0 13 | !W1 d2 x13476.21 y41119.30 a-0.318320 u0 14 | !W1 d2 x13589.79 y41081.72 a-1.103718 u0 15 | !W1 d13 x13488.55 y41368.02 a0.925879 u0 16 | !W1 d41 x13239.41 y41167.37 a1.259413 u0 17 | !W1 d13 x13350.43 y41298.20 a3.077734 u0 18 | !W1 d5 x13383.02 y41375.51 a3.056778 u0 19 | !W1 d11 x13267.27 y41287.06 a3.056778 u0 20 | !W1 d12 x13622.14 y41642.03 a1.249630 u0 21 | !W1 d41 x13476.42 y41602.27 a3.034099 u0 22 | !W1 d5 x13510.04 y41470.28 a-0.314635 u0 23 | !W1 d11 x13467.12 y41509.56 a-1.884516 u0 24 | !W1 d41 x13716.40 y40806.50 a0.639164 u0 25 | !W1 d41 x13827.90 y41144.59 a-2.896749 u0 26 | !W1 d13 x13778.47 y40975.57 a-1.857871 u0 27 | !W1 d5 x13857.92 y41050.45 a1.245226 u0 28 | !W1 d13 x13780.59 y41288.98 a0.609097 u0 29 | !W1 d13 x13899.77 y41363.55 a-1.846766 u0 30 | !W1 d5 x13886.95 y41266.72 a2.816980 u0 31 | !W1 d41 x13348.85 y40860.66 a2.466585 u0 32 | !W1 d13 x13536.13 y40782.82 a-0.286004 u0 33 | !W1 d13 x13246.44 y40979.10 a2.051696 u0 34 | !W1 d5 x13168.83 y41059.95 a-1.096841 u0 35 | !W1 d5 x13181.81 y40912.72 a2.043987 u0 36 | !W1 d11 x13150.43 y40949.05 a-0.309828 u0 37 | !W5 d47 x13492.01 y40901.08 a-0.761262 u0 38 | !D7 x13715.86 y41658.34 a-1.888864 r106 u0 39 | !N3/58 x13520.12 y41058.47 a-0.318129 u0 40 | $u:has56,beqz/A,snd5,halt,A#mus14,wait0.1,mus2; 41 | !N7/9 x13642.14 y40977.52 a-1.106427 u0 42 | !N7/9 x13692.47 y40877.77 a-1.106427 u0 43 | !N7/9 x13371.58 y41066.46 a0.470524 u0 44 | !N7/9 x13270.63 y41015.38 a0.470524 u0 45 | !B8 x13595.84 y40868.96 a-0.323331 u0 46 | !B8 x13418.41 y40930.14 a-0.316829 u0 47 | -------------------------------------------------------------------------------- /data/rooms/room043.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k12 b4 d2 g0 n3 w34 2 | c(38061.60,92.77,1.656871,0.005066) 3 | $s:mus2,test16,heqz,unlock1; 4 | !W1 d159 x-3169.38 y37699.98 a0.086075 u0 5 | !W1 d159 x-3413.66 y37680.96 a-3.050452 u0 6 | !W1 d159 x-3655.57 y37676.48 a-3.050452 u0 7 | !W1 d39 x-3567.97 y38135.16 a-2.261839 u0 8 | !W1 d40 x-3541.24 y38167.48 a0.092526 u0 9 | !W1 d39 x-3602.35 y38093.87 a-2.261839 u0 10 | !W1 d80 x-3329.59 y38227.96 a-3.000848 u0 11 | !W1 d83 x-3021.71 y38247.11 a-3.067215 u0 12 | !W1 d80 x-3159.54 y38250.29 a0.075376 u0 13 | !W1 d80 x-3029.94 y38193.33 a0.075376 u0 14 | !W1 d60 x-3769.71 y37716.70 a1.665926 u0 15 | !W1 d39 x-3706.73 y37759.82 a2.453046 u0 16 | !W1 d39 x-3756.32 y37856.58 a1.662105 u0 17 | !W1 d87 x-3416.79 y37727.10 a-2.978761 u0 18 | !W1 d61 x-3293.86 y37732.45 a0.078435 u0 19 | !W1 d45 x-3150.55 y37754.15 a0.185794 u0 20 | !W1 d86 x-2975.85 y37884.49 a0.097279 u0 21 | !W1 d83 x-2975.60 y37828.24 a0.141231 u0 22 | !W1 d81 x-3034.26 y38151.63 a0.075376 u0 23 | !W1 d80 x-3032.69 y38087.74 a-3.065029 u0 24 | !W1 d84 x-3004.00 y38036.74 a0.074266 u0 25 | !W1 d80 x-2970.60 y37789.49 a-3.068702 u0 26 | !W1 d85 x-3057.04 y37721.36 a0.078435 u0 27 | !W1 d45 x-3440.59 y37729.68 a-0.011075 u0 28 | !W1 d38 x-3758.00 y37883.20 a1.662105 u0 29 | !W1 d40 x-3749.92 y37794.90 a1.662105 u0 30 | !W1 d45 x-3639.87 y37730.26 a0.004340 u0 31 | !W1 d61 x-3784.55 y37788.62 a-1.079446 u0 32 | !W1 d81 x-3571.61 y38206.26 a-3.049491 u0 33 | !W1 d80 x-3756.45 y38176.82 a-3.000848 u0 34 | !W1 d83 x-3785.23 y38096.83 a-3.046083 u0 35 | !W1 d39 x-3700.92 y38044.73 a-3.050558 u0 36 | !W1 d38 x-3772.20 y38038.22 a-3.050558 u0 37 | !W1 d40 x-3637.18 y38050.55 a-3.050558 u0 38 | !D4 x-3765.22 y37960.68 a0.098218 r44 u1 39 | $o:set16; 40 | !D1 x-2972.08 y37952.43 a-3.055639 r84 u0 41 | !N7/87 x-3347.29 y37702.40 a1.543761 u0 42 | !N7/80 x-3287.60 y38227.69 a0.034841 u0 43 | !N7/86 x-3032.41 y38035.90 a-3.058424 u0 44 | !B4 x-3236.45 y38180.33 a-2.756825 u0 45 | !B4 x-3483.57 y38161.49 a-0.694366 u0 46 | !B16 x-3461.90 y37778.72 a1.661077 u0 47 | !B16 x-3323.74 y38170.68 a-1.483489 u0 48 | -------------------------------------------------------------------------------- /src/azimuth/tick/projectile.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_PROJECTILE_H_ 22 | #define AZIMUTH_TICK_PROJECTILE_H_ 23 | 24 | #include "azimuth/state/projectile.h" 25 | #include "azimuth/state/space.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_expire_projectile(az_space_state_t *state, az_projectile_t *proj); 30 | 31 | void az_tick_projectiles(az_space_state_t *state, double time); 32 | 33 | /*===========================================================================*/ 34 | 35 | #endif // AZIMUTH_TICK_PROJECTILE_H_ 36 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_kilofuge.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_KILOFUGE_H_ 22 | #define AZIMUTH_VIEW_BADDIE_KILOFUGE_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_kilofuge(const az_baddie_t *baddie, az_clock_t clock); 30 | 31 | void az_draw_bad_ice_crystal(const az_baddie_t *baddie); 32 | 33 | /*===========================================================================*/ 34 | 35 | #endif // AZIMUTH_VIEW_BADDIE_KILOFUGE_H_ 36 | -------------------------------------------------------------------------------- /src/editor/view.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef EDITOR_VIEW_H_ 22 | #define EDITOR_VIEW_H_ 23 | 24 | #include "editor/state.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | #define EDITOR_TEXT_BOX_CHARS_PER_ROW 39 29 | 30 | void az_editor_draw_screen(az_editor_state_t *state); 31 | 32 | az_vector_t az_pixel_to_position(const az_editor_state_t *state, int x, int y); 33 | 34 | int az_pixel_to_text_box_index(int x, int y); 35 | 36 | /*===========================================================================*/ 37 | 38 | #endif // EDITOR_VIEW_H_ 39 | -------------------------------------------------------------------------------- /src/azimuth/view/particle.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_PARTICLE_H_ 22 | #define AZIMUTH_VIEW_PARTICLE_H_ 23 | 24 | #include "azimuth/state/particle.h" 25 | #include "azimuth/state/space.h" 26 | #include "azimuth/util/clock.h" 27 | 28 | /*===========================================================================*/ 29 | 30 | void az_draw_particle(const az_particle_t *particle, az_clock_t clock); 31 | 32 | void az_draw_particles(const az_space_state_t *state); 33 | 34 | /*===========================================================================*/ 35 | 36 | #endif // AZIMUTH_VIEW_PARTICLE_H_ 37 | -------------------------------------------------------------------------------- /src/azimuth/view/projectile.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_PROJECTILE_H_ 22 | #define AZIMUTH_VIEW_PROJECTILE_H_ 23 | 24 | #include "azimuth/state/projectile.h" 25 | #include "azimuth/state/space.h" 26 | #include "azimuth/util/clock.h" 27 | 28 | /*===========================================================================*/ 29 | 30 | void az_draw_projectile(const az_projectile_t *proj, az_clock_t clock); 31 | 32 | void az_draw_projectiles(const az_space_state_t *state); 33 | 34 | /*===========================================================================*/ 35 | 36 | #endif // AZIMUTH_VIEW_PROJECTILE_H_ 37 | -------------------------------------------------------------------------------- /data/rooms/room400.txt: -------------------------------------------------------------------------------- 1 | @R z6 p0 k9 b0 d1 g0 n10 w36 2 | c(9310.89,0.00,0.679629,0.000000) 3 | $s:msg0,mus7; 4 | !W3 d31 x7276.75 y6066.07 a0.693961 u0 5 | !W3 d23 x7222.46 y6135.39 a-2.497986 u0 6 | !W1 d22 x7114.23 y6130.60 a0.680586 u0 7 | !W1 d35 x7130.60 y5617.75 a1.746010 u0 8 | !W1 d22 x6963.03 y6029.51 a2.250425 u0 9 | !W1 d22 x6943.18 y5949.53 a2.250425 u0 10 | !W1 d23 x6896.14 y6007.75 a2.250425 u0 11 | !W1 d22 x6860.61 y5947.08 a2.250425 u0 12 | !W1 d22 x6923.32 y5869.47 a2.250425 u0 13 | !W1 d22 x6985.70 y5792.29 a2.250425 u0 14 | !W1 d22 x7048.31 y5714.79 a2.250425 u0 15 | !W1 d22 x7110.92 y5637.31 a2.250425 u0 16 | !W1 d22 x7173.46 y5559.91 a2.250425 u0 17 | !W1 d22 x7236.10 y5482.40 a2.250425 u0 18 | !W1 d22 x7255.44 y5562.90 a2.250425 u0 19 | !W1 d23 x7302.57 y5504.57 a2.250425 u0 20 | !W1 d22 x7336.72 y5564.85 a2.250425 u0 21 | !W1 d23 x7403.31 y5586.44 a2.250425 u0 22 | !W1 d23 x7371.88 y5625.33 a2.250425 u0 23 | !W1 d22 x7438.40 y5646.78 a2.250425 u0 24 | !W1 d23 x7504.36 y5669.15 a2.250425 u0 25 | !W1 d23 x7473.56 y5707.27 a2.250425 u0 26 | !W1 d22 x7540.24 y5729.39 a2.250425 u0 27 | !W1 d23 x7606.82 y5750.98 a2.250425 u0 28 | !W1 d23 x7180.79 y5644.82 a-2.497986 u0 29 | !W1 d22 x7559.93 y5809.01 a2.250425 u0 30 | !W1 d22 x7497.07 y5886.80 a2.250425 u0 31 | !W1 d22 x7434.22 y5964.58 a2.250425 u0 32 | !W1 d22 x7371.45 y6042.27 a2.250425 u0 33 | !W1 d22 x7309.17 y6119.34 a2.250425 u0 34 | !W1 d22 x7246.93 y6196.36 a2.250425 u0 35 | !W1 d23 x7200.33 y6254.04 a2.250425 u0 36 | !W1 d22 x7165.37 y6193.79 a2.250425 u0 37 | !W1 d22 x7477.32 y5806.80 a2.250425 u0 38 | !W1 d22 x7337.16 y5980.25 a2.250425 u0 39 | !W3 d31 x7148.86 y5722.32 a-1.888536 u0 40 | !D1 x7041.03 y6063.98 a-0.891661 r366 u0 41 | !N1/2 x7271.34 y5787.71 a2.249096 u0 42 | !N5/3 x7306.51 y5744.04 a2.250291 u0 43 | !N5/1 x7311.77 y5695.45 a2.250291 u0 44 | !N5/2 x7297.39 y5726.39 a-0.891347 u0 45 | !N5/1 x7338.89 y5661.87 a-0.890815 u0 46 | !N5/1 x7338.28 y5769.55 a-2.462164 u0 47 | !N5/2 x7366.25 y5781.83 a-2.462164 u0 48 | !N5/1 x7470.49 y5717.46 a2.250291 u0 49 | !N5/1 x7454.57 y5704.39 a2.250291 u0 50 | !N5/9 x7411.83 y5759.15 a-0.890815 u0 51 | -------------------------------------------------------------------------------- /data/rooms/room304.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k13 b0 d1 g0 n11 w34 2 | c(41660.03,0.00,1.404436,0.000000) 3 | $s:msg0,mus2; 4 | !W1 d46 x7060.15 y40962.45 a-0.162772 u0 5 | !W1 d52 x6630.66 y41344.85 a2.169931 u0 6 | !W1 d53 x6607.08 y41287.83 a0.426664 u0 7 | !W1 d51 x6688.32 y41278.62 a0.623022 u0 8 | !W1 d52 x6586.54 y41196.75 a2.169931 u0 9 | !W1 d53 x6696.09 y41361.49 a3.112647 u0 10 | !W1 d39 x7159.68 y40883.55 a-1.744162 u0 11 | !W1 d39 x7144.15 y40794.90 a-1.744162 u0 12 | !W1 d52 x7067.71 y40841.30 a-0.916395 u0 13 | !W1 d51 x7094.94 y40906.28 a-0.164340 u0 14 | !W1 d39 x7211.25 y41178.07 a-1.744162 u0 15 | !W1 d39 x6828.71 y41314.50 a2.977524 u0 16 | !W1 d53 x6797.72 y40904.02 a1.293642 u0 17 | !W1 d52 x6963.24 y40839.41 a1.293642 u0 18 | !W1 d52 x6738.69 y40879.13 a-1.681425 u0 19 | !W1 d52 x6638.89 y40900.80 a2.256784 u0 20 | !W1 d51 x6690.44 y40973.36 a-0.164340 u0 21 | !W1 d52 x6559.90 y40963.86 a0.698927 u0 22 | !W1 d52 x6848.39 y40861.95 a-0.343723 u0 23 | !W1 d53 x6918.33 y40885.58 a1.293642 u0 24 | !W1 d51 x6958.79 y40928.85 a-0.164340 u0 25 | !W1 d51 x6824.62 y40951.10 a-0.164340 u0 26 | !W1 d53 x6928.60 y40835.24 a-0.167516 u0 27 | !W1 d40 x6754.99 y41326.40 a-0.162783 u0 28 | !W1 d39 x6926.95 y41298.24 a2.977524 u0 29 | !W1 d39 x7024.62 y41282.07 a2.977524 u0 30 | !W1 d39 x7120.30 y41266.23 a2.977524 u0 31 | !W1 d39 x7196.09 y41253.68 a2.977524 u0 32 | !W1 d38 x7223.70 y41249.11 a-1.744162 u0 33 | !W1 d39 x7194.01 y41079.59 a-1.744162 u0 34 | !W1 d39 x7176.93 y40982.08 a-1.744162 u0 35 | !W1 d38 x7161.75 y40895.38 a-1.744162 u0 36 | !W1 d53 x7155.19 y40797.72 a2.968652 u0 37 | !W1 d53 x7188.43 y40808.28 a1.950474 u0 38 | !D1 x6600.29 y41079.97 a-0.159758 r117 u0 39 | !N5/9 x7112.90 y41156.78 a-0.169627 u0 40 | !N5/1 x7178.60 y41129.56 a2.970144 u0 41 | !N5/1 x7183.93 y41161.22 a2.970144 u0 42 | !N5/1 x7064.62 y41110.15 a-0.169250 u0 43 | !N1/2 x6954.00 y41128.93 a2.975232 u0 44 | !N5/1 x7023.99 y41117.09 a2.972397 u0 45 | !N5/2 x7098.48 y41112.31 a1.399731 u0 46 | !N5/1 x7126.02 y41224.85 a-1.742004 u0 47 | !N5/5 x7137.13 y41289.09 a-1.742004 u0 48 | !N5/5 x7233.73 y41152.60 a2.970144 u0 49 | !N5/5 x7227.87 y41121.03 a2.970144 u0 50 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_clam.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_CLAM_H_ 22 | #define AZIMUTH_VIEW_BADDIE_CLAM_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_clam( 30 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 31 | 32 | void az_draw_bad_grabber_plant( 33 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 34 | 35 | /*===========================================================================*/ 36 | 37 | #endif // AZIMUTH_VIEW_BADDIE_CLAM_H_ 38 | -------------------------------------------------------------------------------- /data/rooms/room439.txt: -------------------------------------------------------------------------------- 1 | @R z6 p2 k17 b4 d2 g0 n11 w29 2 | c(9656.24,487.72,1.967337,0.000000) 3 | !W1 d131 x-4207.16 y9363.84 a2.387220 u0 4 | !W1 d130 x-4205.50 y9246.13 a1.988840 u0 5 | !W1 d129 x-4149.51 y9119.65 a-0.364391 u0 6 | !W1 d128 x-4114.30 y9017.12 a-2.510021 u0 7 | !W1 d130 x-4127.77 y8893.81 a-0.355810 u0 8 | !W1 d129 x-4009.93 y8781.39 a0.662662 u0 9 | !W1 d128 x-3962.33 y8689.27 a-1.938776 u0 10 | !W1 d132 x-3682.58 y9542.58 a-1.986715 u0 11 | !W1 d131 x-3632.51 y9477.90 a1.814711 u0 12 | !W1 d133 x-3621.16 y9383.09 a3.071181 u0 13 | !W1 d132 x-3545.04 y9285.32 a2.812553 u0 14 | !W1 d128 x-3517.96 y9194.71 a2.722557 u0 15 | !W1 d130 x-3430.08 y9093.23 a1.375570 u0 16 | !W1 d129 x-3395.90 y8983.95 a-2.780068 u0 17 | !W1 d125 x-3908.69 y9594.36 a0.396645 u0 18 | !W1 d125 x-4093.10 y9517.12 a0.396645 u0 19 | !W1 d127 x-3848.28 y9643.46 a0.396645 u0 20 | !W1 d127 x-4170.66 y9508.43 a0.396645 u0 21 | !W1 d133 x-3739.88 y9624.42 a-0.304799 u0 22 | !W1 d132 x-4220.78 y9439.14 a-1.658820 u0 23 | !W1 d130 x-4301.18 y9377.98 a1.747408 u0 24 | !W1 d130 x-3532.48 y8747.34 a3.125370 u0 25 | !W1 d128 x-3430.42 y8789.02 a-1.692038 u0 26 | !W1 d130 x-3334.96 y8849.76 a1.222370 u0 27 | !W1 d129 x-3770.09 y8653.72 a0.047994 u0 28 | !W1 d130 x-3897.80 y8605.09 a-1.604678 u0 29 | !W1 d125 x-3663.31 y9004.62 a0.396541 u0 30 | !W1 d125 x-3918.88 y9041.40 a0.396541 u0 31 | !W1 d125 x-3841.81 y9231.01 a0.396541 u0 32 | !D1 x-3667.59 y8702.56 a1.967337 r445 u0 33 | !D1 x-3999.09 y9550.71 a-1.174256 r437 u0 34 | !N7/129 x-4169.55 y9466.79 a-1.187902 u0 35 | !N7/51 x-3555.43 y9049.79 a0.396541 u0 36 | !N7/51 x-4026.80 y8996.21 a0.396541 u0 37 | !N7/51 x-3733.94 y9276.18 a0.396541 u0 38 | !N7/132 x-3644.55 y9466.99 a2.433747 u0 39 | !N7/129 x-3405.21 y8837.52 a-1.186686 u0 40 | !N7/128 x-3823.05 y8667.94 a-1.186686 u0 41 | !N7/129 x-4178.29 y9352.47 a3.071181 u0 42 | !N7/128 x-4112.73 y9073.58 a3.071181 u0 43 | !N7/128 x-3515.78 y9151.04 a3.071181 u0 44 | !N7/129 x-3798.43 y9611.41 a-1.187902 u0 45 | !B89 x-3610.38 y9201.83 a-2.420402 u0 46 | !B46 x-3931.86 y9116.18 a0.396541 u0 47 | !B7 x-3701.14 y9038.29 a0.396541 u0 48 | !B8 x-3848.57 y9277.39 a0.396541 u0 49 | -------------------------------------------------------------------------------- /src/zfxr/view.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef ZFXR_VIEW_H_ 22 | #define ZFXR_VIEW_H_ 23 | 24 | #include 25 | 26 | #include "azimuth/util/key.h" 27 | #include "zfxr/state.h" 28 | 29 | /*===========================================================================*/ 30 | 31 | void az_zfxr_draw_screen(const az_zfxr_state_t *state); 32 | 33 | void az_zfxr_on_click(az_zfxr_state_t *state, int x, int y); 34 | 35 | void az_zfxr_on_keypress(az_zfxr_state_t *state, az_key_id_t key_id, 36 | bool shift); 37 | 38 | /*===========================================================================*/ 39 | 40 | #endif // ZFXR_VIEW_H_ 41 | -------------------------------------------------------------------------------- /data/rooms/room021.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b2 d3 g0 n6 w32 2 | c(46568.07,68.57,1.573227,0.000000) 3 | $s:test23,beqz/A,lock1,jump/B,A#test1,bnez/C,mus1,jump/D,C#mus15,D#test3,beqz/E,unlock1,B#nix2,nix3,E#test1,hnez,dark0.5,F#rand,dup,mul,muli4,addi0.75,waits,blink0,snd6,jump/F; 4 | !W1 d13 x70.69 y46349.67 a-2.329456 u0 5 | !W1 d0 x-406.31 y46432.42 a1.579333 u0 6 | !W1 d13 x-288.36 y46352.35 a2.434807 u0 7 | !W1 d6 x160.51 y46888.39 a0.003429 u0 8 | !W1 d51 x47.51 y46888.00 a0.003429 u0 9 | !W1 d51 x-88.58 y46887.53 a0.003429 u0 10 | !W1 d51 x-227.58 y46887.06 a0.003429 u0 11 | !W1 d51 x-364.54 y46886.59 a0.003429 u0 12 | !W1 d51 x-314.26 y46578.64 a0.003429 u0 13 | !W1 d163 x-354.48 y46845.13 a3.138713 u0 14 | !W1 d163 x108.71 y46844.23 a3.138713 u0 15 | !W1 d163 x10.71 y46844.00 a3.138713 u0 16 | !W1 d163 x-271.30 y46845.35 a3.138713 u0 17 | !W1 d32 x-193.16 y46352.01 a-1.568366 u0 18 | !W3 d7 x-159.93 y46495.07 a0.002431 u2 19 | !W1 d163 x182.50 y46721.85 a1.566917 u0 20 | !W1 d163 x182.55 y46522.11 a-1.574505 u0 21 | !W1 d163 x-409.14 y46831.69 a-1.564220 u0 22 | !W1 d163 x182.32 y46821.12 a-1.564220 u0 23 | !W1 d163 x-180.29 y46844.56 a3.138713 u0 24 | !W1 d163 x-83.29 y46843.79 a3.138713 u0 25 | !W1 d163 x-408.02 y46632.36 a1.579333 u0 26 | !W1 d163 x-407.16 y46532.42 a1.579333 u0 27 | !W1 d166 x-329.67 y46471.46 a0.002431 u0 28 | !W1 d165 x179.34 y46372.84 a0.002431 u0 29 | !W3 d7 x-68.15 y46495.39 a0.002431 u3 30 | !W1 d166 x103.92 y46472.51 a0.002431 u0 31 | !W1 d32 x-38.41 y46352.36 a-3.139162 u0 32 | !W1 d165 x-404.21 y46372.42 a0.008553 u0 33 | !W1 d14 x-436.83 y46311.63 a-2.822947 u0 34 | !W1 d12 x185.98 y46324.13 a3.061716 u0 35 | !W1 d5 x118.21 y46326.64 a0.409855 u0 36 | !D1 x-408.08 y46732.22 a0.000000 r18 u0 37 | !D3 x-115.66 y46352.96 a1.576883 r26 u1 38 | $o:set3; 39 | !D1 x179.81 y46621.84 a3.137784 r24 u0 40 | !N7/13 x-17.23 y46400.22 a0.292813 u0 41 | !N7/13 x-199.23 y46399.22 a-0.691443 u0 42 | !N7/20 x24.12 y46722.63 a0.003429 u0 43 | !N7/6 x114.13 y46722.94 a0.003429 u0 44 | !N7/5 x-236.75 y46387.92 a2.362756 u0 45 | !N7/11 x-14.74 y46378.48 a-0.524414 u0 46 | !B7 x17.87 y46535.03 a0.002431 u0 47 | !B7 x-293.64 y46616.56 a0.006304 u0 48 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_core.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_CORE_H_ 22 | #define AZIMUTH_VIEW_BADDIE_CORE_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_zenith_core(const az_baddie_t *baddie, az_clock_t clock); 30 | 31 | void az_draw_bad_central_network_node(const az_baddie_t *baddie, 32 | az_clock_t clock); 33 | 34 | /*===========================================================================*/ 35 | 36 | #endif // AZIMUTH_VIEW_BADDIE_CORE_H_ 37 | -------------------------------------------------------------------------------- /data/rooms/room032.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k3 b0 d1 g0 n1 w43 2 | c(37258.64,0.00,1.456080,0.007553) 3 | $s:msg17; 4 | !W4 d35 x4127.51 y37187.63 a-1.681236 u0 5 | !W4 d35 x4260.68 y37172.79 a-1.681236 u0 6 | !W4 d35 x4226.91 y36869.66 a-1.681236 u0 7 | !W4 d35 x4395.73 y37156.74 a-1.681236 u0 8 | !W4 d35 x4365.06 y36854.28 a-1.681236 u0 9 | !W4 d35 x4091.36 y36886.17 a-1.681236 u0 10 | !W1 d165 x4593.41 y37175.88 a-1.693643 u0 11 | !W1 d165 x4561.74 y36877.83 a3.018518 u0 12 | !W1 d6 x3791.61 y37127.07 a3.037606 u0 13 | !W4 d0 x3858.98 y37061.62 a-1.669272 u0 14 | !W4 d0 x3890.82 y37133.64 a3.038853 u0 15 | !W4 d0 x3875.97 y36985.37 a-0.104416 u0 16 | !W1 d6 x3778.54 y37013.81 a3.037606 u0 17 | !W1 d165 x3681.75 y37030.09 a3.037606 u0 18 | !W1 d165 x3692.21 y37128.54 a3.037606 u0 19 | !W1 d165 x3671.16 y36930.65 a3.037606 u0 20 | !W1 d165 x3702.57 y37226.74 a3.037606 u0 21 | !W1 d165 x3712.93 y37325.20 a3.037606 u0 22 | !W1 d165 x3661.03 y36831.92 a3.037606 u0 23 | !W1 d165 x3762.67 y36846.62 a3.037606 u0 24 | !W1 d165 x3862.21 y36836.98 a3.037606 u0 25 | !W1 d165 x3809.54 y37294.18 a3.037606 u0 26 | !W1 d165 x3907.98 y37283.65 a3.037606 u0 27 | !W1 d165 x3960.51 y36825.61 a-1.677932 u0 28 | !W1 d165 x4059.91 y36814.69 a-1.680632 u0 29 | !W1 d165 x4159.16 y36803.98 a-0.112586 u0 30 | !W1 d165 x4258.48 y36792.30 a-0.114988 u0 31 | !W1 d165 x4357.79 y36780.63 a-0.117661 u0 32 | !W1 d165 x4456.44 y36769.33 a-0.120199 u0 33 | !W1 d165 x4549.73 y36779.19 a-0.122655 u0 34 | !W1 d165 x4006.81 y37274.13 a-1.677881 u0 35 | !W1 d165 x4105.20 y37263.22 a-1.680522 u0 36 | !W1 d165 x4203.57 y37252.32 a-1.683161 u0 37 | !W1 d165 x4301.03 y37242.24 a-1.685775 u0 38 | !W1 d165 x4399.34 y37230.66 a-1.688415 u0 39 | !W1 d165 x4498.63 y37218.81 a-1.691056 u0 40 | !W1 d165 x4581.16 y37076.84 a-1.693709 u0 41 | !W4 d0 x4369.91 y36903.53 a-0.116062 u0 42 | !W4 d0 x4390.48 y37108.46 a-0.116062 u0 43 | !W4 d0 x4232.44 y36919.60 a-0.114141 u0 44 | !W4 d0 x4254.55 y37124.41 a-0.114105 u0 45 | !W4 d0 x4097.08 y36935.85 a-0.110472 u0 46 | !W4 d0 x4122.50 y37141.29 a-0.110543 u0 47 | !D1 x4555.30 y36978.59 a3.018032 r31 u0 48 | !N3/8 x3900.42 y37054.21 a-0.109996 u0 49 | $u:mus14,wait0.1,mus2; 50 | -------------------------------------------------------------------------------- /src/azimuth/util/warning.c: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #include "azimuth/util/warning.h" 21 | 22 | #include 23 | #include 24 | 25 | /*===========================================================================*/ 26 | 27 | void az_print_warning_(const char *funcname, const char *filename, 28 | int line, const char *format, ...) { 29 | va_list args; 30 | fprintf(stderr, "WARNING: function %s, file %s, line %d: ", 31 | funcname, filename, line); 32 | va_start(args, format); 33 | vfprintf(stderr, format, args); 34 | va_end(args); 35 | } 36 | 37 | /*===========================================================================*/ 38 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_wyrm.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_WYRM_H_ 22 | #define AZIMUTH_VIEW_BADDIE_WYRM_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_rockwyrm(const az_baddie_t *baddie); 30 | 31 | void az_draw_bad_wyrm_egg( 32 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 33 | 34 | void az_draw_bad_wyrmling(const az_baddie_t *baddie, float frozen); 35 | 36 | /*===========================================================================*/ 37 | 38 | #endif // AZIMUTH_VIEW_BADDIE_WYRM_H_ 39 | -------------------------------------------------------------------------------- /data/rooms/room010.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b0 d1 g0 n16 w28 2 | c(48797.68,0.00,1.516013,0.000000) 3 | $s:msg0,test1,beqz/A,mus15,halt,A#mus1,dark0.5,B#rand,dup,mul,muli4,addi0.75,waits,blink0,snd6,jump/B; 4 | !W1 d10 x2863.76 y48674.02 a-0.053743 u0 5 | !W1 d35 x2470.63 y48967.49 a-0.054353 u0 6 | !W1 d165 x2975.63 y48770.40 a1.492923 u0 7 | !W1 d165 x2377.59 y48803.46 a1.587999 u0 8 | !W1 d51 x2953.42 y48890.18 a-0.846874 u0 9 | !W1 d51 x2830.46 y48947.91 a-0.054353 u0 10 | !W1 d51 x2695.55 y48955.25 a-0.054353 u0 11 | !W1 d51 x2560.62 y48962.59 a-0.054353 u0 12 | !W1 d51 x2399.99 y48915.25 a0.736513 u0 13 | !W1 d164 x2890.53 y48900.32 a-0.793190 u0 14 | !W1 d164 x2473.04 y48923.01 a-0.077172 u0 15 | !W1 d165 x2562.15 y48495.83 a3.086791 u0 16 | !W1 d165 x2363.29 y48507.18 a1.524430 u0 17 | !W1 d163 x2582.35 y48917.16 a-0.005009 u0 18 | !W1 d163 x2682.20 y48911.66 a-0.054353 u0 19 | !W1 d163 x2781.05 y48906.21 a-0.083990 u0 20 | !W1 d165 x2462.35 y48501.30 a3.068506 u0 21 | !W1 d165 x2761.80 y48484.88 a3.086791 u0 22 | !W1 d165 x2861.59 y48479.40 a3.132324 u0 23 | !W1 d165 x2368.07 y48606.25 a1.541473 u0 24 | !W1 d165 x2372.85 y48705.14 a1.522567 u0 25 | !W1 d165 x2961.33 y48474.11 a1.522567 u0 26 | !W1 d165 x2967.11 y48573.12 a1.522567 u0 27 | !W1 d165 x2970.88 y48672.07 a1.522567 u0 28 | !W1 d163 x2390.45 y48850.00 a0.730553 u0 29 | !W1 d163 x2316.45 y48783.70 a0.730553 u0 30 | !W1 d163 x2964.75 y48818.59 a2.299302 u0 31 | !W1 d163 x3031.00 y48744.34 a2.299302 u0 32 | !D1 x2663.28 y48513.09 a1.515953 r11 u0 33 | !N7/50 x2532.15 y48652.18 a-0.053743 u0 34 | !N5/1 x2573.89 y48864.44 a1.518893 u0 35 | !N5/1 x2599.29 y48862.72 a1.518893 u0 36 | !N5/1 x2637.57 y48804.60 a3.088032 u0 37 | !N1/2 x2673.99 y48745.91 a-1.629368 u0 38 | !N5/3 x2677.26 y48802.13 a-1.629368 u0 39 | !N5/2 x2695.75 y48808.81 a1.516158 u0 40 | !N5/1 x2705.67 y48841.19 a-1.626352 u0 41 | !N5/1 x2706.52 y48856.73 a1.514670 u0 42 | !N5/2 x2604.78 y48814.34 a-0.053147 u0 43 | !N5/3 x2598.08 y48833.05 a3.089342 u0 44 | !N5/2 x2580.49 y48842.13 a-0.053147 u0 45 | !N7/50 x2457.68 y48656.18 a-0.053743 u0 46 | !N5/1 x2711.94 y48953.28 a1.514670 u0 47 | !N5/1 x2604.30 y48959.15 a1.518893 u0 48 | !N5/1 x2578.92 y48961.23 a1.518893 u0 49 | -------------------------------------------------------------------------------- /src/azimuth/control/paused.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_CONTROL_PAUSED_H_ 22 | #define AZIMUTH_CONTROL_PAUSED_H_ 23 | 24 | #include "azimuth/state/planet.h" 25 | #include "azimuth/state/ship.h" 26 | #include "azimuth/util/prefs.h" 27 | 28 | /*===========================================================================*/ 29 | 30 | typedef enum { 31 | AZ_PA_RESUME, 32 | AZ_PA_EXIT_TO_TITLE 33 | } az_paused_action_t; 34 | 35 | az_paused_action_t az_paused_event_loop( 36 | const az_planet_t *planet, az_preferences_t *prefs, az_ship_t *ship); 37 | 38 | /*===========================================================================*/ 39 | 40 | #endif // AZIMUTH_CONTROL_PAUSED_H_ 41 | -------------------------------------------------------------------------------- /src/azimuth/view/background.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BACKGROUND_H_ 22 | #define AZIMUTH_VIEW_BACKGROUND_H_ 23 | 24 | #include "azimuth/state/background.h" 25 | #include "azimuth/state/camera.h" 26 | #include "azimuth/util/clock.h" 27 | #include "azimuth/util/vector.h" 28 | 29 | /*===========================================================================*/ 30 | 31 | void az_draw_background_pattern( 32 | az_background_pattern_t pattern, const az_camera_bounds_t *camera_bounds, 33 | az_vector_t camera_center, az_clock_t clock); 34 | 35 | /*===========================================================================*/ 36 | 37 | #endif // AZIMUTH_VIEW_BACKGROUND_H_ 38 | -------------------------------------------------------------------------------- /src/azimuth/tick/baddie_nocturne.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_BADDIE_NOCTURNE_H_ 22 | #define AZIMUTH_TICK_BADDIE_NOCTURNE_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/state/space.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_tick_bad_nocturne(az_space_state_t *state, az_baddie_t *baddie, 30 | double time); 31 | void az_nocturne_wiggle_legs(az_baddie_t *baddie, double time, 32 | double total_time); 33 | 34 | /*===========================================================================*/ 35 | 36 | #endif // AZIMUTH_TICK_BADDIE_NOCTURNE_H_ 37 | -------------------------------------------------------------------------------- /data/rooms/room017.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b0 d2 g0 n22 w24 2 | c(46802.73,0.00,1.484390,0.000000) 3 | $s:msg1; 4 | !W1 d6 x4169.98 y46830.63 a-0.088986 u0 5 | !W1 d163 x4230.59 y46397.53 a3.052769 u0 6 | !W1 d163 x4268.93 y46821.99 a3.052769 u0 7 | !W1 d33 x4313.35 y46453.19 a1.479205 u0 8 | !W1 d33 x4339.41 y46745.03 a1.479205 u0 9 | !W4 d6 x4327.47 y46601.57 a1.483963 u0 10 | !W1 d32 x4320.99 y46525.98 a1.479205 u0 11 | !W1 d32 x4333.37 y46677.48 a1.479205 u0 12 | !W1 d32 x4345.55 y46813.76 a1.479205 u0 13 | !W1 d32 x4307.83 y46391.44 a1.479205 u0 14 | !W1 d163 x4132.30 y46412.28 a2.917253 u0 15 | !W1 d163 x3834.88 y46431.98 a3.052769 u0 16 | !W1 d165 x3720.95 y46565.30 a3.052769 u0 17 | !W1 d165 x3737.68 y46463.95 a3.052769 u0 18 | !W1 d163 x4071.31 y46839.50 a3.052769 u0 19 | !W1 d163 x3973.00 y46847.59 a3.052769 u0 20 | !W1 d163 x3873.36 y46856.16 a3.052769 u0 21 | !W1 d165 x3736.93 y46763.50 a3.052769 u0 22 | !W1 d165 x3773.30 y46859.74 a3.052769 u0 23 | !W1 d163 x4033.49 y46418.82 a-3.082219 u0 24 | !W1 d163 x3934.51 y46423.37 a3.052769 u0 25 | !W1 d5 x4087.99 y46355.87 a-0.325426 u0 26 | !W1 d11 x4034.86 y46373.03 a-0.219240 u0 27 | !W1 d11 x4136.95 y46364.54 a-1.670376 u0 28 | !D1 x3748.07 y46662.79 a-0.080271 r16 u0 29 | !D7 x4385.31 y46595.96 a3.051922 r408 u0 30 | !N5/5 x4081.09 y46582.73 a1.483843 u0 31 | !N5/5 x4142.06 y46746.07 a1.483053 u0 32 | !N5/5 x4162.20 y46765.61 a3.053801 u0 33 | !N5/6 x4171.22 y46673.40 a3.052459 u0 34 | !N5/1 x4163.72 y46623.06 a1.480673 u0 35 | !N5/1 x4116.27 y46557.89 a-0.087750 u0 36 | !N5/5 x4119.18 y46725.30 a3.053801 u0 37 | !N1/1 x4088.28 y46626.78 a-0.085936 u0 38 | !N5/1 x4090.47 y46686.38 a1.485349 u0 39 | !N5/2 x4101.33 y46718.57 a-1.658205 u0 40 | !N5/2 x4132.83 y46732.11 a1.482658 u0 41 | !N5/2 x4087.91 y46568.36 a-0.087750 u0 42 | !N5/2 x4150.40 y46562.84 a1.481437 u0 43 | !N5/1 x4182.90 y46723.11 a-1.660250 u0 44 | !N5/3 x4186.49 y46763.45 a3.052252 u0 45 | !N5/3 x4143.94 y46767.24 a-0.087887 u0 46 | !N5/1 x4147.55 y46807.83 a-1.658407 u0 47 | !N5/1 x4190.10 y46804.04 a-1.658407 u0 48 | !N5/1 x4151.36 y46850.66 a1.482254 u0 49 | !N5/1 x4193.73 y46844.88 a1.481616 u0 50 | !N5/1 x4161.14 y46595.44 a-1.660684 u0 51 | !N9/408 x4403.74 y46595.22 a-0.086406 u0 52 | -------------------------------------------------------------------------------- /src/azimuth/view/hud.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_HUD_H_ 22 | #define AZIMUTH_VIEW_HUD_H_ 23 | 24 | #include 25 | 26 | #include "azimuth/state/planet.h" 27 | #include "azimuth/state/room.h" 28 | #include "azimuth/state/space.h" 29 | 30 | /*===========================================================================*/ 31 | 32 | void az_draw_dialogue(const az_space_state_t *state); 33 | 34 | void az_draw_monologue(const az_space_state_t *state); 35 | 36 | void az_draw_hud(az_space_state_t *state); 37 | 38 | void az_draw_skip_message(const az_space_state_t *state); 39 | 40 | /*===========================================================================*/ 41 | 42 | #endif // AZIMUTH_VIEW_HUD_H_ 43 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_night.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_NIGHT_H_ 22 | #define AZIMUTH_VIEW_BADDIE_NIGHT_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_nightbug( 30 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 31 | 32 | void az_draw_bad_nightshade( 33 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 34 | 35 | void az_draw_bad_nocturne(const az_baddie_t *baddie, az_clock_t clock); 36 | 37 | /*===========================================================================*/ 38 | 39 | #endif // AZIMUTH_VIEW_BADDIE_NIGHT_H_ 40 | -------------------------------------------------------------------------------- /src/azimuth/util/clock.c: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #include "azimuth/util/clock.h" 21 | 22 | #include 23 | 24 | /*===========================================================================*/ 25 | 26 | int az_clock_mod(int modulus, int slowdown, az_clock_t clock) { 27 | assert(modulus >= 1); 28 | assert(slowdown >= 1); 29 | return (clock % (modulus * slowdown)) / slowdown; 30 | } 31 | 32 | int az_clock_zigzag(int modulus, int slowdown, az_clock_t clock) { 33 | assert(modulus >= 2); 34 | assert(slowdown >= 1); 35 | const int m = modulus - 1; 36 | const int d = az_clock_mod(2 * m, slowdown, clock); 37 | return (d <= m ? d : 2 * m - d); 38 | } 39 | 40 | /*===========================================================================*/ 41 | -------------------------------------------------------------------------------- /src/azimuth/tick/baddie_core.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_BADDIE_CORE_H_ 22 | #define AZIMUTH_TICK_BADDIE_CORE_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/state/space.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_tick_bad_zenith_core( 30 | az_space_state_t *state, az_baddie_t *baddie, double time); 31 | void az_zenith_core_adjust_to_closed_configuration( 32 | az_baddie_t *baddie, double time); 33 | void az_zenith_core_adjust_to_beam_configuration( 34 | az_baddie_t *baddie, double time); 35 | 36 | /*===========================================================================*/ 37 | 38 | #endif // AZIMUTH_TICK_BADDIE_CORE_H_ 39 | -------------------------------------------------------------------------------- /data/rooms/room042.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k3 b0 d1 g0 n24 w24 2 | c(40049.89,0.00,1.529961,0.000000) 3 | !W1 d12 x1930.05 y40106.84 a1.645456 u0 4 | !W1 d13 x1890.38 y40229.68 a2.274881 u0 5 | !W1 d33 x1808.85 y40189.17 a2.310819 u0 6 | !W1 d33 x1402.98 y40244.55 a3.106326 u0 7 | !W1 d33 x1326.23 y40203.61 a1.535757 u0 8 | !W1 d14 x1922.76 y39858.69 a1.506727 u0 9 | !W1 d21 x1477.40 y39789.37 a-0.044039 u0 10 | !W1 d39 x1469.36 y39906.17 a-2.392518 u0 11 | !W1 d39 x1572.31 y39902.96 a2.317136 u0 12 | !W1 d40 x1523.44 y39956.00 a-2.396605 u0 13 | !W1 d40 x1430.29 y39868.73 a3.107190 u0 14 | !W1 d1 x1651.72 y39782.16 a-0.044039 u0 15 | !W1 d40 x1609.14 y39861.43 a-1.608974 u0 16 | !W1 d41 x1806.25 y39784.64 a0.215423 u0 17 | !W1 d5 x1937.85 y39794.03 a0.803316 u0 18 | !W1 d41 x1266.51 y39860.55 a1.798025 u0 19 | !W1 d13 x1278.60 y40061.21 a-1.982708 u0 20 | !W1 d32 x1323.87 y40144.67 a-0.037173 u0 21 | !W1 d32 x1327.96 y40246.59 a-0.037173 u0 22 | !W1 d33 x1499.56 y40241.01 a3.106326 u0 23 | !W1 d33 x1598.84 y40237.02 a3.101878 u0 24 | !W1 d33 x1698.11 y40232.96 a-0.042182 u0 25 | !W1 d34 x1770.53 y40229.92 a1.526814 u0 26 | !W1 d32 x1859.43 y40134.83 a2.309898 u0 27 | !D1 x1925.76 y40009.81 a3.094793 r41 u0 28 | !N5/1 x1331.05 y39982.47 a3.107270 u0 29 | !N5/1 x1376.27 y39980.85 a-0.034580 u0 30 | !N5/1 x1418.37 y40020.41 a-1.606382 u0 31 | !N5/5 x1660.71 y40141.13 a3.100253 u0 32 | !N5/1 x1620.43 y40142.43 a-0.041734 u0 33 | !N5/1 x1663.93 y40211.41 a1.529150 u0 34 | !N3/13 x1523.58 y39984.48 a-0.040005 u0 35 | $u:mus14,wait0.1,mus2; 36 | !N4/0 x1859.36 y40133.56 a2.309898 u0 37 | !N5/9 x1467.20 y40162.65 a3.101643 u0 38 | !N5/9 x1606.97 y40157.00 a3.101643 u0 39 | !N5/1 x1537.48 y40176.31 a3.101643 u0 40 | !N5/1 x1538.21 y40176.43 a-0.038114 u0 41 | !N5/1 x1536.32 y40145.72 a3.101643 u0 42 | !N5/1 x1537.38 y40145.68 a-0.038430 u0 43 | !N5/2 x1654.76 y40180.77 a1.528958 u0 44 | !N5/2 x1678.71 y40148.54 a1.528958 u0 45 | !N5/1 x1688.16 y40180.70 a-1.612784 u0 46 | !N5/1 x1689.46 y40212.49 a1.527972 u0 47 | !N5/1 x1396.98 y40150.99 a-0.037831 u0 48 | !N5/1 x1362.57 y40152.19 a3.107149 u0 49 | !N5/1 x1447.51 y40093.66 a1.534314 u0 50 | !N5/2 x1438.25 y40062.50 a1.534314 u0 51 | !N5/2 x1427.45 y40046.97 a-1.606258 u0 52 | !N5/2 x1409.43 y39987.82 a1.535678 u0 53 | -------------------------------------------------------------------------------- /src/azimuth/control/space.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_CONTROL_SPACE_H_ 22 | #define AZIMUTH_CONTROL_SPACE_H_ 23 | 24 | #include "azimuth/state/planet.h" 25 | #include "azimuth/state/save.h" 26 | #include "azimuth/util/prefs.h" 27 | 28 | /*===========================================================================*/ 29 | 30 | typedef enum { 31 | AZ_SA_EXIT_TO_TITLE, 32 | AZ_SA_GAME_OVER, 33 | AZ_SA_VICTORY 34 | } az_space_action_t; 35 | 36 | az_space_action_t az_space_event_loop( 37 | const az_planet_t *planet, az_saved_games_t *saved_games, 38 | az_preferences_t *prefs, int saved_game_index); 39 | 40 | /*===========================================================================*/ 41 | 42 | #endif // AZIMUTH_CONTROL_SPACE_H_ 43 | -------------------------------------------------------------------------------- /src/azimuth/state/speck.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_STATE_SPECK_H_ 22 | #define AZIMUTH_STATE_SPECK_H_ 23 | 24 | #include "azimuth/util/color.h" 25 | #include "azimuth/util/vector.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | typedef enum { 30 | AZ_SPECK_NOTHING = 0, 31 | AZ_SPECK_NORMAL 32 | } az_speck_kind_t; 33 | 34 | typedef struct { 35 | az_speck_kind_t kind; // if AZ_SPECK_NOTHING, this speck is not present 36 | az_color_t color; 37 | az_vector_t position; 38 | az_vector_t velocity; 39 | double age, lifetime; // seconds 40 | } az_speck_t; 41 | 42 | /*===========================================================================*/ 43 | 44 | #endif // AZIMUTH_STATE_SPECK_H_ 45 | -------------------------------------------------------------------------------- /src/test/string.c: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #include 21 | 22 | #include "azimuth/util/string.h" 23 | #include "azimuth/util/vector.h" 24 | #include "test/test.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void test_strdup(void) { 29 | EXPECT_TRUE(az_strdup(NULL) == NULL); 30 | 31 | const char *str = "Hello, world!"; 32 | char *copy = az_strdup(str); 33 | EXPECT_STRING_EQ(str, copy); 34 | free(copy); 35 | } 36 | 37 | void test_strprintf(void) { 38 | char *str = az_strprintf("Hello, %s number %.2f!", "purple world", AZ_PI); 39 | EXPECT_STRING_EQ("Hello, purple world number 3.14!", str); 40 | free(str); 41 | } 42 | 43 | /*===========================================================================*/ 44 | -------------------------------------------------------------------------------- /src/azimuth/tick/door.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_DOOR_H_ 22 | #define AZIMUTH_TICK_DOOR_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | // If the given kind of damage is capable of opening the given door, open the 29 | // door, running the door's script if necessary and also playing a sound 30 | // effect. Otherwise, do nothing. 31 | void az_try_open_door(az_space_state_t *state, az_door_t *door, 32 | az_damage_flags_t damage_kind); 33 | 34 | void az_tick_doors(az_space_state_t *state, double time); 35 | 36 | /*===========================================================================*/ 37 | 38 | #endif // AZIMUTH_TICK_DOOR_H_ 39 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_vehicle.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_VEHICLE_H_ 22 | #define AZIMUTH_VIEW_BADDIE_VEHICLE_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_copter( 30 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 31 | 32 | void az_draw_bad_small_truck( 33 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 34 | 35 | void az_draw_bad_small_auv( 36 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 37 | 38 | /*===========================================================================*/ 39 | 40 | #endif // AZIMUTH_VIEW_BADDIE_VEHICLE_H_ 41 | -------------------------------------------------------------------------------- /data/rooms/room186.txt: -------------------------------------------------------------------------------- 1 | @R z3 p0 k18 b0 d1 g0 n14 w33 2 | c(40267.51,0.00,1.756391,0.000000) 3 | $s:msg0,mus4; 4 | !W1 d159 x-7154.65 y39382.01 a0.357615 u0 5 | !W1 d39 x-7700.75 y39739.66 a-2.960738 u0 6 | !W1 d39 x-7744.47 y39669.38 a1.762250 u0 7 | !W1 d39 x-7269.30 y39819.98 a-2.960738 u0 8 | !W1 d39 x-7168.19 y39643.50 a1.749507 u0 9 | !W1 d45 x-7613.08 y39323.30 a0.189451 u0 10 | !W1 d45 x-7425.98 y39363.28 a0.237551 u0 11 | !W1 d45 x-7262.99 y39402.12 a0.296026 u0 12 | !W1 d39 x-7611.88 y39359.46 a-2.950574 u0 13 | !W1 d39 x-7692.11 y39388.17 a1.762562 u0 14 | !W1 d38 x-7703.46 y39448.20 a0.185065 u0 15 | !W1 d38 x-7683.86 y39345.92 a0.185065 u0 16 | !W1 d39 x-7518.18 y39377.74 a-2.950574 u0 17 | !W1 d39 x-7423.16 y39395.85 a-2.950574 u0 18 | !W1 d39 x-7329.76 y39413.69 a-2.950574 u0 19 | !W1 d39 x-7184.65 y39533.56 a-2.174695 u0 20 | !W1 d40 x-7155.40 y39573.51 a0.179427 u0 21 | !W1 d42 x-7138.69 y39464.45 a0.579679 u0 22 | !W1 d39 x-7184.36 y39734.06 a1.749507 u0 23 | !W1 d39 x-7197.24 y39805.03 a1.749507 u0 24 | !W1 d38 x-7202.10 y39831.81 a1.749507 u0 25 | !W1 d47 x-7331.65 y39469.55 a0.189436 u0 26 | !W1 d47 x-7403.18 y39455.58 a0.189436 u0 27 | !W1 d47 x-7367.28 y39523.42 a0.184288 u0 28 | !W1 d38 x-7731.48 y39600.89 a0.192938 u0 29 | !W1 d38 x-7755.48 y39729.91 a0.192938 u0 30 | !W1 d39 x-7357.67 y39803.51 a-2.960738 u0 31 | !W1 d39 x-7453.94 y39785.58 a-2.960738 u0 32 | !W1 d39 x-7551.57 y39767.15 a-2.960738 u0 33 | !W1 d39 x-7648.82 y39748.55 a-2.960738 u0 34 | !W1 d38 x-7418.82 y39791.03 a0.184328 u0 35 | !W1 d39 x-7228.30 y39469.57 a-2.174695 u0 36 | !W1 d40 x-7258.24 y39426.87 a-2.959744 u0 37 | !D1 x-7719.44 y39523.60 a0.192076 r187 u0 38 | !N5/5 x-7206.83 y39688.63 a-2.960888 u0 39 | !N5/5 x-7198.18 y39637.38 a-2.960888 u0 40 | !N1/2 x-7349.17 y39662.49 a-2.957338 u0 41 | !N5/3 x-7293.99 y39672.77 a-2.954854 u0 42 | !N5/1 x-7301.46 y39713.22 a-1.390092 u0 43 | !N5/1 x-7310.32 y39761.67 a1.752619 u0 44 | !N5/5 x-7324.59 y39839.85 a-1.390092 u0 45 | !N5/2 x-7282.77 y39656.55 a0.181449 u0 46 | !N5/1 x-7248.87 y39654.63 a-2.960888 u0 47 | !N5/3 x-7226.74 y39658.66 a-2.954854 u0 48 | !N5/2 x-7222.12 y39677.83 a-1.390556 u0 49 | !N5/2 x-7215.68 y39642.40 a0.180048 u0 50 | !N5/1 x-7140.38 y39700.78 a0.177830 u0 51 | !N5/1 x-7131.12 y39649.62 a0.178004 u0 52 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_swooper.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_SWOOPER_H_ 22 | #define AZIMUTH_VIEW_BADDIE_SWOOPER_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_cave_swooper( 30 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 31 | 32 | void az_draw_bad_echo_swooper( 33 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 34 | 35 | void az_draw_bad_demon_swooper( 36 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 37 | 38 | /*===========================================================================*/ 39 | 40 | #endif // AZIMUTH_VIEW_BADDIE_SWOOPER_H_ 41 | -------------------------------------------------------------------------------- /data/rooms/room065.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k1 b2 d2 g0 n19 w26 2 | c(43436.21,0.00,1.419120,0.014375) 3 | !W1 d0 x6273.11 y43147.57 a-0.144331 u0 4 | !W1 d2 x6164.27 y43163.29 a-0.144331 u0 5 | !W1 d2 x6067.01 y43091.62 a3.001887 u0 6 | !W1 d2 x6044.00 y42936.49 a-0.925759 u0 7 | !W1 d0 x6225.64 y42825.04 a-0.144331 u0 8 | !W1 d2 x6116.34 y42840.94 a2.214758 u0 9 | !W1 d2 x6382.48 y43132.02 a-0.925759 u0 10 | !W1 d2 x6334.22 y42809.61 a3.001887 u0 11 | !W1 d2 x6454.44 y43036.25 a2.214758 u0 12 | !W1 d2 x6431.61 y42881.55 a-0.144331 u0 13 | !W1 d0 x6539.82 y42865.92 a-0.144331 u0 14 | !W1 d0 x6563.31 y43021.16 a-0.151332 u0 15 | !W1 d0 x5958.62 y43106.07 a-0.130649 u0 16 | !W1 d0 x5859.54 y43119.61 a-0.130649 u0 17 | !W1 d0 x5760.46 y43133.15 a-0.130649 u0 18 | !W1 d1 x5664.22 y43167.49 a-0.130649 u0 19 | !W1 d0 x5934.53 y42951.91 a-0.130649 u0 20 | !W1 d0 x5835.45 y42965.45 a-0.130649 u0 21 | !W1 d0 x5736.23 y42978.00 a-0.130649 u0 22 | !W1 d1 x5635.16 y42969.60 a-0.130649 u0 23 | !W1 d0 x6661.71 y43006.03 a-0.153600 u0 24 | !W1 d0 x6760.52 y42990.62 a-0.153600 u0 25 | !W1 d0 x6638.51 y42850.75 a-0.153600 u0 26 | !W1 d0 x6737.31 y42835.34 a-0.153600 u0 27 | !W1 d1 x6832.88 y42799.19 a-0.153600 u0 28 | !W1 d1 x6862.56 y42995.96 a-0.153600 u0 29 | !D1 x6851.93 y42896.70 a2.988775 r126 u0 30 | !D1 x5655.64 y43067.74 a-0.130649 r92 u0 31 | !N7/41 x6228.63 y43298.52 a-0.143330 u0 32 | !N7/41 x6182.46 y42689.85 a2.886577 u0 33 | !N7/13 x5909.83 y42792.08 a-1.228430 u0 34 | !N3/56 x6250.23 y42983.16 a-0.144331 u0 35 | $u:has58,beqz/A,snd5,halt,A#mus14,wait0.1,mus2; 36 | !N7/10 x6238.76 y42905.00 a-1.715124 u0 37 | !N7/13 x6033.74 y42774.35 a2.822849 u0 38 | !N7/41 x6418.28 y42689.68 a-0.919599 u0 39 | !N7/13 x5760.15 y42787.53 a-0.119170 u0 40 | !N7/13 x5605.01 y42798.09 a0.973867 u0 41 | !N7/41 x6569.25 y42606.12 a1.348219 u0 42 | !N7/13 x6749.17 y42644.78 a3.048809 u0 43 | !N7/5 x6862.40 y42664.49 a0.630454 u0 44 | !N7/13 x5689.15 y43319.58 a2.952873 u0 45 | !N7/13 x5843.33 y43295.61 a-0.236088 u0 46 | !N7/41 x6029.51 y43308.44 a3.026972 u0 47 | !N7/13 x6417.73 y43246.59 a2.285255 u0 48 | !N7/41 x6589.49 y43250.15 a1.417766 u0 49 | !N7/13 x6745.76 y43197.62 a-0.025982 u0 50 | !N7/13 x6898.24 y43168.59 a2.198169 u0 51 | !B23 x6051.14 y42970.97 a1.432301 u0 52 | !B23 x6446.90 y43001.90 a-1.719225 u0 53 | -------------------------------------------------------------------------------- /src/azimuth/tick/baddie_clam.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_BADDIE_CLAM_H_ 22 | #define AZIMUTH_TICK_BADDIE_CLAM_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/state/space.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_tick_bad_clam( 30 | az_space_state_t *state, az_baddie_t *baddie, double time); 31 | 32 | void az_tick_bad_grabber_plant( 33 | az_space_state_t *state, az_baddie_t *baddie, double time); 34 | void az_on_grabber_plant_damaged( 35 | az_space_state_t *state, az_baddie_t *baddie, double amount, 36 | az_damage_flags_t damage_kind); 37 | 38 | /*===========================================================================*/ 39 | 40 | #endif // AZIMUTH_TICK_BADDIE_CLAM_H_ 41 | -------------------------------------------------------------------------------- /data/rooms/room463.txt: -------------------------------------------------------------------------------- 1 | @R z6 p0 k16 b0 d1 g0 n7 w40 2 | c(10865.81,0.00,2.310091,0.000000) 3 | !W1 d20 x-7366.25 y7857.68 a-0.831502 u0 4 | !W1 d151 x-7155.23 y8315.54 a0.739295 u0 5 | !W1 d151 x-7020.42 y8168.51 a0.739295 u0 6 | !W1 d149 x-7073.27 y8162.39 a-1.616900 u0 7 | !W1 d149 x-7166.64 y8264.99 a1.524693 u0 8 | !W1 d150 x-7077.63 y8062.67 a-1.616900 u0 9 | !W1 d150 x-6978.08 y8058.08 a-1.616900 u0 10 | !W1 d149 x-6973.79 y8157.14 a3.095489 u0 11 | !W1 d150 x-7082.22 y7963.13 a1.524693 u0 12 | !W1 d151 x-6982.69 y7958.29 a-0.046103 u0 13 | !W1 d150 x-6878.32 y8053.69 a1.524693 u0 14 | !W1 d150 x-7086.82 y7863.51 a1.524693 u0 15 | !W1 d151 x-7186.38 y7868.45 a-0.046103 u0 16 | !W1 d150 x-7190.69 y7768.90 a1.524693 u0 17 | !W1 d150 x-7290.25 y7773.84 a-1.616900 u0 18 | !W1 d150 x-7294.90 y7673.95 a1.524693 u0 19 | !W1 d151 x-7394.69 y7678.42 a-0.046103 u0 20 | !W1 d150 x-7494.42 y7683.03 a-0.046103 u0 21 | !W1 d150 x-7489.18 y7782.34 a-0.046103 u0 22 | !W1 d150 x-7588.96 y7786.84 a-0.046103 u0 23 | !W1 d150 x-7583.71 y7886.16 a3.095489 u0 24 | !W1 d150 x-7398.92 y7578.63 a1.524693 u0 25 | !W1 d150 x-7683.30 y7890.88 a-0.046103 u0 26 | !W1 d150 x-7678.06 y7990.20 a3.095489 u0 27 | !W1 d149 x-7578.36 y7985.30 a1.524693 u0 28 | !W1 d151 x-7574.13 y8085.16 a-0.046103 u0 29 | !W1 d149 x-7474.43 y8080.26 a1.524693 u0 30 | !W1 d150 x-7673.66 y8089.99 a-1.616900 u0 31 | !W1 d150 x-7470.29 y8179.95 a3.095489 u0 32 | !W1 d149 x-7370.60 y8175.05 a1.524693 u0 33 | !W1 d150 x-7569.83 y8184.79 a-1.616900 u0 34 | !W1 d150 x-7366.08 y8274.83 a3.095489 u0 35 | !W1 d150 x-7266.38 y8269.93 a1.524693 u0 36 | !W1 d150 x-7465.62 y8279.67 a-1.616900 u0 37 | !W1 d151 x-7262.24 y8369.62 a-0.046103 u0 38 | !W1 d150 x-7162.55 y8364.72 a1.524693 u0 39 | !W1 d150 x-7361.78 y8374.46 a-1.616900 u0 40 | !W1 d149 x-7390.03 y7777.96 a-1.616900 u0 41 | !W1 d149 x-7285.85 y7873.41 a-1.616900 u0 42 | !W1 d149 x-7181.58 y7968.30 a-1.616900 u0 43 | !D1 x-7104.01 y8227.21 a-2.402298 r438 u0 44 | !N3/6 x-7410.63 y7906.92 a0.739295 u0 45 | $u:mus14,wait0.1,mus7; 46 | !N7/151 x-7422.04 y8156.35 a-0.046103 u0 47 | !N7/151 x-7427.54 y7730.47 a-0.046103 u0 48 | !N7/151 x-7113.75 y8011.17 a-0.046103 u0 49 | !N7/151 x-7628.99 y8120.60 a-0.046103 u0 50 | !N7/151 x-7152.03 y7812.49 a-0.046103 u0 51 | !N7/151 x-7300.57 y8419.93 a-0.046103 u0 52 | -------------------------------------------------------------------------------- /src/azimuth/tick/space.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_SPACE_H_ 22 | #define AZIMUTH_TICK_SPACE_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | // Call this just after entering a room. The state should already have been 29 | // filled with the room contents and the ship should be in position. This 30 | // takes care of recording the room on the minimap, adjusting the camera, 31 | // setting the music, and running the room script (if any). 32 | void az_after_entering_room(az_space_state_t *state); 33 | 34 | void az_tick_space_state(az_space_state_t *state, double time); 35 | 36 | /*===========================================================================*/ 37 | 38 | #endif // AZIMUTH_TICK_SPACE_H_ 39 | -------------------------------------------------------------------------------- /src/azimuth/tick/speck.c: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #include "azimuth/tick/speck.h" 21 | 22 | #include "azimuth/state/space.h" 23 | #include "azimuth/state/speck.h" 24 | #include "azimuth/util/misc.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_tick_speck(az_speck_t *speck, double time) { 29 | if (speck->kind == AZ_SPECK_NOTHING) return; 30 | speck->age += time; 31 | if (speck->age > speck->lifetime) speck->kind = AZ_SPECK_NOTHING; 32 | else az_vpluseq(&speck->position, az_vmul(speck->velocity, time)); 33 | } 34 | 35 | void az_tick_specks(az_space_state_t *state, double time) { 36 | AZ_ARRAY_LOOP(speck, state->specks) { 37 | az_tick_speck(speck, time); 38 | } 39 | } 40 | 41 | /*===========================================================================*/ 42 | -------------------------------------------------------------------------------- /data/rooms/room019.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b2 d2 g0 n11 w30 2 | c(48793.34,0.00,1.616286,0.000000) 3 | $s:test23,beqz/A,nix4,halt,A#nix10,nix11,test2,bnez/B,lock2,B#has27,hnez,lock1,dark0.25; 4 | !W1 d50 x-2309.22 y48822.57 a-0.394337 u0 5 | !W1 d9 x-2272.80 y48630.28 a-0.195580 u0 6 | !W1 d9 x-2366.11 y48635.04 a0.049015 u0 7 | !W1 d9 x-2456.07 y48631.96 a0.049015 u0 8 | !W1 d9 x-2463.82 y48824.81 a0.049015 u0 9 | !W1 d9 x-2373.03 y48831.34 a-0.019159 u0 10 | !W1 d33 x-2222.54 y48596.52 a1.617769 u0 11 | !W1 d33 x-2317.26 y48588.21 a1.617769 u0 12 | !W1 d33 x-2408.99 y48580.04 a1.617769 u0 13 | !W1 d33 x-2234.38 y48879.28 a1.377747 u0 14 | !W1 d33 x-2329.27 y48874.96 a1.617769 u0 15 | !W1 d33 x-2421.96 y48887.78 a1.617769 u0 16 | !W1 d165 x-2523.68 y48628.06 a0.049210 u0 17 | !W1 d165 x-2518.63 y48529.30 a0.049210 u0 18 | !W1 d165 x-2534.05 y48826.91 a0.049210 u0 19 | !W1 d165 x-2537.84 y48925.84 a0.016319 u0 20 | !W1 d166 x-2363.23 y48933.51 a0.047986 u0 21 | !W1 d166 x-2113.53 y48945.80 a0.101308 u0 22 | !W1 d166 x-2344.23 y48537.89 a0.048897 u0 23 | !W1 d166 x-2095.50 y48549.28 a0.043092 u0 24 | !W1 d165 x-1920.81 y48556.87 a0.039148 u0 25 | !W1 d165 x-1921.80 y48656.21 a0.055469 u0 26 | !W1 d32 x-2224.58 y48641.47 a1.617769 u0 27 | !W1 d32 x-2319.44 y48636.16 a1.617769 u0 28 | !W1 d32 x-2411.30 y48630.99 a1.617769 u0 29 | !W1 d32 x-2274.60 y48686.23 a1.021533 u0 30 | !W1 d32 x-2329.06 y48831.38 a1.493414 u0 31 | !W1 d32 x-2419.37 y48830.83 a1.617769 u0 32 | !W1 d165 x-1938.41 y48954.48 a-0.012224 u0 33 | !W1 d165 x-1926.26 y48855.95 a0.039566 u0 34 | !D1 x-2510.95 y48728.29 a0.048932 r20 u1 35 | !D1 x-1925.92 y48755.79 a-3.101798 r23 u2 36 | !N5/5 x-2065.54 y48652.18 a0.039148 u0 37 | !N1/0 x-2114.10 y48754.64 a0.043562 u4 38 | $u:skip1,dlog,pt1,pb3,test2,bnez/A,tb4,tt5,tb6,tt7,tb8,tt9,tb10,tt11,tb12,tt13,unlock2,A#tb16,dend,skip0,set2; 39 | !N5/6 x-2096.72 y48650.18 a0.042903 u0 40 | !N5/6 x-2032.84 y48654.01 a0.042903 u0 41 | !N5/2 x-2055.02 y48748.12 a-3.099973 u0 42 | !N5/1 x-2045.59 y48715.38 a1.612607 u0 43 | !N5/1 x-2045.11 y48704.08 a-1.529389 u0 44 | !N5/1 x-2135.71 y48607.65 a1.613972 u0 45 | !N5/1 x-2031.97 y48603.43 a1.614992 u0 46 | !N5/2 x-2129.21 y48640.96 a-1.527090 u0 47 | !N7/50 x-2238.64 y48858.01 a1.377747 u0 48 | !B114 x-2350.53 y48403.38 a1.629321 u10 49 | !B114 x-2114.54 y48343.05 a1.629321 u11 50 | -------------------------------------------------------------------------------- /src/azimuth/tick/baddie_oth_gunship.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_BADDIE_OTH_GUNSHIP_H_ 22 | #define AZIMUTH_TICK_BADDIE_OTH_GUNSHIP_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/state/space.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_tick_bad_oth_gunship( 30 | az_space_state_t *state, az_baddie_t *baddie, double time); 31 | void az_on_oth_gunship_damaged( 32 | az_space_state_t *state, az_baddie_t *baddie, double amount, 33 | az_damage_flags_t damage_kind); 34 | 35 | void az_tick_bad_reflection( 36 | az_space_state_t *state, az_baddie_t *baddie, double time); 37 | 38 | /*===========================================================================*/ 39 | 40 | #endif // AZIMUTH_TICK_BADDIE_OTH_GUNSHIP_H_ 41 | -------------------------------------------------------------------------------- /data/rooms/room031.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k1 b0 d2 g0 n14 w30 2 | c(37259.16,0.00,1.438487,0.000000) 3 | $s:has8,bnez/A,lock2,A#test10,hnez,lock1; 4 | !W1 d8 x4985.45 y36736.34 a1.439766 u0 5 | !W1 d8 x4888.05 y36747.35 a1.439766 u0 6 | !W1 d8 x4782.72 y36759.41 a1.439766 u0 7 | !W1 d8 x4686.84 y36774.25 a1.439766 u0 8 | !W1 d14 x4666.47 y36715.49 a-0.129502 u0 9 | !W1 d14 x4963.48 y36680.74 a3.008012 u0 10 | !W1 d5 x4706.47 y37226.53 a0.109651 u0 11 | !W1 d14 x4832.02 y37214.63 a3.013672 u0 12 | !W1 d14 x5030.29 y37183.31 a-0.135771 u0 13 | !W1 d12 x5173.09 y37162.79 a-0.135771 u0 14 | !W1 d7 x5118.61 y37112.10 a-0.137058 u0 15 | !W1 d7 x4728.06 y37164.02 a-0.129789 u0 16 | !W1 d165 x4589.67 y36873.71 a-0.128852 u0 17 | !W1 d165 x4577.15 y36777.20 a-0.128852 u0 18 | !W1 d165 x4616.29 y37070.60 a-0.128852 u0 19 | !W1 d165 x4629.04 y37168.78 a-0.128852 u0 20 | !W1 d14 x5184.50 y36719.23 a1.434007 u0 21 | !W1 d0 x4825.27 y37151.58 a-0.120362 u0 22 | !W1 d0 x4924.10 y37138.41 a-0.121867 u0 23 | !W1 d0 x5022.50 y37125.72 a-0.139383 u0 24 | !W1 d8 x5188.00 y37102.53 a-0.138928 u0 25 | !W1 d5 x5223.17 y37159.98 a1.983333 u0 26 | !W1 d14 x5224.46 y37019.59 a-1.709901 u0 27 | !W1 d11 x5267.15 y37127.45 a1.983333 u0 28 | !W1 d13 x5152.22 y36647.60 a0.108540 u0 29 | !W1 d12 x4814.06 y36697.61 a-0.129502 u0 30 | !W1 d0 x4698.16 y36821.16 a-0.139383 u0 31 | !W1 d0 x4797.28 y36807.91 a-0.139383 u0 32 | !W1 d0 x4895.54 y36795.78 a-0.139383 u0 33 | !W1 d0 x4993.66 y36782.66 a-0.135044 u0 34 | !D1 x5202.81 y36869.75 a3.006252 r30 u2 35 | !D1 x4621.85 y36969.56 a-0.124373 r32 u1 36 | !N1/0 x4927.17 y37009.43 a1.438469 u0 37 | $u:skip1,dlog,pt1,pb3,test10,bnez/A,tb45,tt46,tb47,tt48,tb49,tb50,tt51,tb52,tt53,tb54,tt55,tb56,tt57,A#tb58,test10,bnez/B,set10,unlock1,B#test69,bnez/C,set68,C#tb86,dend,skip0; 38 | !N7/9 x5097.93 y36769.78 a-0.131143 u0 39 | !N5/2 x4962.42 y37052.21 a1.436892 u0 40 | !N5/1 x4974.97 y37083.66 a-1.705612 u0 41 | !N5/1 x4880.99 y37053.96 a-0.130708 u0 42 | !N5/1 x4840.28 y37058.98 a-0.130708 u0 43 | !N5/6 x4840.33 y37059.33 a-0.130708 u0 44 | !N5/3 x4799.64 y37064.26 a-0.130708 u0 45 | !N5/1 x4804.91 y37104.57 a-1.699274 u0 46 | !N5/2 x4789.49 y37047.22 a1.436892 u0 47 | !N5/1 x4755.83 y37043.46 a-0.127393 u0 48 | !N5/1 x4715.20 y37048.62 a3.015201 u0 49 | !N5/1 x4659.79 y37055.73 a-0.126108 u0 50 | !N5/1 x4816.85 y37196.96 a-1.699274 u0 51 | -------------------------------------------------------------------------------- /src/azimuth/util/clock.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_UTIL_CLOCK_H_ 22 | #define AZIMUTH_UTIL_CLOCK_H_ 23 | 24 | /*===========================================================================*/ 25 | 26 | typedef unsigned long az_clock_t; 27 | 28 | // Return a number that cycles from zero up to (modulus - 1), with the number 29 | // advancing by one for every `slowdown` ticks of the clock. 30 | int az_clock_mod(int modulus, int slowdown, az_clock_t clock); 31 | 32 | // Return a number that cycles from zero up to (modulus - 1) and back down 33 | // again, with the number advancing by one every `slowdown` ticks of the clock. 34 | int az_clock_zigzag(int modulus, int slowdown, az_clock_t clock); 35 | 36 | /*===========================================================================*/ 37 | 38 | #endif // AZIMUTH_UTIL_CLOCK_H_ 39 | -------------------------------------------------------------------------------- /data/rooms/room076.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k3 b1 d2 g0 n4 w43 2 | c(48199.93,0.00,1.293229,0.008555) 3 | !W1 d33 x13447.82 y46118.47 a-1.853309 u0 4 | !W1 d33 x13460.31 y46161.50 a-1.853309 u0 5 | !W1 d39 x12758.56 y46311.63 a-1.643161 u0 6 | !W1 d0 x12691.93 y46234.55 a2.130513 u0 7 | !W1 d39 x13042.71 y46551.30 a1.297621 u0 8 | !W1 d39 x12960.95 y46275.22 a-1.902943 u0 9 | !W1 d39 x13189.28 y46350.94 a-1.848526 u0 10 | !W1 d0 x12636.87 y46737.15 a-0.272120 u0 11 | !W1 d0 x13488.52 y46499.57 a2.859801 u0 12 | !W1 d0 x12523.91 y46321.37 a2.870038 u0 13 | !W1 d0 x13370.21 y46085.69 a-0.314492 u0 14 | !W1 d33 x13533.33 y46419.37 a1.289250 u0 15 | !W1 d33 x12487.77 y46403.09 a-1.835559 u0 16 | !W1 d33 x12565.30 y46688.81 a-1.834795 u0 17 | !W1 d32 x12545.10 y46618.18 a1.301784 u0 18 | !W1 d32 x12505.31 y46467.76 a-0.263439 u0 19 | !W1 d32 x12470.27 y46338.66 a1.301784 u0 20 | !W1 d32 x13517.94 y46366.57 a2.864025 u0 21 | !W1 d32 x13550.30 y46481.28 a1.293229 u0 22 | !W1 d32 x13475.36 y46216.76 a1.293229 u0 23 | !W1 d32 x13432.70 y46066.54 a1.293229 u0 24 | !W1 d0 x13274.03 y46112.57 a-0.268112 u0 25 | !W1 d0 x13178.88 y46139.94 a-0.279966 u0 26 | !W1 d0 x13084.04 y46166.79 a-0.279966 u0 27 | !W1 d0 x12987.83 y46194.11 a-0.279966 u0 28 | !W1 d0 x12801.83 y46215.67 a-2.755715 u0 29 | !W1 d0 x12618.55 y46292.16 a2.771057 u0 30 | !W1 d0 x13393.19 y46525.63 a2.907231 u0 31 | !W1 d0 x13297.05 y46553.14 a2.859801 u0 32 | !W1 d0 x13202.82 y46580.09 a2.859801 u0 33 | !W1 d0 x13108.00 y46607.78 a2.859801 u0 34 | !W1 d0 x13013.20 y46635.39 a-0.272120 u0 35 | !W1 d0 x12920.07 y46658.18 a-0.219360 u0 36 | !W1 d0 x12823.65 y46684.73 a-0.302114 u0 37 | !W1 d0 x12732.85 y46712.81 a-0.272120 u0 38 | !W1 d38 x13167.79 y46279.06 a-1.848526 u0 39 | !W1 d38 x13210.88 y46426.92 a-1.848526 u0 40 | !W1 d38 x12983.88 y46342.41 a-1.902943 u0 41 | !W1 d38 x13022.02 y46481.29 a-1.848526 u0 42 | !W1 d38 x12753.85 y46240.34 a-1.643161 u0 43 | !W1 d0 x12892.42 y46220.73 a2.971087 u0 44 | !W1 d38 x12763.15 y46380.89 a-1.643161 u0 45 | !W1 d32 x12582.26 y46751.27 a1.301784 u0 46 | !D1 x12526.14 y46542.81 a-0.269012 r39 u0 47 | !D1 x13496.17 y46291.68 a2.864025 r75 u0 48 | !N7/9 x13145.27 y46196.70 a1.295651 u0 49 | !N7/9 x13229.37 y46488.22 a1.298447 u0 50 | !N7/9 x12836.66 y46633.76 a-1.981952 u0 51 | !N7/9 x12713.11 y46272.33 a2.467264 u0 52 | !B32 x12829.41 y46316.17 a-1.841018 u0 53 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_H_ 22 | #define AZIMUTH_VIEW_BADDIE_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/state/space.h" 26 | #include "azimuth/util/clock.h" 27 | 28 | /*===========================================================================*/ 29 | 30 | // Draw a single baddie. The GL matrix should be at the camera position. 31 | void az_draw_baddie(const az_baddie_t *baddie, az_clock_t clock); 32 | 33 | // Draw all baddies in a particular layer. The GL matrix should be at the 34 | // camera position. 35 | void az_draw_background_baddies(const az_space_state_t *state); 36 | void az_draw_foreground_baddies(const az_space_state_t *state); 37 | 38 | /*===========================================================================*/ 39 | 40 | #endif // AZIMUTH_VIEW_BADDIE_H_ 41 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_magbeest.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_MAGBEEST_H_ 22 | #define AZIMUTH_VIEW_BADDIE_MAGBEEST_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_magbeest_head(const az_baddie_t *baddie, az_clock_t clock); 30 | void az_draw_bad_magbeest_legs_l(const az_baddie_t *baddie, az_clock_t clock); 31 | void az_draw_bad_magbeest_legs_r(const az_baddie_t *baddie, az_clock_t clock); 32 | 33 | void az_draw_bad_magma_bomb(const az_baddie_t *baddie, az_clock_t clock); 34 | 35 | void az_draw_bad_scrap_metal(const az_baddie_t *baddie); 36 | 37 | /*===========================================================================*/ 38 | 39 | #endif // AZIMUTH_VIEW_BADDIE_MAGBEEST_H_ 40 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_spiner.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_SPINER_H_ 22 | #define AZIMUTH_VIEW_BADDIE_SPINER_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_spine_mine( 30 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 31 | 32 | void az_draw_bad_spiner( 33 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 34 | 35 | void az_draw_bad_super_spiner( 36 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 37 | 38 | void az_draw_bad_urchin( 39 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 40 | 41 | /*===========================================================================*/ 42 | 43 | #endif // AZIMUTH_VIEW_BADDIE_SPINER_H_ 44 | -------------------------------------------------------------------------------- /src/azimuth/system/generate_blob_index.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #=============================================================================# 3 | # Copyright 2012 Matthew D. Steele # 4 | # # 5 | # This file is part of Azimuth. # 6 | # # 7 | # Azimuth is free software: you can redistribute it and/or modify it under # 8 | # the terms of the GNU General Public License as published by the Free # 9 | # Software Foundation, either version 3 of the License, or (at your option) # 10 | # any later version. # 11 | # # 12 | # Azimuth is distributed in the hope that it will be useful, but WITHOUT # 13 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # 14 | # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # 15 | # more details. # 16 | # # 17 | # You should have received a copy of the GNU General Public License along # 18 | # with Azimuth. If not, see . # 19 | #=============================================================================# 20 | 21 | set -e 22 | set -u 23 | 24 | OUTFILE=$1 25 | shift 26 | 27 | # Keep this declaration in sync with resource_blob.c 28 | cat > $OUTFILE < 31 | const struct resource_entry { 32 | const char *name; 33 | size_t offset, length; 34 | } resource_index[] = { 35 | EOF 36 | 37 | OFFSET=0 38 | NUM_ENTRIES=0 39 | for RESOURCE_FILE in "$@"; do 40 | NAME="$(basename $(dirname $RESOURCE_FILE))/$(basename $RESOURCE_FILE)" 41 | SIZE=$(wc -c < $RESOURCE_FILE) 42 | echo " {.name=\"$NAME\", .offset=$OFFSET, .length=$SIZE}," >> $OUTFILE 43 | OFFSET=$((OFFSET + SIZE)) 44 | NUM_ENTRIES=$((NUM_ENTRIES + 1)) 45 | done 46 | echo "};" >> $OUTFILE 47 | echo "const size_t resource_index_size = $NUM_ENTRIES;" >> $OUTFILE 48 | -------------------------------------------------------------------------------- /src/azimuth/tick/baddie_myco.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_BADDIE_MYCO_H_ 22 | #define AZIMUTH_TICK_BADDIE_MYCO_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/state/space.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_tick_bad_mycoflakker( 30 | az_space_state_t *state, az_baddie_t *baddie, double time); 31 | 32 | void az_tick_bad_mycostalker( 33 | az_space_state_t *state, az_baddie_t *baddie, double time); 34 | 35 | void az_tick_bad_pyroflakker( 36 | az_space_state_t *state, az_baddie_t *baddie, double time); 37 | 38 | void az_tick_bad_pyrostalker( 39 | az_space_state_t *state, az_baddie_t *baddie, double time); 40 | 41 | /*===========================================================================*/ 42 | 43 | #endif // AZIMUTH_TICK_BADDIE_MYCO_H_ 44 | -------------------------------------------------------------------------------- /src/azimuth/tick/baddie_vehicle.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_TICK_BADDIE_VEHICLE_H_ 22 | #define AZIMUTH_TICK_BADDIE_VEHICLE_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/state/space.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_tick_bad_copter_horz( 30 | az_space_state_t *state, az_baddie_t *baddie, double time); 31 | void az_tick_bad_copter_vert( 32 | az_space_state_t *state, az_baddie_t *baddie, double time); 33 | 34 | void az_tick_bad_small_truck( 35 | az_space_state_t *state, az_baddie_t *baddie, double time); 36 | void az_tick_bad_small_auv( 37 | az_space_state_t *state, az_baddie_t *baddie, double time); 38 | 39 | /*===========================================================================*/ 40 | 41 | #endif // AZIMUTH_TICK_BADDIE_VEHICLE_H_ 42 | -------------------------------------------------------------------------------- /src/azimuth/view/baddie_myco.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_BADDIE_MYCO_H_ 22 | #define AZIMUTH_VIEW_BADDIE_MYCO_H_ 23 | 24 | #include "azimuth/state/baddie.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_bad_mycoflakker( 30 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 31 | 32 | void az_draw_bad_mycostalker( 33 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 34 | 35 | void az_draw_bad_pyroflakker( 36 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 37 | 38 | void az_draw_bad_pyrostalker( 39 | const az_baddie_t *baddie, float frozen, az_clock_t clock); 40 | 41 | /*===========================================================================*/ 42 | 43 | #endif // AZIMUTH_VIEW_BADDIE_MYCO_H_ 44 | -------------------------------------------------------------------------------- /data/rooms/room136.txt: -------------------------------------------------------------------------------- 1 | @R z0 p0 k5 b1 d1 g0 n7 w40 2 | c(48204.26,0.00,1.788620,0.000000) 3 | !W1 d8 x-10083.41 y46888.91 a1.789254 u0 4 | !W1 d8 x-10277.84 y46845.55 a1.789254 u0 5 | !W1 d8 x-10457.80 y46802.53 a1.789254 u0 6 | !W1 d8 x-10647.42 y46761.48 a1.789254 u0 7 | !W1 d39 x-10101.85 y46978.78 a1.782574 u0 8 | !W1 d39 x-10160.87 y47249.45 a1.784149 u0 9 | !W1 d39 x-10294.85 y47294.82 a0.222393 u0 10 | !W1 d39 x-10614.49 y47224.31 a0.222393 u0 11 | !W1 d39 x-10677.82 y47209.99 a0.222393 u0 12 | !W1 d39 x-10674.71 y46882.05 a-1.347264 u0 13 | !W1 d39 x-10220.20 y46911.85 a-2.869954 u0 14 | !W1 d39 x-10538.84 y46837.38 a-2.920691 u0 15 | !W1 d33 x-10399.93 y47227.62 a-2.139529 u0 16 | !W1 d33 x-10502.66 y47205.91 a2.575424 u0 17 | !W1 d33 x-10435.63 y46903.24 a1.005074 u0 18 | !W1 d33 x-10337.02 y46925.07 a-0.569591 u0 19 | !W1 d34 x-10397.64 y46963.79 a-2.138547 u0 20 | !W1 d34 x-10468.54 y46852.94 a-2.920418 u0 21 | !W1 d34 x-10288.12 y46893.90 a-1.354952 u0 22 | !W1 d34 x-10439.46 y47165.62 a1.003222 u0 23 | !W1 d34 x-10367.24 y47278.90 a0.214696 u0 24 | !W1 d34 x-10552.75 y47237.84 a1.790769 u0 25 | !W1 d39 x-10612.81 y46820.77 a-2.920691 u0 26 | !W1 d39 x-10122.26 y46931.23 a-3.022603 u0 27 | !W1 d38 x-10658.87 y46810.76 a1.784592 u0 28 | !W1 d46 x-10602.27 y46975.93 a0.220066 u0 29 | !W1 d39 x-10696.63 y46978.46 a-1.347264 u0 30 | !W1 d39 x-10718.12 y47073.00 a-1.347264 u0 31 | !W1 d39 x-10733.63 y47141.26 a-1.347264 u0 32 | !W1 d38 x-10745.56 y47193.73 a-1.347264 u0 33 | !W1 d39 x-10216.88 y47312.46 a0.222393 u0 34 | !W1 d38 x-10176.31 y47321.63 a0.222393 u0 35 | !W1 d38 x-10147.81 y47193.96 a1.782574 u0 36 | !W1 d38 x-10115.26 y47042.57 a1.782574 u0 37 | !W1 d38 x-10093.50 y46936.82 a1.755432 u0 38 | !W1 d20 x-10370.27 y46842.44 a-1.350524 u0 39 | !W1 d20 x-10549.10 y46752.69 a-1.350524 u0 40 | !W1 d20 x-10143.40 y46851.33 a-1.558020 u0 41 | !W1 d46 x-10547.39 y46911.71 a1.792119 u0 42 | !W1 d46 x-10615.72 y46896.54 a1.792119 u0 43 | !D1 x-10130.18 y47118.89 a-2.929740 r166 u0 44 | !N3/21 x-10601.89 y47018.36 a0.217833 u0 45 | $u:mus14,wait0.1,mus15; 46 | !N2 x-10396.82 y46960.05 a-1.354354 u0 47 | !N2 x-10440.49 y47170.52 a1.787999 u0 48 | !N5/5 x-10173.75 y46934.46 a-2.928241 u0 49 | !N5/5 x-10165.77 y46945.85 a-3.034457 u0 50 | !N5/5 x-10184.89 y46941.74 a-2.853437 u0 51 | !N5/5 x-10173.86 y46923.71 a-2.928241 u0 52 | !B37 x-10176.67 y46949.89 a1.822315 u0 53 | -------------------------------------------------------------------------------- /src/azimuth/view/cutscene.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_CUTSCENE_H_ 22 | #define AZIMUTH_VIEW_CUTSCENE_H_ 23 | 24 | #include "azimuth/state/space.h" 25 | #include "azimuth/util/clock.h" 26 | 27 | /*===========================================================================*/ 28 | 29 | void az_draw_planet_starfield(az_clock_t clock); 30 | 31 | void az_draw_moving_starfield(double time, double speed, double scale); 32 | 33 | void az_draw_zenith_planet(az_clock_t clock); 34 | 35 | void az_draw_zenith_planet_formation(double blacken, double create, 36 | az_clock_t clock); 37 | 38 | void az_draw_planet_debris(az_clock_t clock); 39 | 40 | void az_draw_cutscene(const az_space_state_t *state); 41 | 42 | /*===========================================================================*/ 43 | 44 | #endif // AZIMUTH_VIEW_CUTSCENE_H_ 45 | -------------------------------------------------------------------------------- /data/rooms/room471.txt: -------------------------------------------------------------------------------- 1 | @R z1 p0 k12 b0 d1 g0 n30 w20 2 | c(42093.71,0.00,1.623892,0.000000) 3 | $s:msg0,mus2; 4 | !W1 d80 x-2512.68 y42278.82 a0.063458 u0 5 | !W1 d81 x-2287.49 y42250.98 a0.054537 u0 6 | !W1 d81 x-1997.88 y42286.11 a-3.094560 u0 7 | !W1 d80 x-2054.92 y42227.16 a-3.094560 u0 8 | !W1 d83 x-1915.91 y42233.68 a0.045901 u0 9 | !W1 d82 x-1985.25 y42178.79 a-3.094560 u0 10 | !W1 d83 x-1945.34 y42124.83 a0.047382 u0 11 | !W1 d87 x-1911.77 y42058.52 a-2.925133 u0 12 | !W1 d86 x-1857.27 y42008.45 a-3.095413 u0 13 | !W1 d86 x-1925.04 y41970.66 a0.046762 u0 14 | !W1 d87 x-1928.15 y41914.45 a0.046762 u0 15 | !W1 d80 x-2540.96 y42203.31 a0.029725 u0 16 | !W1 d83 x-2565.38 y42126.59 a0.074508 u0 17 | !W1 d84 x-2555.80 y41951.04 a-3.077817 u0 18 | !W1 d84 x-2510.67 y41886.77 a0.174969 u0 19 | !W1 d82 x-2503.69 y41834.68 a-3.040414 u0 20 | !W1 d83 x-2516.04 y41778.75 a0.063036 u0 21 | !W1 d80 x-2379.03 y41792.20 a-3.086974 u0 22 | !W1 d81 x-2148.24 y41820.74 a-3.086974 u0 23 | !W1 d80 x-1909.45 y41845.34 a-3.094027 u0 24 | !D1 x-2529.03 y42040.97 a0.053096 r51 u0 25 | !N5/5 x-2312.79 y42225.69 a1.623892 u0 26 | !N5/5 x-2176.07 y42185.78 a1.623892 u0 27 | !N5/6 x-2217.43 y42207.19 a-3.088497 u0 28 | !N5/2 x-2184.90 y42202.60 a-3.088497 u0 29 | !N5/5 x-2175.05 y42166.61 a1.623892 u0 30 | !N5/5 x-2055.46 y42124.36 a-1.517701 u0 31 | !N5/5 x-2050.52 y42032.36 a1.623892 u0 32 | !N1/2 x-2162.10 y42051.26 a-3.088497 u0 33 | !N7/9 x-2369.31 y41909.84 a0.053096 u0 34 | !N7/9 x-2258.96 y41915.71 a0.053096 u0 35 | !N7/9 x-2037.66 y41927.47 a0.053096 u0 36 | !N7/9 x-2145.88 y41892.67 a-0.438176 u0 37 | !N5/1 x-2091.08 y42055.05 a-3.088497 u0 38 | !N5/3 x-2051.94 y42057.14 a-3.088497 u0 39 | !N5/2 x-2041.56 y42015.52 a0.053096 u0 40 | !N5/1 x-2008.21 y42009.13 a-3.088497 u0 41 | !N5/5 x-1976.01 y42010.84 a-3.088497 u0 42 | !N5/1 x-2054.06 y42098.07 a-1.517701 u0 43 | !N5/2 x-2064.41 y42139.94 a-3.088497 u0 44 | !N5/1 x-2097.69 y42146.06 a0.053096 u0 45 | !N5/1 x-2132.88 y42144.19 a-3.088497 u0 46 | !N5/2 x-2166.34 y42150.33 a0.053096 u0 47 | !N5/1 x-2272.66 y42205.85 a0.053096 u0 48 | !N5/2 x-2304.05 y42212.14 a0.053096 u0 49 | !N7/80 x-2438.49 y41813.22 a0.171188 u0 50 | !N7/82 x-1968.28 y41878.27 a-2.916111 u0 51 | !N7/80 x-2429.35 y42225.29 a0.054781 u0 52 | !N7/82 x-2549.25 y41937.52 a0.054781 u0 53 | !N7/83 x-1982.93 y42153.88 a0.054781 u0 54 | !N7/83 x-2545.26 y42164.05 a0.054781 u0 55 | -------------------------------------------------------------------------------- /src/azimuth/view/dialog.h: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #pragma once 21 | #ifndef AZIMUTH_VIEW_DIALOG_H_ 22 | #define AZIMUTH_VIEW_DIALOG_H_ 23 | 24 | #include 25 | 26 | #include "azimuth/state/dialog.h" 27 | #include "azimuth/util/clock.h" 28 | 29 | /*===========================================================================*/ 30 | 31 | // Call this at program startup to initialize drawing of portraits. This must 32 | // be called _after_ az_init_gui, and must be called _before_ any calls to 33 | // az_draw_portrait. 34 | void az_init_portrait_drawing(void); 35 | 36 | // Draw a single right-facing portrait. The GL matrix should be at the 37 | // bottom-left corner of the portrait. 38 | void az_draw_portrait(az_portrait_t portrait, bool talking, az_clock_t clock); 39 | 40 | /*===========================================================================*/ 41 | 42 | #endif // AZIMUTH_VIEW_DIALOG_H_ 43 | -------------------------------------------------------------------------------- /src/azimuth/tick/particle.c: -------------------------------------------------------------------------------- 1 | /*============================================================================= 2 | | Copyright 2012 Matthew D. Steele | 3 | | | 4 | | This file is part of Azimuth. | 5 | | | 6 | | Azimuth is free software: you can redistribute it and/or modify it under | 7 | | the terms of the GNU General Public License as published by the Free | 8 | | Software Foundation, either version 3 of the License, or (at your option) | 9 | | any later version. | 10 | | | 11 | | Azimuth is distributed in the hope that it will be useful, but WITHOUT | 12 | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 13 | | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | 14 | | more details. | 15 | | | 16 | | You should have received a copy of the GNU General Public License along | 17 | | with Azimuth. If not, see . | 18 | =============================================================================*/ 19 | 20 | #include "azimuth/tick/particle.h" 21 | 22 | #include "azimuth/state/particle.h" 23 | #include "azimuth/state/space.h" 24 | #include "azimuth/util/misc.h" 25 | 26 | /*===========================================================================*/ 27 | 28 | void az_tick_particle(az_particle_t *particle, double time) { 29 | if (particle->kind == AZ_PAR_NOTHING) return; 30 | particle->age += time; 31 | if (particle->age > particle->lifetime) { 32 | particle->kind = AZ_PAR_NOTHING; 33 | return; 34 | } 35 | az_vpluseq(&particle->position, az_vmul(particle->velocity, time)); 36 | } 37 | 38 | void az_tick_particles(az_space_state_t *state, double time) { 39 | AZ_ARRAY_LOOP(particle, state->particles) { 40 | az_tick_particle(particle, time); 41 | } 42 | } 43 | 44 | /*===========================================================================*/ 45 | --------------------------------------------------------------------------------