diff options
-rw-r--r-- | AUTHORS | 4 | ||||
-rw-r--r-- | COPYING | 725 | ||||
-rw-r--r--[-rwxr-xr-x] | ChangeLog | 788 | ||||
-rw-r--r-- | INSTALL | 34 | ||||
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | README.md | 50 | ||||
-rw-r--r-- | TODO | 6 | ||||
-rw-r--r--[-rwxr-xr-x] | VERSION | 2 | ||||
-rw-r--r-- | archive/Readme | 3 | ||||
-rw-r--r-- | archive/blr1/ChangeLog | 40 | ||||
-rw-r--r-- | archive/blr1/Compiling.txt | 9 | ||||
-rw-r--r-- | archive/blr1/Compiling_zh.txt | 9 | ||||
-rw-r--r-- | archive/blr1/README.txt | 178 | ||||
-rw-r--r-- | archive/blr1/README_zh.txt | 166 | ||||
-rw-r--r-- | archive/blr1/VERSION.txt | 1 | ||||
-rw-r--r-- | archive/blr1/resources/bg.png | bin | 0 -> 261 bytes | |||
-rw-r--r-- | archive/blr1/resources/blnsns.png | bin | 0 -> 9928 bytes | |||
-rw-r--r-- | archive/blr1/resources/charmap.fnt | 99 | ||||
-rw-r--r-- | archive/blr1/resources/credits.png | bin | 0 -> 3281111 bytes | |||
-rw-r--r-- | archive/blr1/resources/ss1.png | bin | 0 -> 25257 bytes | |||
-rw-r--r-- | archive/blr1/resources/ss2.png | bin | 0 -> 49339 bytes | |||
-rw-r--r-- | archive/blr1/resources/tap.ogg | bin | 0 -> 3626 bytes | |||
-rw-r--r-- | archive/blr1/resources/title.png | bin | 0 -> 822432 bytes | |||
-rw-r--r-- | archive/blr1/src/effects.h | 88 | ||||
-rw-r--r-- | archive/blr1/src/global.h | 297 | ||||
-rw-r--r-- | archive/blr1/src/levels.h | 1880 | ||||
-rw-r--r-- | archive/blr1/src/loading.h (renamed from loading.h) | 0 | ||||
-rw-r--r-- | archive/blr1/src/main.cpp | 510 | ||||
-rw-r--r-- | archive/blr1/src/menuitem.cpp | 201 | ||||
-rw-r--r-- | archive/blr1/src/menuitem.h | 46 | ||||
-rw-r--r-- | archive/blr1/src/menus.h | 742 | ||||
-rw-r--r-- | archive/blr1/src/scorec.h | 252 | ||||
-rw-r--r-- | archive/blr1/src/towernbullet.h | 983 | ||||
-rw-r--r-- | archive/blr2/COPYING | 51 | ||||
-rwxr-xr-x | archive/blr2/ChangeLog | 728 | ||||
-rw-r--r-- | archive/blr2/Extras (renamed from Extras) | 0 | ||||
-rw-r--r-- | archive/blr2/FAQ (renamed from FAQ) | 0 | ||||
-rw-r--r-- | archive/blr2/FAQ.zh (renamed from FAQ.zh) | 0 | ||||
-rw-r--r-- | archive/blr2/INSTALL | 29 | ||||
-rw-r--r-- | archive/blr2/Levels (renamed from Levels) | 0 | ||||
-rw-r--r-- | archive/blr2/Levels.zh (renamed from Levels.zh) | 0 | ||||
-rw-r--r-- | archive/blr2/Readme (renamed from Readme) | 0 | ||||
-rw-r--r-- | archive/blr2/Readme.zh (renamed from Readme.zh) | 0 | ||||
-rwxr-xr-x | archive/blr2/VERSION | 1 | ||||
-rwxr-xr-x | archive/blr2/resources/b_diff.png | bin | 0 -> 849040 bytes | |||
-rw-r--r-- | archive/blr2/resources/b_inter.png | bin | 0 -> 673510 bytes | |||
-rwxr-xr-x | archive/blr2/resources/b_leaves.png | bin | 0 -> 92942 bytes | |||
-rwxr-xr-x | archive/blr2/resources/b_null.png | bin | 0 -> 256 bytes | |||
-rw-r--r-- | archive/blr2/resources/bdig.fnt | 15 | ||||
-rwxr-xr-x | archive/blr2/resources/blnsns.png | bin | 0 -> 22038 bytes | |||
-rwxr-xr-x | archive/blr2/resources/charmap.fnt | 99 | ||||
-rwxr-xr-x | archive/blr2/resources/credits.png | bin | 0 -> 444814 bytes | |||
-rwxr-xr-x | archive/blr2/resources/e_leaf.png | bin | 0 -> 96212 bytes | |||
-rw-r--r-- | archive/blr2/resources/e_sflake.png | bin | 0 -> 491254 bytes | |||
-rw-r--r-- | archive/blr2/resources/e_skyitem.png | bin | 0 -> 1313643 bytes | |||
-rw-r--r-- | archive/blr2/resources/help.png | bin | 0 -> 486996 bytes | |||
-rw-r--r-- | archive/blr2/resources/menus.png | bin | 0 -> 68585 bytes | |||
-rwxr-xr-x | archive/blr2/resources/ss.png | bin | 0 -> 17442 bytes | |||
-rwxr-xr-x | archive/blr2/resources/tap.ogg | bin | 0 -> 3626 bytes | |||
-rw-r--r-- | archive/blr2/resources/title.png | bin | 0 -> 824146 bytes | |||
-rw-r--r-- | archive/blr2/resources/vdig.fnt | 20 | ||||
-rw-r--r-- | archive/blr2/src/background.h (renamed from background.h) | 0 | ||||
-rw-r--r-- | archive/blr2/src/effects.h (renamed from effects.h) | 0 | ||||
-rw-r--r-- | archive/blr2/src/global.h (renamed from global.h) | 2 | ||||
-rw-r--r-- | archive/blr2/src/hgeft.cpp (renamed from hgeft.cpp) | 4 | ||||
-rw-r--r-- | archive/blr2/src/hgeft.h (renamed from hgeft.h) | 0 | ||||
-rw-r--r-- | archive/blr2/src/levels.h (renamed from levels.h) | 0 | ||||
-rw-r--r-- | archive/blr2/src/libcgh.h (renamed from libcgh.h) | 0 | ||||
-rw-r--r-- | archive/blr2/src/libcghEx.cpp (renamed from libcghEx.cpp) | 42 | ||||
-rw-r--r-- | archive/blr2/src/loading.h | 384 | ||||
-rw-r--r-- | archive/blr2/src/main.cpp (renamed from main.cpp) | 7 | ||||
-rw-r--r-- | archive/blr2/src/menus.h (renamed from menus.h) | 10 | ||||
-rw-r--r-- | archive/blr2/src/music.h (renamed from music.h) | 0 | ||||
-rw-r--r-- | archive/blr2/src/scorec.h (renamed from scorec.h) | 0 | ||||
-rw-r--r-- | archive/blr2/src/scoresystem.h (renamed from scoresystem.h) | 0 | ||||
-rw-r--r-- | archive/blr2/src/towernbullet.h (renamed from towernbullet.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/license.txt (renamed from hge/CxImage/license.txt) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/stdint.h (renamed from hge/CxImage/stdint.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/tif_xfile.cpp (renamed from hge/CxImage/tif_xfile.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/xfile.h (renamed from hge/CxImage/xfile.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximabmp.cpp (renamed from hge/CxImage/ximabmp.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximabmp.h (renamed from hge/CxImage/ximabmp.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximacfg.h (renamed from hge/CxImage/ximacfg.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximadef.h (renamed from hge/CxImage/ximadef.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximadsp.cpp (renamed from hge/CxImage/ximadsp.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaenc.cpp (renamed from hge/CxImage/ximaenc.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaexif.cpp (renamed from hge/CxImage/ximaexif.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximage.cpp (renamed from hge/CxImage/ximage.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximage.h (renamed from hge/CxImage/ximage.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximagif.cpp (renamed from hge/CxImage/ximagif.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximagif.h (renamed from hge/CxImage/ximagif.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximahist.cpp (renamed from hge/CxImage/ximahist.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaico.cpp (renamed from hge/CxImage/ximaico.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaico.h (renamed from hge/CxImage/ximaico.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximainfo.cpp (renamed from hge/CxImage/ximainfo.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaint.cpp (renamed from hge/CxImage/ximaint.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaiter.h (renamed from hge/CxImage/ximaiter.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximajas.cpp (renamed from hge/CxImage/ximajas.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximajas.h (renamed from hge/CxImage/ximajas.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximajbg.cpp (renamed from hge/CxImage/ximajbg.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximajbg.h (renamed from hge/CxImage/ximajbg.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximajpg.cpp (renamed from hge/CxImage/ximajpg.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximajpg.h (renamed from hge/CxImage/ximajpg.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximalpha.cpp (renamed from hge/CxImage/ximalpha.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximalyr.cpp (renamed from hge/CxImage/ximalyr.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximamng.cpp (renamed from hge/CxImage/ximamng.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximamng.h (renamed from hge/CxImage/ximamng.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximapal.cpp (renamed from hge/CxImage/ximapal.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximapcx.cpp (renamed from hge/CxImage/ximapcx.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximapcx.h (renamed from hge/CxImage/ximapcx.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximapng.cpp (renamed from hge/CxImage/ximapng.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximapng.h (renamed from hge/CxImage/ximapng.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximapsd.cpp (renamed from hge/CxImage/ximapsd.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximapsd.h (renamed from hge/CxImage/ximapsd.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaraw.cpp (renamed from hge/CxImage/ximaraw.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaraw.h (renamed from hge/CxImage/ximaraw.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximasel.cpp (renamed from hge/CxImage/ximasel.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaska.cpp (renamed from hge/CxImage/ximaska.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximaska.h (renamed from hge/CxImage/ximaska.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximatga.cpp (renamed from hge/CxImage/ximatga.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximatga.h (renamed from hge/CxImage/ximatga.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximath.cpp (renamed from hge/CxImage/ximath.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximath.h (renamed from hge/CxImage/ximath.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximatif.cpp (renamed from hge/CxImage/ximatif.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximatif.h (renamed from hge/CxImage/ximatif.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximatran.cpp (renamed from hge/CxImage/ximatran.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximawbmp.cpp (renamed from hge/CxImage/ximawbmp.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximawbmp.h (renamed from hge/CxImage/ximawbmp.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximawmf.cpp (renamed from hge/CxImage/ximawmf.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximawmf.h (renamed from hge/CxImage/ximawmf.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/ximawnd.cpp (renamed from hge/CxImage/ximawnd.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/xiofile.h (renamed from hge/CxImage/xiofile.h) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/xmemfile.cpp (renamed from hge/CxImage/xmemfile.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/CxImage/xmemfile.h (renamed from hge/CxImage/xmemfile.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/adler32.c (renamed from hge/ZLIB/adler32.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/crc32.c (renamed from hge/ZLIB/crc32.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/crc32.h (renamed from hge/ZLIB/crc32.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/crypt.h (renamed from hge/ZLIB/crypt.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/deflate.h (renamed from hge/ZLIB/deflate.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/inffast.c (renamed from hge/ZLIB/inffast.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/inffast.h (renamed from hge/ZLIB/inffast.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/inffixed.h (renamed from hge/ZLIB/inffixed.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/inflate.c (renamed from hge/ZLIB/inflate.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/inflate.h (renamed from hge/ZLIB/inflate.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/inftrees.c (renamed from hge/ZLIB/inftrees.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/inftrees.h (renamed from hge/ZLIB/inftrees.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/ioapi.c (renamed from hge/ZLIB/ioapi.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/ioapi.h (renamed from hge/ZLIB/ioapi.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/trees.c (renamed from hge/ZLIB/trees.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/trees.h (renamed from hge/ZLIB/trees.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/uncompr.c (renamed from hge/ZLIB/uncompr.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/unzip.c (renamed from hge/ZLIB/unzip.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/unzip.h (renamed from hge/ZLIB/unzip.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/zconf.h (renamed from hge/ZLIB/zconf.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/zconf.in.h (renamed from hge/ZLIB/zconf.in.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/zip.h (renamed from hge/ZLIB/zip.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/zlib.h (renamed from hge/ZLIB/zlib.h) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/zutil.c (renamed from hge/ZLIB/zutil.c) | 0 | ||||
-rw-r--r-- | archive/hge/ZLIB/zutil.h (renamed from hge/ZLIB/zutil.h) | 0 | ||||
-rw-r--r-- | archive/hge/demo.cpp (renamed from hge/demo.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/gl.h (renamed from hge/gl.h) | 0 | ||||
-rw-r--r-- | archive/hge/graphics.cpp (renamed from hge/graphics.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/hge_glfuncs.h (renamed from hge/hge_glfuncs.h) | 0 | ||||
-rw-r--r-- | archive/hge/hge_impl.h (renamed from hge/hge_impl.h) | 0 | ||||
-rw-r--r-- | archive/hge/ini.cpp (renamed from hge/ini.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/input.cpp (renamed from hge/input.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/power.cpp (renamed from hge/power.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/random.cpp (renamed from hge/random.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/resource.cpp (renamed from hge/resource.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/sound.cpp (renamed from hge/sound.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/system.cpp (renamed from hge/system.cpp) | 0 | ||||
-rw-r--r-- | archive/hge/timer.cpp (renamed from hge/timer.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgeanim.cpp (renamed from hgehelp/hgeanim.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgecolor.cpp (renamed from hgehelp/hgecolor.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgedistort.cpp (renamed from hgehelp/hgedistort.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgefont.cpp (renamed from hgehelp/hgefont.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgegui.cpp (renamed from hgehelp/hgegui.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgeguictrls.cpp (renamed from hgehelp/hgeguictrls.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgeparticle.cpp (renamed from hgehelp/hgeparticle.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgepmanager.cpp (renamed from hgehelp/hgepmanager.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgerect.cpp (renamed from hgehelp/hgerect.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgeresource.cpp (renamed from hgehelp/hgeresource.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgesprite.cpp (renamed from hgehelp/hgesprite.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgestrings.cpp (renamed from hgehelp/hgestrings.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/hgevector.cpp (renamed from hgehelp/hgevector.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/parser.cpp (renamed from hgehelp/parser.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/parser.h (renamed from hgehelp/parser.h) | 0 | ||||
-rw-r--r-- | archive/hgehelp/resources.cpp (renamed from hgehelp/resources.cpp) | 0 | ||||
-rw-r--r-- | archive/hgehelp/resources.h (renamed from hgehelp/resources.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/adler32.c (renamed from hgewin/ZLIB/adler32.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/crc32.c (renamed from hgewin/ZLIB/crc32.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/crc32.h (renamed from hgewin/ZLIB/crc32.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/crypt.h (renamed from hgewin/ZLIB/crypt.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/deflate.h (renamed from hgewin/ZLIB/deflate.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/inffast.c (renamed from hgewin/ZLIB/inffast.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/inffast.h (renamed from hgewin/ZLIB/inffast.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/inffixed.h (renamed from hgewin/ZLIB/inffixed.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/inflate.c (renamed from hgewin/ZLIB/inflate.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/inflate.h (renamed from hgewin/ZLIB/inflate.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/inftrees.c (renamed from hgewin/ZLIB/inftrees.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/inftrees.h (renamed from hgewin/ZLIB/inftrees.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/ioapi.c (renamed from hgewin/ZLIB/ioapi.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/ioapi.h (renamed from hgewin/ZLIB/ioapi.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/trees.c (renamed from hgewin/ZLIB/trees.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/trees.h (renamed from hgewin/ZLIB/trees.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/uncompr.c (renamed from hgewin/ZLIB/uncompr.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/unzip.c (renamed from hgewin/ZLIB/unzip.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/unzip.h (renamed from hgewin/ZLIB/unzip.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/zconf.h (renamed from hgewin/ZLIB/zconf.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/zconf.in.h (renamed from hgewin/ZLIB/zconf.in.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/zip.h (renamed from hgewin/ZLIB/zip.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/zlib.h (renamed from hgewin/ZLIB/zlib.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/zutil.c (renamed from hgewin/ZLIB/zutil.c) | 0 | ||||
-rw-r--r-- | archive/hgewin/ZLIB/zutil.h (renamed from hgewin/ZLIB/zutil.h) | 0 | ||||
-rw-r--r-- | archive/hgewin/demo.cpp (renamed from hgewin/demo.cpp) | 0 | ||||
-rwxr-xr-x | archive/hgewin/graphics.cpp (renamed from hgewin/graphics.cpp) | 0 | ||||
-rwxr-xr-x | archive/hgewin/hge_impl.h (renamed from hgewin/hge_impl.h) | 0 | ||||
-rwxr-xr-x | archive/hgewin/ini.cpp (renamed from hgewin/ini.cpp) | 0 | ||||
-rwxr-xr-x | archive/hgewin/input.cpp (renamed from hgewin/input.cpp) | 0 | ||||
-rwxr-xr-x | archive/hgewin/power.cpp (renamed from hgewin/power.cpp) | 0 | ||||
-rwxr-xr-x | archive/hgewin/random.cpp (renamed from hgewin/random.cpp) | 0 | ||||
-rwxr-xr-x | archive/hgewin/resource.cpp (renamed from hgewin/resource.cpp) | 0 | ||||
-rw-r--r-- | archive/hgewin/sound.cpp (renamed from hgewin/sound.cpp) | 0 | ||||
-rwxr-xr-x | archive/hgewin/system.cpp (renamed from hgewin/system.cpp) | 0 | ||||
-rwxr-xr-x | archive/hgewin/timer.cpp (renamed from hgewin/timer.cpp) | 0 | ||||
-rw-r--r-- | archive/include/hge.h (renamed from include/hge.h) | 0 | ||||
-rw-r--r-- | archive/include/hgeanim.h (renamed from include/hgeanim.h) | 0 | ||||
-rw-r--r-- | archive/include/hgecolor.h (renamed from include/hgecolor.h) | 0 | ||||
-rw-r--r-- | archive/include/hgedistort.h (renamed from include/hgedistort.h) | 0 | ||||
-rw-r--r-- | archive/include/hgefont.h (renamed from include/hgefont.h) | 0 | ||||
-rw-r--r-- | archive/include/hgegui.h (renamed from include/hgegui.h) | 0 | ||||
-rw-r--r-- | archive/include/hgeguictrls.h (renamed from include/hgeguictrls.h) | 0 | ||||
-rw-r--r-- | archive/include/hgeparticle.h (renamed from include/hgeparticle.h) | 0 | ||||
-rw-r--r-- | archive/include/hgerect.h (renamed from include/hgerect.h) | 0 | ||||
-rw-r--r-- | archive/include/hgeresource.h (renamed from include/hgeresource.h) | 0 | ||||
-rw-r--r-- | archive/include/hgesprite.h (renamed from include/hgesprite.h) | 0 | ||||
-rw-r--r-- | archive/include/hgestrings.h (renamed from include/hgestrings.h) | 0 | ||||
-rw-r--r-- | archive/include/hgevector.h (renamed from include/hgevector.h) | 0 | ||||
-rw-r--r-- | archive/include/unix_compat.h (renamed from include/unix_compat.h) | 0 | ||||
-rwxr-xr-x | build | 42 |
240 files changed, 7670 insertions, 878 deletions
@@ -0,0 +1,4 @@ +The whole BLR series is created and maintained by Chris Xiong solely. +Amazing, right? + +E-mail: chirs241097@gmail.com @@ -1,51 +1,674 @@ -BLRII itself distributes under the terms of the BSD license. -Varieties of hge-unix and hge included in the source code distribution are still zlib-licensed. -Here's the text of the BSD license and the zlib license. -============================================================================================== -Copyright (c) 2014, Chris Xiong -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of "Chrisoft" nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL CHRIS XIONG BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -============================================================================================== -Copyright (c) 2003-2008 Relish Games - 2011 Ryan C. Gordon - 2013-2014 Chris Xiong - - -This software is provided 'as-is', without any express or implied warranty. -In no event will the authors be held liable for any damages arising from -the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>.
\ No newline at end of file diff --git a/ChangeLog b/ChangeLog index cbd158e..22d8342 100755..100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,728 +1,62 @@ -=================================================================== -Next version: -The final release is just there!! -Todo's: -Bug fixes. -Tests. -Known bugs: -Blue bullets appearing in Vortex of leaves.//don't know why... - -Wishlist: <-strikethrough -~~Now Playing(Music Room)~~ -~~BLR script virtual machine~~(Now working for BLR3) - -Releases: - -1.0.0-0 (r101) -Fix a bug in the hgeft library, and try git... - -1.0.0-0 (r100) -Rev. 100!!! -This is the final release. -No more major changes will be made. -Further changes of BLR2 will only be bug fixes (BGM addition -excluded). - -Changes: -Fix screenshot excluding the info panel. -Make Lv-2P4 harder (reporter: BLumia). -If it is the first time you start BLR in Windows, resolution in -the options menu will be "?". Fixed now. -Fixed a critical bug in scorec.h. - -Pre-Released versions: - -0.9.9-0 (r99) -Rev. 99! WTF? -THIS IS THE FINAL RELEASE CANDIDATE!!! -Everything is frozen, that means no more new features will be -added and no big changes will be made after this revision. Only -bug fixes will be provided. -//Again, "frozen" is a term borrowed from the Debian project and -//is completely unrelated to Cirno! - -Tweak bullet9, shrink its removal border. -Change Multpo texture, add spawning effect. -Fix stubbed rankings. -Update sprite sheet. -Store assessment total elapsed time in the score file. Score -files from older revisions shouldn't cause any errors but you may -get "Time elapsed 0.00" in highscore details. If you've got any -sort of OCD (Obsessive-compulsive disorder), just remove it. -Document!!! - -0.9.8-0 (r98) -Dear Pre-Release Candidate version(RC-0). - -CLR will collect multiplier +1's in range now. -Multiplier +1's caught by player won't disappear now. -Add/Move background transitions. -Add volume control to options. This make the configuration file -not compatible with older versions. Just delete it! -Modify hge's API so that it can handle real volume and pan values. -Volume value varys from 0 to 1, pan value varys from -1 to 1. -Document... - -0.9.7-0 (r97) -Fix: small semi-coll bullets are collected by clr... -Add Multpo's for Level 7/-1. -Do slight changes to level -1... -Distribute CLRs for level 1~-1. - -0.9.6-0 (r96) -Fix bug that cause you unable to charge if you try to use clr directly -after your clr's used up. -Add Multpo's for Level 3/4/5/6, and level 7 partically. -Fix stupid bug in Level4Part2 and other similiar parts. -Fix several bugs in level 5/6. -Reduce given-away score in level "Sine Wave". It wassssSssss too long! -Fix typo... -Blinking HangUpText *should* be fixed now... - -0.9.5-0 (r95) -Change configuration and score file names. Files with their names -begin with "." may be annoying in Windows though... -If we find a score file during first start up, assume it's valid and -don't overwrite it. -Fix the problem that in-game music won't be resumed when back from pause. -Fix the problem that Multpo's won't be removed if a new game is created. -Fix the problem that the first tip is not shown correctly if the game -is restarted. -(Probably) fixed the problem that the sound is played out of game. -Prevent Multpo's from "escaping". This happens when fps is extremely low... -Adding Multpo for Level2. -Update CanonTechno. - -0.9.2-0 (r94) -Mod, mod, mod...! -Assessment mode is mostly frozen now. -I'll make a pre-release at r99 and that revision will be set to -0.9.9-0. -Write the document... That's really tiring. - -~~0.9.1-4 (r94)~~ -Ooooooooops... I've forgotten to commit this one! -So this is merged to the revision above, actually. -================================================================================= -Modify a couple of levels. (Making them easier...) -Fix about scene text rendering out of the window. -(Probably) fixed Level3Part3 by making them temporarily invulnerable... -Are we bug-free now? - -0.9.1-4 (r93) -Picking it up after almost one month... I'm now lost in my code... ---------------------------------------------------------------------------------- -Add player position display into debug display. -Rewrite pinball, adding collision between the balls... -The collision code is based on Kollision (a game included in KDE SC). - -0.9.1-3 (r92) -I installed Archlinux alongside Debian recently. Now we officially support -Archlinux and Debian. -Archlinux doesn't eat my CPU or try to destroy it... So further development will -be made mainly under archlinux... ---------------------------------------------------------------------------------- -Content freeze -- nothing will be added or removed any more (music etc excluded). -Fix build failure in Archlinux. -Fix font issue in Archlinux. -realloc may change the base address... That's the cause of the crashes... ---now removing all Bullet* based implementations. -Affected parts: -Assessment: Constant patterns, pinball -All parts in level 2. -L4P2, and more -L5P5~6 -L-1P17 -L-1P19 -L3P3 -L7P12 -L7P14 -L7P25 -Avoid memory leaks... I don't know if they have been really fixed... - -0.9.1-2 (r91) -Add built-in help. -Now the pause menu should be fixed... -Compress resources again. - -0.9.1-1 (r90) -Fix a bug in the credit scene. -Now the pause menu shouldn't be broken now...(It's so hard to reproduce -that I have to assume it *has* been fixed.(IT STILL HAPPENS!!!) -Close the "infinity CLR" "bug". -(Huge) Code cleanup, mainly removing duplicate code. -Allocate bullets dynamically. The array is freed every time a new game -is started. -Add a signal handler, print back trace on error(currently only available -for linux...). - -0.9.1-1 (r89) -Fix a critical bug in Score_Initailize. -Modify level pinball. -Drop "_PR" in version string. -Partly rewrite the credit scene, displaying accurate version -details. -Remove some warnings from hgewin. -A set of basic tests are done on a Intel+Nvidia desktop computer. -Add a simple build script(instead of makefile). -Reduce the Windows version executable size...(local work, recompile -freetype using reduced features enabled.) -Current tested (by me) and worked plantforms: -Debian sid x86_64/Windows 8.1 @Intel core i7-2670QM, 8GiB RAM, -Intel HD3000. -Debian sid x86_64 @Intel Core2 Quad Q8300, 8GiB RAM, nvidia GT320. -Windows XP x64 @VirutalBox, Dualcore Virtual CPU, 1.5GiB RAM, VBox -Addons installed. -Windows XP @Intel core i3-3240, 4GiB RAM, Intel HD3000. - -0.9.1-1_PR (r88) -%lld seems to work with mingw-w64(also VS2005+)... -So let's remove all %I64d. -Change point bullet behaviour. -Fix a minor multiplier problem. -Mark the source code as C++. -Re-document levels(not done). -Update wiki. - -0.9.1-1_PR (r87) -Disable screenshot when you're entering your honourable name. It's -not tested so we could only hope that will work... -Add crappy sounds to (part of) the menus. - -Replace a level in assessment mode. The original one was meanless.. -The menu sounds are too crappy... remove them temporarily. However, -let's complete the code base so that we won't waste time writing -it... - -0.9.1-1_PR (r86) -Port highscore view and details menu. Menu rewrite is almost done! -Disable select key while transferring. -Fix "typo" caused bugs. -Hopefully fix small bugs in the new menu system. -Rename several files. Add some additional files. -Remove legacy menu components. - -0.9.1-0_PR (r85) -Port death menu, complete menu and new highscore menu to the new -menu code base. -Clean up old menu code. -Update wiki. - -0.9.1-0_PR (r84) -Port player preference menu, pause menu and return to title menu -to the new menu code base. -Add shake effect to player preference menu. -Make effects faster... -Press esc in a menu will select back/exit now. -Add several background transfers. -Fix possible memory leaks in HangUpText. -Remove some commented statements. - -0.9.1-0_PR (r83) -Now you can change the game resolution. -Some resources are not re-made so they may look blurred... -Make font bigger for higher resolution. -Add command line option for changing the resolution. -Complete the option menu rewrite. - -0.9.1-0_PR (r82) -Add missing file menus.png... -Finish the start menu rewrite. -Modify "Lunatic Lunar", however it's not done... -Modify resource unpacking of Windows version. - -0.9.1-0_PR (r81) -Start menu rewrite... -Add information about the built time. - -0.9.1-0_PR (r80) -Remove "high FPS mode", it won't reach 500 FPS on my computer any -more. Replace it with Vsync mode. -Add float HGE::Timer_GetFPSf(). The return value will be updated -every 1000ms. - -0.9.0-1_PR (b79/r79) -Bump version! -BLR will use revision number instead of build number one day... -==changelog here== -New assessment level "density test"... -New assessment level "pinball"... -New assessment level "Road blocks"... -New assessment level "Extreme speeds"... -New assessment level "Messed up"... -New assessment level "Bonus - Lunatic Lunar!", finishing assessment -mode! -Laser extentions, add LineLaser for two-point laser inheriting all -Laser interfaces. -Modify laser collision parameters. -Level corrections. -Improve density test. -Add screen shot. Press S for a screen shot. -Fix the upside down screen shot output. -Fix stubbed HGE::System_Launch. - -0.9.0-0_PR (b78) -First two assessment levels. -Two more assessment levels... -Tow _more_ assessment levels...... -Another assessment level... -Yet another level for assessment mode... why don't I bump the -version? -Modify player attribute. -Allow bullet to kill itself at a certain point. -Add extborder attribute. -Finish assessment system framework. -Add circ2pnt. - -0.8.1-1_PR (b77) -All parts from level -1 to 7 are completed! -Fixed the crash in the mingw-w64 build. -Switch to mingw-w64 for building Windows version now. -Complete GUI bring back. -Fix a bug appeared after the cross-plantform port(when forked -from BLRI). -Prepare for assessment mode. - -0.8.1-0_PR (b76) -New level "Sink over the horizon". -New level "Gravity vortex". -New level "Double reflective". -Make point bullet additive blending. -Allow bullets to pause before being accelerated. -Modify "Gravity vortex". -Modify "Achromatopsia". (Thanks to my classmate's advice...) -Report build and version in the log file. -Add command line argument support. Use "--help" for usage. -Add freetype support to hge. It's still pretty buggy. (and make -the executable extremely big!) -Add experimental support for cross compiling with mingw-w64. -(Mingw-w64 build *will* be the official build in the future.) -Fix blinking HangUpText. -Fix crashes in mingw-64 build. -Change numeric characters to monospace. -Modify player speed settings. -Beewx still messes up memory... fixed now. -Exit 1 if not terminated correctly. - -0.8.0-1_PR (b75) -New level Supernova. -New level (still unnamed). -Support additive blending bullets(for Supernova). -Add some additional tips. -Move levels to level -1. -Fix blinking of HGE::Gfx_SetTransform in OpenGL. -Fix includes like " #include "../../include/..." " that would -cause errors. -Extend libcgh again. Adding operator ^ and method l(). -Modify clearrange behaviour in level hyper-threading. -Modify the corresponding score bullet. - -0.8.0-0_PR (b74) -New level Achromatopsia. -New level hyper-threading. -Tower8 partly rewritten, dropping tdir. -Fix a small problem in level 2. -Move levels to level -1. <-typo fixed -Modify the semi-coll threshold of laser. -SCEffect_Attatch now take a optional parameter. -Global varibles cleanup. -Fix a bug in bullet8 caused by RandomEngine port. -Rename "Minesweeper"->"Spiky", add noname2pnt. -Add achroma2pnt. - -0.7.3-0_PR (b73) -This is a pre-release version of 0.7.2-2_PR. -This version is released to public for level previewing. -This release contains level 1~7 (while level -1/-2 are still -"imaginary") -Changes: -Compress several png files. -Merge code for Windows. -Fixed compile problems of Windows version. -Small fixes of level2. -This build will be short-lived. - -0.7.2-2_PR (b72) -New level "return to void". That's a 3 in 1 class. I used -particularly many "return(void)(...);" in this level (which I -always love to use). -This indicates all "normal" levels are completed. -Multiplier system was fully adopted into BLR. -Implement a RandomEngine, replacing all rand(). -Rewrite Leaf_Anim using std::list, won't cause crashes now. -Fixed: Trypophobia stops if too many CLR's are used. -Fixed the problem in All2pnt(). -Fixed blinking target. -Fixed Hexagon loops memory leak (the pointer array is too small...) -Tests under Windows were done, all gameplay features ran perfectly. -Make Laser::GetDist() private to avoid misusage. -Fixed several background problems. -Remove unused statements: -DWORD ColTrans(DWORD,DWORD,DWORD): replaced by -DWORD ColorTransfer(DWORD,DWORD). -void SaySomethingAndBye(char*): useless. -void DirectBullet(Bullet&,double): this has been coexisted with -the same method in the Bullet class for a long time. Now it's -replaced by Bullet::setdir(double). -A Small bug in the Windows build is fixed. -File list in the Windows build is updated. - -0.7.2-1_PR (b71) -(Level7 will be almost twice longer than Level6!) -I'm extremely tired these days, I can't even keep my eyes open -while typing... -Some of my classmates helped testing several levels and found -some bugs, thanks a lot! - -After a short test, I found that the Windows build is almost -broken... Crashes and misbehaves are everywhere! - -Maybe Windows is noble and won't run this garbage:( -===Real changelog starts from here=== -New level "Trypophobia", however it seems that this level won't -cause trypophobia at all! -New level "Photon fusion", using a slightly modified Tower8. -Rewrote laser distance detection using vector2d calculations, -extending libcgh and bump its version at the same time.(*2) -Put the new level to the correct place. -Bring back "Minesweeper" level, adjust it to the new interfaces. -Convert Bullet from struct to class. -Bring back Classic Mode. There are no "easy", "normal" or "hard" -now, there's only "classic"! Fix problems with the classic mode in -the new code base. -Fixed a bug appeared after the levels were put together. -Other minor changes to the level WOP. -Minor cleanups and code style adjustments. Add missing free's and -delete's. -Remake the credits page, it grows from 350KiB to 6MiB. (And so I'll -enable PNG compression later.) - -0.7.2-0_PR (b70) -I wasn't willing to bump the build number because I want the svn -revision to chase the build number. -However it wouldn't be appropriate to put three new levels into one -build... -The real changelog is here: -New level "interference" (it's another small class "SimpleThing"). -New level "diffraction" (yet another dull class), hopefully fixed a -memory leak in this level (by using more memory!) -Rearrange levels to the order they will appear in the final version. -New background interface, use background pictures easily. -Make "Tiled" background mode work. -Add SetScale to background class. Make you dizzy easily... -Fix a small glitch in Level3Part3-4. This level won't run correctly -under Low FPS Mode. -Minor code cleanups. -Removed more useless comments, my code is still hard to comprehend, -though. -Fix the misbehave of modulo with minus numbers... -Small interface and behaviour changes: --If a bullet is effect-attatched and the effect is running, it won't -die. --Bullet::redir now always make dist=1, for some bullet processing -doesn't use dist now. -Don't copyleft, it's radical. - -0.7.1-6_PR (b69) -Finish some new levels ("Great Circle" bring back & "rainbow -appearance"). -Fusion bullet first work draft. -Fix some of the warnings from the compiler. -Adjust level difficulty. It was indeed too easy... -Remake some resources with GIMP. -Merge great circles and finish it. -Small code cleanups. - -0.7.1-5_PR (b68) -Draft new level. (Another level threatening you using circles!) -Update some old interfaces from BLR1. - -0.7.1-4_PR (b67) -New level (name and placement undetermined). -Fix level transition mismatches. -Improved accelerated bullets. - -0.7.1-3_PR (b66) -Fix a few glitches. Removing some useless interfaces for BLR I. -Change "Dangerous Target" for proper difficulty. - -0.7.1-2_PR (b65) -Bullet death effect, applied to Wave of Photon. It seems buggy. -Fixed something left for debuging in the last commit. - -0.7.1-1_PR (b64) -New level: Wave of Photon. A lazy level again. Despite of a new -class, it's a copy of "photon school". -Level improved: Cross threaten. Make it impossible to pass this -part without crossing those blue bullets. -libcgh improvement. Added new interfaces to vector2d struct. So the -libcgh version was bumped. Was it worth doing that? - -0.7.1-0_PR (b63) -New level: Rainbow bullets - nauty photon (in fact it's a lazy -level! I must have seen the same thing some where else...) -The last "photon school" level was put to where it should be. -Rewrite some silly parts of the Changelog. -I ran out of my AppEngine quota today... So I can't commit that to -svn as planned... - -0.7.0-9_PR (b62) -Performed a couple of tests, under both full FPS mode and low FPS -mode. -New background is used by now. - -0.7.0-8_PR (b61) -Improved the rendering code. More tests are required... -That made the rendering more efficient. It also eats less RAM then. ---Okay it's now tested. Another bug in FPS independent bullets -fixed. No (big) bugs were found in the new rendering code. - -0.7.0-7_PR (b60) -Spring Festival commit... -One level is rewritten. -Ready to sync this to svn... - -0.7.0-6_PR (b59) -Fixed 3D clouds background. New background components added. -Experimental FPS independent bullets. - -0.7.0-5_PR (b58) -Fixed another critical bug in laser collision detection -implementation... Laser is almost perfect now...//Still, it's -inefficient. - -0.7.0-4_PR (b57) -Fixed a critical bug in laser implementation and another awful -memory leak bug... - -0.7.0-3_PR (b56) -A new level is going to be complete... - -0.7.0-2_PR (b55) -Auto pause and do not make game suspend if focus is lost. - -0.7.0-1_PR (b54) -First two parts for level7. - -0.7.0-0_PR (b53) -New background for level7. Preparing interfaces for level7. - -0.6.2-2_PR (b52) -Level6 is frozen now. It's the longest level ever... (in blr!) - -0.6.2-1_PR (b51) -Completing level6! -Spring is coming? (Well, not really...) - -0.6.2-0_PR (b50) -Completing && improving hexagon. -Bumped the minor version for the sixth level is almost complete. - -0.6.1-4_PR (b49) -New level hexagon. - -0.6.1-3_PR (b48) -New level...(Avalanche) -Spotlight: Supporting BGM loop points(using my new hge -interfaces...)! -I have no idea on new levels (except "hyper fluid", that's a well- -planned part...). Maybe I've spent too much time staring at the -desktop? I feel like void these days. -The build count is bumped four times a day, you enough! - -0.6.1-2_PR (b47) -New level "Wriggle Nightbug-like"?... - -0.6.1-1_PR (b46) -Implemented several unimplemented audio interfaces of hge (OpenAL). -A Windows build to check compatibility is planned. - -0.6.1-0_PR (b45) -Now we have 11 parts in level6... -A BGM called Canon Techno is completed around here... - -0.6.0-0_PR (b44) -Starting level 6! -//We are in 2014 now. I'm regretful for I didn't have the dates -recorded. - -0.5.3-2_PR (b43) -Optimizing memory usage... (first step...)[*] -Borrowed "the unbreakable jail" from old code... -//[*]Note @ 0.6.1-3 && @ 0.7.0-9: -//1. I found this useless. -//2. This may cause SIGSEGV! -//3. It's completely removed after b61. Because they are not used -// any longer - -0.5.3-1_PR (b42) -Final(the second last..) level for level 5, fish in a barrel? - -0.5.3-0_PR (b41) -Small fixes and levels as usual... - -0.5.2-3_PR (b40) -New minor parts for level5, fixed a bug in Player_Clear_Rotate. - -0.5.2-2_PR (b39) -Several patches on new clear range. -Changing interfaces for new levels. - -0.5.2-1_PR (b38) -New trigger method for clear range... - -0.4.4-0_PRG (b37a) -Regression version for releasing... -------------------------------------------------------------- -This will be released as a official Preview Release version.<-obsolete -------------------------------------------------------------- - -0.5.2-0_PR (b37) -New part for level5. Now I'm working on the regression 0.4.x. - -0.5.1-1_PR (b36) -Several fixes including: --Fading info panel when approaching. --Sending mult. inc. indicator layer up. - -0.5.1-0_PR (b35) -First two levels of level5. - -0.5.0-0_PR (b34) -Starting level5... Crazy Autumn... - -A regression is planned to release a 0.4.x-x_PR version as -official pre-released version. However it's still nowhere in sight -that if I could use Windows these days. - -0.4.3-0_PR (b33) -Level4 is almost complete. Now I'm using LOW FPS Mode for -development because I just want to cool my laptop down without -using my own power. //However I stopped that at the next version... - -0.4.2-0_PR (b32) -A new level... without using *ANY* old code (from level.h). - -0.4.1-2_PR (b31) -Level4 is now 18 parts... - -0.4.1-1_PR (b30) -Transfered sevel old levels here. - -0.4.1-0_PR (b29) -Optimizing old code for level4. - -0.4.0-0_PR (b28) -Now let's move to level4... - -0.3.2-0_PR (b27) -New levels for level3. In fact, it's almost completed now... - -0.3.1-2_PR (b26) -Improved bullet clearing method, avoiding hidden bullets -completely!(Just by converting them all to score points...) - -0.3.1-1_PR (b25) -A new "big" level for level3. -Added several new interfaces to tower&bullet section. - -0.3.1-0_PR (b24) -Complete the first two parts of level3. - -0.3.0-0_PR (b23) -Starting the development of level3... - -0.2.9-2_PR (b22) -Completing level2... - -0.2.9-1_PR (b21) -New parts for level2. level2 is almost completed now. -PlayerLockX/Y implemented. -------------------------------------------------------------- -This will be released as a official Preview Release version.<-obsolete -------------------------------------------------------------- -BLR will be licensed under WTFPL from now. -(WTF?) -............................................................. -No it's now licensed under the BSD license... - -0.2.9_PR (b20) -Level 2 is frozen "by heart". (How? By heart?) - -0.2.5_PR (b19) -Optimizing the second level to a "realistic" state... Added two -extra musics(although still remain not used). - -0.2.2_PR (b18) -The main development has been transferred to Linux. Optimizing -code for Linux. -//Revision count is not important. - -0.2.0_PR (b17) -Level 2?... - -0.1.7-2_PR (b16) -The first level is almost completed now... - -0.1.7-1_PR (b15) -Fixed several serious bug in Low FPS Mode. Fixed FPS Level option -code. - -0.1.7_PR (b14) -Updated the only level to synchronize with the In-Game Music. -Added "Multiplier +1" into the game system. Added an unimportant -loading screen.//In fact, it's loading nothing. May be unpacking -resource pack in Windows version... - -0.1.4_PR (b13) -libcghEx has been made independent and can apply to any other -projects. This is also the first BLR version that includes -In-Game Music. libcghEx has been extended with LinearProgresser -and HangUpText. - -0.1.1_PR (b12) -Added auto-multiplier system. libcghEx (Chrisoft Game Helper -Extras Library) is included in this version with CircleIndicator. - -0.1.0_PR (b11) -Creation of the Pre-Released Version. Removed all old level code. -Bourne-again!//Can you imagine what I was thinking when deleting -the result of 3 months' work?... -================================================================= -TestBed versions: - -TB130907 (b10) -A "Noname" level. Laser implementation partly rewritten. - -TB130903 (b9) -Additional backgrounds - -TB130827 (b8) -Laser implementation, Cheers! - -TB130818 (b7) -New Levels such as rainbow towers and squashing levels. - -TB130802 (b6) -Discarding old code, rewrite of part of the code. - -TB130718 (b5) -Bullet creation effects, sync code back to BLR1. - -TB130714 (b4) -Target indicator completed. - -TB130705 (b3) -New level and bullet creation code for orange bullets. - -TB130703 (b2) -Completing Orange Towers. - -TB130620 (b1) -Completing Deep Blue Towers.//Well, "Dark Blue" right? Or more formally, "Navy". -//However, they are all not the real color. I used #0000FF, which is just "Blue", -//it just seems dark. - -TB130610 (b0) -Creation of Testbed version. +2015-10-26 0.0.1(r11) +I suddenly feel it necessary to start a changelog today... +So the content before today is written according to the git log. + +Added support for relative line numbers. +Added instructions for, brk and cont. (They are still untested...) +Parser code cleanup. Removed garbage output to stderr. +Reorganize the repository structure. +Updated BLR2 code move it into archive. +Added BLR1 files. + +2015-10-13 0.0.1(r10) +Make BLR 16:9. +Port Junko's final spell card to BLR... make it the default testing level. + +2015-10-12 0.0.1(r9) +Initial implementation of smPath. +Minor changes on the (s)coll effect. + +2015-10-11 0.0.1(r9) +Implementation of the collision system and collision effects. +Fixed a problem that keeps the screen black on start up. +Replace the build script in dtputil with makefile. + +2015-10-10 0.0.0(r8) +Fixed the stupid bug. +Initial implementation of the plugin system. + +2015-10-09 0.0.0(r7) +Initial implementation of bonus bullet. +A stupid bug existed in this revision. + +2015-10-08 0.0.0(r6) +Added more VM functions. + +2015-10-07 0.0.0(r5) +Eliminate compile warnings. +Add makefiles. + +2015-10-06 0.0.0(r4) +Tools were added. +Added licensing information. + +2015-10-05 0.0.0(r3) +The script VM is finally enabled. +Call stack was reimplemented, so the function calling method +changed again. +Unified Float data types. + +2015-10-04 0.0.0(r2) +Function calling method was changed. + +2015-10-03 0.0.0 (r1) +VM functions are ported to the new code base. +But the script VM is still not enabled. + +2015-10-02 0.0.0 (r0) +The sources are uploaded to github... +Changes before this revision is just building the backbone. +Basic scene managing, bullet managing were done. +The script VM existed but was incomplete.
\ No newline at end of file @@ -1,29 +1,11 @@ -Installing a game is really useless, isn't it? -So just compile it! +I dunno why to install it actually. -A brief guide for compiling BLR -Required SDKs: -OpenAL -ogg -vorbis -DirectX(Windows only) -OpenGL(Linux only) -SDL(Linux only) +Building dependencies on debian-based systems: +libfreetype6-dev libopenal-dev libsdl2-dev libpng12-dev libjpeg62-turbo-dev libvorbis-dev libogg-dev -Steps to do: -1. Get the source code. - You can choose from svn or the official packaged release. - The code from svn will always be newer than the official - packaged release. -2. Get required SDKs mentioned above. - Piece of cake. -3. Use Visual Studio(Windows) or Code::Blocks(Linux), create - project. Configure it correctly. - If you'd like to do it, you can also write a Makefile - yourself. -4. Hit build (or type make)! -5. If it failed, check step 2 and 3, then repeat step 4... +If you are using another Linux distribution, install the corresponding packages. +After that a simple 'make' should do the work for you. If it doesn't, you have to modify it manually... -Warning: -Some revisions in the svn repo has noticeable problems. -Always build the latest svn revision or official release! +(Important) For Windows users: +PLEASE DO NOT BUILD THE CURRENT VERSION!!! +SMELT now only supports OpenGL. It works on Windows indeed but very inefficiently... @@ -0,0 +1 @@ +Perhaps we don't need this file now?... diff --git a/README.md b/README.md new file mode 100644 index 0000000..cf9196d --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# Bullet Lab Remix +_Bullet Lab got its new life here._ + +This is a bullet dodging game with level scripting, +plugins, console and several other features. + +The current in-development release is: + +## Bullet Lab Remix 3 - Mind in Circuits + +Currently it's still in heavy development and is very incomplete. + +Building is tested on debian sid and Arch Linux. + +Current working status: + +> the BLR Script VM: 90% +> VM functions: 40% +> the BLR js VM: 0% +> bullet system: 40% +> tower system: 0% +> laser system: 0% +> the player: 40% +> menus: 30% +> plugin system & api: 5% +> console: 0% +> score & record: 0% +> master: 60% + +If you are looking for older BLR releases, please +have a look into the archive folder. + +Bullet Lab Remix is built upon SMELT: +https://github.com/BearKidsTeam/SMELT + +Bullet Lab Remix 3 is licensed under the terms of GPLv3. +Read COPYING for more information. + +Older Bullet Lab Remix releases were released under the terms +of the BSD license. + +## About the releases +BLR 1 - The Creature of Colour was completed in early 2014. +BLR 2 - The Reunion of Rainbow was completed in late 2014. +BLR 3 - Mind in Circuits was started in June 2015 and is now in active development. +BLR 3.5 - Assessment Collection has been planned. + +Only the mainline will stay in the root directory of the repo, +older releases will go to the archive folder (I don't think +git branching is suitable for the case).
\ No newline at end of file @@ -0,0 +1,6 @@ +Laser (depends on smPath) +smPath +Tower +Plugin system +Console +and much more...
\ No newline at end of file @@ -1 +1 @@ -1.0.0-0 (r101)
\ No newline at end of file +0.0.1
\ No newline at end of file diff --git a/archive/Readme b/archive/Readme new file mode 100644 index 0000000..8eb62d0 --- /dev/null +++ b/archive/Readme @@ -0,0 +1,3 @@ +Archive of the dead old releases... + +They might be re-released in the form of level packs someday...
\ No newline at end of file diff --git a/archive/blr1/ChangeLog b/archive/blr1/ChangeLog new file mode 100644 index 0000000..6125f79 --- /dev/null +++ b/archive/blr1/ChangeLog @@ -0,0 +1,40 @@ +0.5.3
+-Fixed a problem in bullet position calculating.
+0.5.4
+-Replaces arc- functions to make calculating more efficient.
+0.7.0
+-Levels->7
+0.7.4
+-Clear range added
+0.8.4
+-Limiting clear range usage. Freezing Level design.
+0.8.6
+-Adding readme files. Fixing small bugs in program.
+-Semi-Collision Effects.
+0.8.7α
+-Spliting main.cpp into mulitiple headers.
+-Compressing resources.
+-Removing dependency of Bass.dll
+0.8.8α
+-Maintaince version.
+0.8.9α
+-Rewriting menus, pause etc. added.
+-Highscore recording. Basic level complete information.
+-Average FPS.
+-Preparation for porting to Linux.
+1.0.0 Pre-Release
+-Upgrading hge graphic engine to DirectX9.
+-Removing some cheats.
+-Linux version built successfully(using hge-unix).
+1.0.1 Pre-Release
+-Embedding HGE into project, getting rid of hge.dll
+-Merging configuration program.
+-Adding first start up configuration, no initial configuration file needed.
+1.0.2 Pre-Release
+-Sync code with Bullet Lab Remix II.
+-Status->Main Functions Frozen+Core Frozen+Level Frozen.
+-Fix some bugs with the keyboard and the render engine.
+-Trying SFX and Music.
+1.0.3 Stable Release
+-Fix hidden bullets.
+-Build up for final release.
\ No newline at end of file diff --git a/archive/blr1/Compiling.txt b/archive/blr1/Compiling.txt new file mode 100644 index 0000000..b883265 --- /dev/null +++ b/archive/blr1/Compiling.txt @@ -0,0 +1,9 @@ +Compiling BLR under Linux +1. Get HGE UNIX here: http://icculus.org/hge-unix/. +2. Replace the same files in hge-unix using the files in /hgehack. +3. Compile and install hge-unix. +4. Run compile if hge-unix has been successfully installed. +5. Enjoy BLR by executing BulletLabRemix! +If you have any problem compiling BLR, just write a feedback. +Email: chirs241097@163.com +Forum: http://tieba.baidu.com/f?kw=chrisoft
\ No newline at end of file diff --git a/archive/blr1/Compiling_zh.txt b/archive/blr1/Compiling_zh.txt new file mode 100644 index 0000000..8f3acf8 --- /dev/null +++ b/archive/blr1/Compiling_zh.txt @@ -0,0 +1,9 @@ +在Linux下编译BLR +1. 获取HGE-UNIX: http://icculus.org/hge-unix/。 +2. 用/hgehack内的文件替换hge-unix里的同名文件。 +3. 编译并安装hge-unix。 +4. 如果hge-unix已经成功安装,运行compile脚本。 +5. 运行BulletLabRemix! +如果你在编译时遇到了任何问题,请与作者联系。 +Email: chirs241097@163.com +贴吧: http://tieba.baidu.com/f?kw=chrisoft diff --git a/archive/blr1/README.txt b/archive/blr1/README.txt new file mode 100644 index 0000000..e5b1ddc --- /dev/null +++ b/archive/blr1/README.txt @@ -0,0 +1,178 @@ +/*************************************\
+ * Bullet Lab Remix HGE 1.0.3 *
+ * The Creature of Colour *
+ * CopyLeft Chris Xiong *
+ * Readme File for binary release *
+\*************************************/
+*************************************************************
+First, I'm glad to annonce the first stable release of BLR.
+After three and a half of lazy work, BLR1 Stable came out at last.
+Well, this is just the start. Let's expect BLR2!
+*************************************************************
+WARNING: Everything works correctly on my computer, but I can't guarantee the same
+thing will happen on your computer!
+----------------------------------------------------------------------------------
+Why I am writting this "Game":
+
+-Do not care details...
+----------------------------------------------------------------------------------
+Attention: If you are using Linux, just ignore this and read Compiling.txt
+Basic requirements of this game:
+
+Hardware requirements:
+CPU: Better than none.
+RAM: If you are using Windows XP+, you can ignore this.
+GPU: Any GPU supporting DirectX 9 is okay.
+A keyboard is necessary. Although this game doesn't use a mouse to control, you'd
+better have one to use your operating system...
+
+Software requirements:
+If your computer is not from the last century and the game wouldn't start, check...
+If DirectX 9 Runtime is installed.
+If you are using Windows XP or later version.
+
+Something else...:
+CheatEngine (Optional, recommended for people who are urgent to highscores.)
+No Trypophobia! (Important!!)
+
+Additional:
+To run it in High FPS mode (much better experience than Low FPS mode)
+-Turn on "Lock FPS to the highest level" in BLR config
+-Configure your GPU correctly. A mis-configured GPU can cause many problems...
+-Have a stronger CPU. Quad core is recommended.
+
+If FPS is only around 500... Just give it up... Turn on Low FPS mode in BLR config.
+
+Another small tip:
+I found that Intel HD Graphics always get the highest FPS easily...
+----------------------------------------------------------------------------------
+[Attention!]: The topic below is for those who have tried to play but failed.
+
+Operating with keyboard:
+Arrow keys: Move
+Shift+Arrow keys: Precise move (If you ignore this you will probably NEVER pass easy)
+(Well, I was joking. You can "Continue" anyway.)
+Z (or X, determined in your configuration): Call Clear Range
+Z/Enter(In menus): Confirm
+Esc(In game): Pause
+
+Collision & "Semi-collision":
+Only a VERY close distance will be treat as a collision (about 2 pixels, imagine that.)
+Other bullets passed by you(in 4 pixels) will be treat as a semi-collision, which would
+plus your score by 2000.
+
+Configuring the player:
+You can customize the player in the Player Profile menu.
+You can determine the player's moving speed(both in normal mode or precise mode).
+And a clear range bonus.
+You should know that you are customizing yourself in the limit of "Ability Points".
+----------------------------------------------------------------------------------
+Softwared used to develop Bullet Lab Remix:
+Visual Studio 2012 (Compiler)
+DirectX SDK (Aug. 2009)
+HGE (Packed DirectX APIs)
+Photosohop CS6 for graphic resources
+Inkscape for vector graphics
+Porting to Linux is also done by Chris Xiong, using Kwrite and Geany.
+----------------------------------------------------------------------------------
+Frequently Asked Questions and my own problems
+
+Q: ...The game crashes and quit automatically?
+A: I didn't have that problem... This may be caused by a wrong RAM access.
+ Make sure you have enough RAM to run this game.
+
+Q: It stopped working just before the menu appears...
+A: Well, I use "freopen" for file operations. M$ said that's not safe but I insisted..
+ Just be patient and restart the game.
+
+Q: Huge RAM usage?
+A: The main code uses less than 5 MB RAM. However, levels with too much bullets may
+ use a huge amount of RAM.
+
+Q: "Cannot decompress resources!"
+A: Resources used in this game have been compressed with Microsoft LZ compresss program.
+ If you meet this fault, check if there's already a folder called "Decompressed" in
+ the Resources folder. If so, delete it. (Now the program could delete it automatically
+ even the error has already been reported. So you may not find this folder. Just restart
+ the game)
+ If that doesn't work, check if "expand.exe" is included in your system.
+
+Q: Everything runs slowly!
+A: Check FPS which is displayed at the right bottom corner of the game. The game
+ should run at at least 850 FPS (In HighFPS mode).
+ If it is below 700 (at the menu scene), turn on Low FPS mode using the
+ configure application.
+ If it is fixed at 60 and it is running EXTREMELY slowly, try turn off vertical
+ sync first (in your graphics driver settings). If it doesn't work, turn on Low
+ FPS mode.
+ Please note that Low FPS mode may provide a horrible experience...
+
+Q: What is "Average FPS"?
+A: Average FPS is the average of FPS during the game(WTF!). It showed how your computer felt during
+ the game...
+
+Q: Tell me something about the UI.
+A: The main menu:
+ Start---------------Enter the difficulty selecting menu.
+ Highscore && Records--------Enter highscore view selecting menu.
+ Options--------------Enter options menu.
+ Credits--------------Show a long, dull credits list.
+ Exit---------------Parents are coming!!!
+ The difficulty selecting menu:
+ Easy---------------Difficulty without difficulty.
+ Normal--------------For most human-beings.
+ Extreme--------------Who would like to try?
+ Free Play Mode----------No deaths, go for highest score.
+ Back---------------Giving up?
+ The Options menu:
+ Fullscreen: ...----------Toggle fullscreen, the settings will be applied after restarting the game.
+ FPS Level: ...-------------Toggle FPS level mode. Possible modes are: Low FPS, Highest and Natural.
+Use Key . for Clear Range------Change the key to call Clear Range.
+ Player Profile-------------Customize the player.
+ Back------------------Done setting, I'm ready!
+Tips:
+ If supported, you can toggle fullscreen in game by pressing Alt+Enter. However this won't affect your settings.
+ Use key Left/Right to adjust values in Player Profile page.
+
+Q: How to load default configuration?
+A: To load default configuration, just delete blr.cfg. Then start BLR, you can do your initial settings again.
+ Attention: YOUR SCORE FILE WILL BE CLEARED AS WELL!!
+
+Q: When I use a Clear Range, FPS falls terriblely.
+A: This is normal... Because the code of Clear Range is terribly inefficient...
+
+Q: Some levels are impossible to pass!
+A: That may be true... (I got the same result from some of the testers)
+ However this is an excuse, I think.
+
+Q: Ain't there any background?
+A: It is painful to think about a background...
+ So think about your own background... everyone will have his own version...(Chemistry Laboratory etc.)
+
+Q: Where to get the source code?
+A: The source code is terribly ugly...
+ However, when I release the binary version, I will also release a tarball of
+ the source code.
+ To be more creative, WRITE YOUR OWN CODE.
+----------------------------------------------------------------------------------
+Version History && Planning Versions
+For detailed information, view CHANGELOG.txt.
+
+1.0.3sr: Hope this fix for hidden bullets could work!
+1.0.2pr: Some input event fixes. Fixed a problem in the render engine. Get rid of the config program.
+1.0.1pr: Get rid of hge.dll. Merging hge into project.
+1.0.0pr: Fixing small bugs and cheats. Upgrading DirectX to DX9. Trying porting to Linux.
+0.8.9α : Adding a lot of lacking functions in earlier versions.
+0.8.8α : Small fixes for adding functions.
+0.8.7α : Preparation for 1.0.0, categorizing code, bug fixes, resoureces compression andadding some effects etc.
+0.8.6α : Second released version, small bugs fixed, a better icon for configure program.
+0.8.4α : First released version, most cheats are removed, level frozen version(No new levels will be added).
+0.7.4 : A developer only version, the game system is almost completed.
+0.7.0 : A developer only version, 7 levels available now.
+0.5.3 : A developer only version, 5 levels available now, added collision and semi-collision detection.
+0.2.1 : First tower, first bullet. 2 basic levels completed. Basic effects added.
+0.0.1 : Only a main menu!
+
+2013-5-11: Project Started
+Let's remember the great day!
+Thank everyone that waste time to test my poor project!
\ No newline at end of file diff --git a/archive/blr1/README_zh.txt b/archive/blr1/README_zh.txt new file mode 100644 index 0000000..d4f8f25 --- /dev/null +++ b/archive/blr1/README_zh.txt @@ -0,0 +1,166 @@ +/*************************************\
+ * Bullet Lab Remix HGE 1.0.3 * ->后文将称其为BLR
+ * The Creature of Colour *
+ * 版权所无 Chris Xiong *
+ * 可执行文件自述 *
+\*************************************/
+*************************************************************
+首先,非常高兴地“宣布”BLR1的正式版终于可以发布了!
+经过三个半月的偷懒工作,BLR1的正式版终于出来了。。
+当然,这只是个开始。等待BLR2的开发吧!
+*************************************************************
+警告:不保证本程序在所有计算机上都能正常运行。
+----------------------------------------------------------------------------------
+为什么写这破玩意?
+
+-不要在意细节。。。
+----------------------------------------------------------------------------------
+注意:如果你正在使用Linux,无视这部分内容好了。直接去看Compiling_CHS.txt。
+运行BLR的基本要求:
+
+硬件需求
+CPU: 要比没有强。
+RAM: 如果你的操作系统能够启动,这项可以忽略。
+GPU: 任何支持DirectX9的GPU都行。
+键盘是必要的。虽然本游戏不需要鼠标来操作,你也最好用鼠标来使用来控制操作系统。。。
+
+软件需求
+如果你的电脑不是从上世纪来的,但是游戏仍无法启动,检查:
+DirectX9运行库是否已经安装
+你运行的是否是Windows XP或以后的版本。
+
+其他
+CheatEngine (非必需。这是为那些特别想要高分的人准备的)
+没有密集恐惧症(非常重要!)
+
+附加条件:
+要想在高帧率模式下运行(1000FPS,流畅度自行想象),你需要:
+-在设置程序中打开"Lock FPS to the highest level"(将帧率锁定在最大值)
+-正确地设置你的GPU。错误的设置可能导致许多问题。。
+-要有一颗足够快的CPU,最好四核
+
+如果FPS只在500附近(或者更低),放弃吧。。。在设置程序内打开
+"Low FPS mode"(低帧率模式,60FPS)
+
+无意义内容:
+我发现Intel集成显卡总是非常容易地达到1000FPS。。。
+----------------------------------------------------------------------------------
+注意:以下内容是为尝试过但是失败了的人写的。
+
+如何用键盘操作:
+方向键:移动
+Shift+方向键:精确移动(如果你无视这个你可能永远无法通过Easy关)
+(当然,我只是开玩笑。无论如何你也可以选择继续。。。)
+Z(或者是X,取决于你的设置):调用Clear Range。
+(在菜单中)Z或回车:确认
+Esc(在游戏界面):暂停
+
+碰撞和所谓的半碰撞(<-自造词)
+只有【特别近】的接触将会被当作是碰撞(大于仅有两个像素,想象一下)
+其他从你附近飞过的子弹(约4像素)将会被当作“半碰撞”,每次将加分2000点。
+
+设置你所控制的小方块:
+你可以在玩家设定菜单自行决定小方块的属性。
+你可以设置的项目有移动速度(普通移动和精确移动速度都可以设定)和额外的Clear Range。
+当然,不能随便设置。需要在"Ability Points"(能力点)的限制之内。
+----------------------------------------------------------------------------------
+开发所用的软件
+Visual Studio 2012(编译器)
+DirectX SDK (Aug. 2009)
+HGE(封装DirectX接口)
+Photoshop CS6处理图形资源
+Inkscape处理矢量图
+移植到Linux的工作也是由作者自行完成的。使用了kwrite和Geany。
+----------------------------------------------------------------------------------
+常见问题和我自己的问题
+
+Q: 游戏崩溃了并自动退出。。
+A: 我没遇到过此类问题。。可能是由于错误的RAM存取。
+ 保证你有足够的内存。
+
+Q: 它在菜单出现前就停止工作。。。
+A: 我用了freopen来处理文件。微软说那可能不安全但我没有理他。重启游戏就好了。
+
+Q: 巨大的RAM开销。。
+A: 主程序仅占用5MB内存。但是,子弹太多的关卡可能用很多的RAM。
+
+Q: "Cannot decompress resources!"(无法解压资源!)
+A: 本游戏使用的资源已经使用微软的压缩程序压缩过了。如果你遇到了这个问题,检查游戏资源文件夹
+ (/Resources/)内是否已经有了一个叫做"Decompressed"的文件夹。如果有,删掉它。(即使已经报错,
+ 程序现在已经可以自动删掉它了,所以你可能找不到这个文件夹,重启游戏即可)
+ 如果那不管用,检查/system32里是否有expand.exe。
+
+Q: 一切都运行缓慢!
+A: 看看显示在右下角的FPS数。此游戏应该至少运行在850FPS(在高帧率模式下)。
+ 如果主菜单的FPS也小于700,用设置程序打开低帧率模式。
+ 如果帧率固定在60FPS并且运行【极其】缓慢,先试试关掉显卡的垂直同步。不行再用低帧率模式。
+ 请注意低帧率模式可能带来接近恐怖的体验。。。
+
+Q: 什么是"Average FPS"(平均帧率)?
+A: Average FPS就是平均帧率(什么玩意儿。。)。它表示了你的电脑的在游戏中的受罪程度。。。
+ (CPU压力什么的)
+
+Q: 界面上都是什么意思。。
+A: 主菜单:
+ Start---------------开始。进入难度选择界面
+ Highscore && Records--------高分和记录。在这里回顾高分(记录是数据,不是录像!)
+ Options--------------选项菜单
+ Credits--------------制作者。显示一个长而无聊的制作者名单(就一个“制作者”,对吧。。)
+ Exit---------------退出。家长来了!!!
+ 难度选择菜单:
+ Easy---------------没有难度的难度。
+ Normal--------------为大部分人准备的难度。
+ Extreme--------------谁愿意试试?
+ Free Play Mode----------不死模式,刷分专用。
+ Back---------------放弃了?
+ 选项菜单:
+ Fullscreen: ...----------切换全屏显示。重启游戏后生效。
+ FPS Level: ...-------------切换FPS模式。可能的选项为:Low FPS(低帧率),Highest(最高)和Natural(不限制)。
+Use key . for Clear Range------选择用X或者是Z键使用Clear Range
+ Player Profile-------------自定义玩家属性。
+ Back------------------完成设置。
+Tips:
+ 如果电脑支持,你可以在游戏中用Alt+回车来切换全屏。但这不会改写配置文件。
+ 在玩家设定页面内用左右键来调整数值。
+
+Q: 如何恢复原始设定?
+A: 只需要删除blr.cfg这个文件。然后启动BLR,就可以重新做初始化设定了。
+ 注意:你的分数文件也将被清空!
+
+Q: 用了Clear Range之后FPS严重下降。
+A: 这很正常。。Clear Range的代码效率不高。
+
+Q: 有些关过不了!
+A: 可能是真的吧(我从一些测试人员那里也得到了相同的结果)
+ 但是这可能是个借口,我想。(语序错乱)
+
+Q: 没有背景(所谓的background)?
+A: 想一个背景是痛苦的事情。。
+ 自己YY一个吧。。每个人都会有他自己的版本。。(化学实验室之类的)
+
+Q: 如何取得源代码?
+A: 代码写的非常丑陋。。
+ 但是每次发布可执行文件时,我也会发布一个源代码包。
+ 为了创新,【还是写自己的代码】。
+----------------------------------------------------------------------------------
+版本历史和以后的版本
+有关版本的详细信息,请见ChangeLog
+
+1.0.3sr: 希望这次解决隐藏子弹的方案没有问题。。
+1.0.2pr: 解决了一些键盘和渲染引擎的问题。将配置程序并入游戏中。
+1.0.1pr: 不再依赖hge.dll。将hge并入工程。
+1.0.0pr: 解决小的问题,封一部分cheats。升级DirectX到DX9。移植Linux版工作开始。
+0.8.9α : 添加了一堆早期版本缺失的功能。
+0.8.8α : 为添加功能做准备。
+0.8.7α : 为1.0.0做准备。代码分类,解决小问题,压缩资源并添加一些特效。
+0.8.6α : 第二个发布版本,解决了一部分问题。换了图标。
+0.8.4α : 第一个发布版本。移除了一部分内挂(。。。)。关卡冻结版本(不会再添加新的关卡)
+0.7.4 : 开发者版本。游戏系统已经基本完成。
+0.7.0 : 开发者版本。有7个关卡。
+0.5.3 : 开发者版本。已有5关。添加了碰撞检测。
+0.2.1 : 一切的开始。写完了两关。最基本的效果。
+0.0.1 : 菜单。。
+
+2013-5-11: 工程开始。
+让我们记住这伟大的一天!
+感谢所有浪费时间来测试这个烂工程的人!
\ No newline at end of file diff --git a/archive/blr1/VERSION.txt b/archive/blr1/VERSION.txt new file mode 100644 index 0000000..245832a --- /dev/null +++ b/archive/blr1/VERSION.txt @@ -0,0 +1 @@ +1.0.3 Stable release
\ No newline at end of file diff --git a/archive/blr1/resources/bg.png b/archive/blr1/resources/bg.png Binary files differnew file mode 100644 index 0000000..bb0a8a2 --- /dev/null +++ b/archive/blr1/resources/bg.png diff --git a/archive/blr1/resources/blnsns.png b/archive/blr1/resources/blnsns.png Binary files differnew file mode 100644 index 0000000..8651ee1 --- /dev/null +++ b/archive/blr1/resources/blnsns.png diff --git a/archive/blr1/resources/charmap.fnt b/archive/blr1/resources/charmap.fnt new file mode 100644 index 0000000..4d90feb --- /dev/null +++ b/archive/blr1/resources/charmap.fnt @@ -0,0 +1,99 @@ +[HGEFONT]
+
+Bitmap=blnsns.png
+
+Char=" ",1,1,3,30,-1,5
+Char="!",5,1,5,30,1,0
+Char=""",11,1,8,30,0,0
+Char="#",20,1,18,30,0,0
+Char="$",39,1,12,30,0,0
+Char="%",52,1,20,30,0,0
+Char="&",73,1,19,30,0,0
+Char="'",93,1,4,30,0,1
+Char="(",98,1,10,30,0,-1
+Char=")",109,1,10,30,-1,0
+Char="*",120,1,11,30,0,-1
+Char="+",132,1,12,30,-1,0
+Char=",",145,1,7,30,-1,0
+Char="-",153,1,10,30,0,0
+Char=".",164,1,6,30,0,0
+Char="/",171,1,10,30,-1,-1
+Char="0",182,1,16,30,0,0
+Char="1",199,1,7,30,0,1
+Char="2",207,1,15,30,-1,-1
+Char="3",223,1,14,30,-1,0
+Char="4",238,1,14,30,0,0
+Char="5",1,32,14,30,-1,0
+Char="6",16,32,14,30,0,0
+Char="7",31,32,14,30,-1,-1
+Char="8",46,32,13,30,-1,0
+Char="9",60,32,14,30,0,0
+Char=":",75,32,6,30,0,0
+Char=";",82,32,7,30,-1,0
+Char="<",90,32,10,30,0,0
+Char="=",101,32,12,30,0,0
+Char=">",114,32,10,30,0,0
+Char="?",125,32,12,30,-1,0
+Char="@",138,32,17,30,0,0
+Char="A",156,32,19,30,-1,0
+Char="B",176,32,16,30,1,0
+Char="C",193,32,17,30,0,-1
+Char="D",211,32,17,30,1,0
+Char="E",229,32,14,30,1,0
+Char="F",1,63,13,30,1,0
+Char="G",15,63,18,30,0,0
+Char="H",34,63,17,30,1,1
+Char="I",52,63,5,30,1,1
+Char="J",58,63,7,30,0,1
+Char="K",66,63,16,30,1,-1
+Char="L",83,63,13,30,1,0
+Char="M",97,63,19,30,1,1
+Char="N",117,63,17,30,1,1
+Char="O",135,63,20,30,0,0
+Char="P",156,63,16,30,1,0
+Char="Q",173,63,20,30,0,0
+Char="R",194,63,15,30,1,0
+Char="S",210,63,13,30,1,-1
+Char="T",224,63,15,30,0,-1
+Char="U",1,94,16,30,1,1
+Char="V",18,94,17,30,0,0
+Char="W",36,94,25,30,0,0
+Char="X",62,94,15,30,0,0
+Char="Y",78,94,17,30,-1,0
+Char="Z",96,94,15,30,-1,0
+Char="[",112,94,9,30,1,0
+Char="\",122,94,8,30,0,0
+Char="]",131,94,9,30,0,1
+Char="^",141,94,13,30,0,0
+Char="_",155,94,14,30,-1,-1
+Char="`",170,94,9,30,0,0
+Char="a",180,94,15,30,0,0
+Char="b",196,94,15,30,0,0
+Char="c",212,94,11,30,0,0
+Char="d",224,94,15,30,0,0
+Char="e",240,94,13,30,0,0
+Char="f",1,125,10,30,-2,0
+Char="g",12,125,14,30,0,0
+Char="h",27,125,14,30,0,0
+Char="i",42,125,6,30,0,-1
+Char="j",49,125,8,30,-2,-1
+Char="k",58,125,15,30,0,0
+Char="l",74,125,5,30,0,0
+Char="m",80,125,21,30,0,0
+Char="n",102,125,14,30,0,0
+Char="o",117,125,14,30,0,0
+Char="p",132,125,15,30,0,0
+Char="q",148,125,15,30,0,0
+Char="r",164,125,10,30,0,-1
+Char="s",175,125,8,30,0,0
+Char="t",184,125,11,30,-2,0
+Char="u",196,125,15,30,0,0
+Char="v",212,125,13,30,0,0
+Char="w",226,125,21,30,0,-1
+Char="x",1,156,12,30,0,0
+Char="y",14,156,13,30,0,0
+Char="z",28,156,12,30,0,-1
+Char="{",41,156,10,30,0,-1
+Char="|",52,156,4,30,1,2
+Char="}",57,156,10,30,-1,0
+Char="~",68,156,15,30,-1,-1
diff --git a/archive/blr1/resources/credits.png b/archive/blr1/resources/credits.png Binary files differnew file mode 100644 index 0000000..14c2a49 --- /dev/null +++ b/archive/blr1/resources/credits.png diff --git a/archive/blr1/resources/ss1.png b/archive/blr1/resources/ss1.png Binary files differnew file mode 100644 index 0000000..19dd5c2 --- /dev/null +++ b/archive/blr1/resources/ss1.png diff --git a/archive/blr1/resources/ss2.png b/archive/blr1/resources/ss2.png Binary files differnew file mode 100644 index 0000000..5959cdf --- /dev/null +++ b/archive/blr1/resources/ss2.png diff --git a/archive/blr1/resources/tap.ogg b/archive/blr1/resources/tap.ogg Binary files differnew file mode 100644 index 0000000..1ef00b0 --- /dev/null +++ b/archive/blr1/resources/tap.ogg diff --git a/archive/blr1/resources/title.png b/archive/blr1/resources/title.png Binary files differnew file mode 100644 index 0000000..b4205c2 --- /dev/null +++ b/archive/blr1/resources/title.png diff --git a/archive/blr1/src/effects.h b/archive/blr1/src/effects.h new file mode 100644 index 0000000..044a803 --- /dev/null +++ b/archive/blr1/src/effects.h @@ -0,0 +1,88 @@ +//Chrisoft Bullet Lab Remix HGE
+//Effects Implementations
+//"Copyleft" Chrisoft 2013
+void SCEffect_Attatch()
+{
+ int cnt=rand()%8+3;
+ for (int ii=1;ii<=cnt;++ii)
+ {
+ int i;
+ if (bulcnt==0)
+ bulcnt=i=1;
+ else
+ {
+ for (i=1;i<=bulcnt;++i)
+ if (!bullet[i].exist)break;
+ if (i>bulcnt)bulcnt=i;
+ }
+ bullet[i].exist=true;
+ bullet[i].bullettype=254;
+ bullet[i].bulletpos.x=playerpos.x;
+ bullet[i].bulletpos.y=playerpos.y;
+ bullet[i].bulletdir.x=rand()%100-50;
+ bullet[i].bulletdir.y=rand()%100-50;
+ bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y;
+ bullet[i].dist=sqrt(bullet[i].dist);
+ bullet[i].bulletspeed=rand()%4+2;
+ bullet[i].bulletspr=new hgeSprite(SprSheet1,46,0,24,24);
+ bullet[i].bulletspr->SetColor(0x80FFFFFF);
+ }
+}
+void SCEffect_Process()
+{
+ for (int i=1;i<=bulcnt;++i)
+ {
+ if (!bullet[i].exist||bullet[i].bullettype!=254)continue;//If this bullet doesn't exist or is not of this type, do not render it.
+ if (!DisablePlayer)
+ {
+ if (LOWFPS)
+ {
+ bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20*17;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20*17;//Process bullet's y coor.
+ ++effskp;
+ if (effskp==7)
+ bullet[i].bulletspr->SetColor(bullet[i].bulletspr->GetColor()-0x1F000000),effskp=0;
+ }
+ else
+ {
+ bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ ++effskp;
+ if (effskp==7)
+ bullet[i].bulletspr->SetColor(bullet[i].bulletspr->GetColor()-0x1000000),effskp=0;
+ }
+ //bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ //bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ double dis=GetDist(bullet[i].bulletpos,playerpos);//Get distance between player and bullet
+ if (GETA(bullet[i].bulletspr->GetColor())<=0x0A||bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)
+ //If collision is detected or the bullet flys out of screen, delete it.
+ {
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ else
+ {
+ bullet[i].bulletspr->RenderEx(bullet[i].bulletpos.x,bullet[i].bulletpos.y,0,0.2,0);
+ }
+ }
+
+}
+void BulletEffect_Attatch(int n)
+{
+ bullet[n].scale=2;
+ bullet[n].effbrk=17;
+}
+void BulletEffect_Process(int n)
+{
+ if (bullet[n].scale<=1){bullet[n].scale=1;return;}
+ if (LOWFPS)
+ bullet[n].effbrk-=17;
+ else
+ --bullet[n].effbrk;
+ if (bullet[n].effbrk<=0)
+ bullet[n].scale-=0.04,bullet[n].effbrk=17;
+}
\ No newline at end of file diff --git a/archive/blr1/src/global.h b/archive/blr1/src/global.h new file mode 100644 index 0000000..85804e8 --- /dev/null +++ b/archive/blr1/src/global.h @@ -0,0 +1,297 @@ +//Chrisoft Bullet Lab Remix HGE
+//Global varibles and implementations
+//"Copyleft" Chrisoft 2013
+#include "hge.h"
+#include "hgefont.h"
+#include "hgegui.h"
+HGE *hge=0;
+HEFFECT snd;
+HTEXTURE tex;
+hgeQuad quad;
+hgeGUI *gui;
+hgeFont *fnt;
+hgeSprite *spr,*titlespr;
+//Here are some Varibles in Bullet Lab
+int Current_Position;//Where are we now.
+/*Scenes:
+0: main menu
+1: game scene
+2: tip scene
+3: start menu
+4: about scene
+5: death scene
+6: complete scene
+7: new highscore scene
+8: highscore scene
+9: highscore view scene
+10: highscore details scene
+11: Pause scene
+12: BackToTitle Confirm
+13: Options scene
+14: Player Profile scene
+*/
+HTEXTURE SprSheet1,SprSheet2,TexTitle,TexCredits;
+/*
+Texture Mapping:
+SprSheet1:
+Player 47,46,24,24
+Cursor 24,46,24,24
+Blue 0,0,24,24
+Green 23,0,24,24
+Pnt 46,0,24,24
+Purple 0,23,24,24
+Red 23,23,24,24
+White 46,23,24,24
+Yellow 0,46,24,24
+SprSheet2:
+Blue 0,0,44,44
+Green 44,0,44,44
+Purple 88,0,44,44
+Red 0,44,44,44
+White 44,44,44,44
+Yellow 88,44,44,44
+*/
+const double zero=1e-3;
+struct vector2d
+{
+ double x,y;
+};
+struct Bullet
+{
+ hgeSprite *bulletspr;
+ vector2d bulletpos;
+ vector2d bulletdir;
+ double dist;
+ int bullettype;
+ int redexplo,redattrib,oriexplo,whicnt;
+ double bulletspeed;
+ bool exist;
+ double scale;
+ int whirem,whiskp,yelbrk;
+ int lifetime;
+ bool scollable;
+ int effbrk;
+}bullet[10000];
+//Something about bullets:
+//bullettype:
+//1: dir-based green bullet
+//2: degree-based blue bullet (for clocks only)
+//3: 12direction-based blue bullet
+//4: yellow chaser bullet
+//5: purple slow down bullet
+//6: red exploding bullet
+//7: white stalled bullet
+//8: black shading bullet (dummy in version 1)
+//254: Semi-collision effect
+//255: Score point
+struct Tower
+{
+ hgeSprite *towerspr;
+ vector2d towerpos;
+ int towertype;
+ int towertimer,curtimer;
+ double bulletspeed;
+ int redexplo,whicnt,yelbrk;
+ int t3t;
+ bool exist;
+ bool effect;
+}tower[100];
+//t3t is for Tower3
+//0:All 12 directions
+//1:four default directions
+//2:random left/right
+//3:random up/down
+struct Line
+{
+ vector2d pos;
+ double radian;
+ DWORD color;
+ bool exist;
+}line[12];
+//Line is currently dummy.
+int bulcnt=0,towcnt=0,linecnt=0;
+vector2d playerpos;
+double playerrot;
+double playerspeed;
+double playerslospeed;
+double playerfulspd=0.2;
+double playerfulslospd=0.05;
+double clockrot,deltarot,deltadelta;
+double whirot,dwhirot;
+hgeSprite *playerspr;
+int frameleft;
+int level,part,clrtime,clrbns;
+int coll,semicoll,mode,dsmc,restarts;
+double clrrange;
+bool IfCallLevel;
+bool DisableAllTower=false;
+bool DisablePlayer=false;
+int frameskips=0,stepskips=0;
+bool IfShowTip=false,FadeTip=false;
+hgeFont *TipFont;
+char lasttip[200];
+int p2t1,p2t2,p2t3,p2t4;
+int whicnt,shots,clrusg;
+bool yelattrib;
+bool LOWFPS=false,diffkey=false;
+bool Complete=false;
+bool Refliction=false;
+double linerad=0;
+double bsscale;
+long long score,scminus;
+int frms;double averfps;
+int plrspd,plrslospd;
+int TenSeconds=10000,TwentySeconds=20000,ThirtySeconds=30000,AMinute=60000;
+int effskp=0;
+hgeSprite *Credits,*CreditsRail;
+double scroll;
+bool tfs;
+int fpslvl;
+
+void Error(char EC[],bool hgecreated=false)
+{
+ fprintf(stderr,EC);
+ hge->System_Log(EC);
+ if (hgecreated)
+ {
+ hge->System_Shutdown();
+ hge->Release();
+ }
+ exit(0);
+}
+inline double GetDist(const vector2d a,const vector2d b)
+{
+ return sqrtf((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
+}
+void ShowTip(char tip[])
+{
+ if (strcmp(tip,lasttip)!=0)
+ {
+ TipFont->SetColor(0x00FFFFFF);
+ }
+ memcpy(lasttip,tip,sizeof(lasttip));
+ DisableAllTower=true;
+ DisablePlayer=true;
+ if (hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_HIT)
+ {
+ //DisableAllTower=false;
+ //DisablePlayer=false;
+ //Current_Position=1;
+ FadeTip=true;
+ }
+ double width=TipFont->GetStringWidth(tip);
+ TipFont->printf(400-width/2,400,HGETEXT_LEFT,tip);
+ if (FadeTip)
+ {
+ if (LOWFPS)
+ {
+ if (TipFont->GetColor()>>24>=0x08)
+ TipFont->SetColor(TipFont->GetColor()-0x8000000);
+ else
+ {
+ DisableAllTower=false;
+ DisablePlayer=false;
+ Current_Position=1;
+ }
+ }
+ else
+ {
+ if (TipFont->GetColor()>>24>=0x01)
+ TipFont->SetColor(TipFont->GetColor()-0x1000000);
+ else
+ {
+ DisableAllTower=false;
+ DisablePlayer=false;
+ Current_Position=1;
+ }
+ }
+ return;
+ }
+ if (!LOWFPS)
+ {
+ if (TipFont->GetColor()>>24<=0xFE)
+ TipFont->SetColor(TipFont->GetColor()+0x01000000);
+ }
+ else
+ {
+ if (TipFont->GetColor()>>24<=0xF7)
+ TipFont->SetColor(TipFont->GetColor()+0x08000000);
+ }
+}
+void ClearAll()
+{
+ DisableAllTower=true;
+ bool none=true;
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist)continue;
+ if (LOWFPS)
+ {
+ if (tower[i].towerspr->GetColor()>>24>=0x08)
+ {
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()-0x8000000);
+ none=false;
+ }
+ }
+ else
+ {
+ if (tower[i].towerspr->GetColor()>>24>=0x01)
+ {
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()-0x1000000);
+ none=false;
+ }
+ }
+ }
+ if (none)
+ {
+ towcnt=0;
+ memset(tower,0,sizeof(tower));
+ }
+ none=true;
+ for (int i=1;i<=bulcnt;++i)
+ {
+ if (LOWFPS)
+ {
+ if (bullet[i].bulletspr->GetColor()>>24>=0x08)
+ {
+ bullet[i].bulletspr->SetColor(bullet[i].bulletspr->GetColor()-0x8000000);
+ none=false;
+ }
+ }
+ else
+ {
+ if (bullet[i].bulletspr->GetColor()>>24>=0x01)
+ {
+ bullet[i].bulletspr->SetColor(bullet[i].bulletspr->GetColor()-0x1000000);
+ none=false;
+ }
+ }
+ }
+ if (none)
+ {
+ bulcnt=0;
+ memset(bullet,0,sizeof(bullet));
+ }
+ none=true;
+ for (int i=1;i<=bulcnt;++i)if (bullet[i].bulletspr->GetColor()>>24>=0x3F){none=false;break;}
+ if (none)
+ bulcnt=0,memset(bullet,0,sizeof(bullet));
+}
+void SaySomethingAndBye(char *text)
+{
+ ClearAll();
+ DisableAllTower=false;
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip(text);
+ return;
+ }
+ Current_Position=0;
+ towcnt=bulcnt=0;
+ memset(tower,0,sizeof(tower));
+ memset(bullet,0,sizeof(bullet));
+ gui->Enter();
+}
diff --git a/archive/blr1/src/levels.h b/archive/blr1/src/levels.h new file mode 100644 index 0000000..d706f4a --- /dev/null +++ b/archive/blr1/src/levels.h @@ -0,0 +1,1880 @@ +//Chrisoft Bullet Lab Remix HGE
+//Level Implementations
+//"Copyleft" Chrisoft 2013
+void Level1Part1()
+{
+ //Level procedure
+ //Simple Level procedures should only run once during a level, you know.
+ if ((tower[CreateTower1(400,300,2000,1)].towerspr->GetColor()>>24)>=0x80)IfCallLevel=false;
+ Current_Position=2;
+ ShowTip("Welcome to Bullet Lab Remix...\nMove around and hit nothing, easy right?\n\Press Z to close these tips.");
+}
+void Level1Part2()
+{
+ frameleft=TenSeconds;
+ ++frameskips;
+ int secondtower=CreateTower1(567,300,2000,1);
+ if (tower[secondtower].towerspr->GetColor()==0x80FFFFFF)
+ tower[secondtower].towerspr->SetColor(0x00FFFFFF);
+ if (frameskips<10&&!LOWFPS&&!LOWFPS)return;
+ frameskips=0;
+ if ((tower[secondtower].towerspr->GetColor()>>24)<=0x80)
+ tower[secondtower].towerspr->SetColor(tower[secondtower].towerspr->GetColor()+0x01FFFFFF);
+ if (tower[1].towerpos.x>=233)--tower[1].towerpos.x;
+ if (tower[1].towerpos.x<233)
+ {
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Want another tower?");
+ IfCallLevel=false;
+ }
+ }
+}
+void Level1Part3()
+{
+ frameleft=TenSeconds;
+ tower[1].bulletspeed=4;
+ tower[1].towertimer=1500;
+ tower[2].bulletspeed=4;
+ tower[2].towertimer=1500;
+ IfCallLevel=false;
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Maybe faster bullets will kill you?");
+ IfCallLevel=false;
+ }
+}
+void Level1Part4()
+{
+ frameleft=TenSeconds;
+ tower[1].bulletspeed=2;
+ tower[1].towertimer=100;
+ tower[2].bulletspeed=2;
+ tower[2].towertimer=100;
+ IfCallLevel=false;
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("There are two things to tell you.\nFirst one is that this game has very\
+ loose collision detection.\nNext one is two machineguns are ready for\
+ the next level...");
+ IfCallLevel=false;
+ }
+}
+void Level2Part0()
+{
+ frameleft=50;
+ if (towcnt==2)
+ {
+ ClearAll();
+ return;
+ }
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ DisableAllTower=false;
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Level 2 - Divide and Conquer!");
+ IfCallLevel=false;
+ }
+ if (Current_Position==1)
+ {
+ frameleft=0;
+ p2t1=p2t2=p2t3=p2t4=0;
+ return;
+ }
+}
+void Level2Part1()
+{
+ frameleft=TwentySeconds;
+ if (p2t1==0)p2t1=CreateTower1(399,299,1000,2);
+ if (p2t2==0)p2t2=CreateTower1(401,299,1000,2);
+ if (p2t3==0)p2t3=CreateTower1(399,301,1000,2);
+ if (p2t4==0)p2t4=CreateTower1(401,301,1000,2);
+ bool none=true;
+ if (!LOWFPS)
+ {
+ if (tower[p2t1].towerpos.x>=10)tower[p2t1].towerpos.x-=0.4075,none=false;
+ if (tower[p2t1].towerpos.y>=10)tower[p2t1].towerpos.y-=0.3,none=false;
+ if (tower[p2t2].towerpos.x<=766)tower[p2t2].towerpos.x+=0.3813,none=false;
+ if (tower[p2t2].towerpos.y>=10)tower[p2t2].towerpos.y-=0.3,none=false;
+ if (tower[p2t3].towerpos.x>=10)tower[p2t3].towerpos.x-=0.4453125,none=false;
+ if (tower[p2t3].towerpos.y<=566)tower[p2t3].towerpos.y+=0.3,none=false;
+ if (tower[p2t4].towerpos.x<=766)tower[p2t4].towerpos.x+=0.455859,none=false;
+ if (tower[p2t4].towerpos.y<=566)tower[p2t4].towerpos.y+=0.3,none=false;
+ }
+ else
+ {
+ if (tower[p2t1].towerpos.x>=10)tower[p2t1].towerpos.x-=0.4075*10,none=false;
+ if (tower[p2t1].towerpos.y>=10)tower[p2t1].towerpos.y-=0.3*10,none=false;
+ if (tower[p2t2].towerpos.x<=766)tower[p2t2].towerpos.x+=0.3813*10,none=false;
+ if (tower[p2t2].towerpos.y>=10)tower[p2t2].towerpos.y-=0.3*10,none=false;
+ if (tower[p2t3].towerpos.x>=10)tower[p2t3].towerpos.x-=0.4453125*10,none=false;
+ if (tower[p2t3].towerpos.y<=566)tower[p2t3].towerpos.y+=0.3*10,none=false;
+ if (tower[p2t4].towerpos.x<=766)tower[p2t4].towerpos.x+=0.455859*10,none=false;
+ if (tower[p2t4].towerpos.y<=566)tower[p2t4].towerpos.y+=0.3*10,none=false;
+ }
+ if (none)IfCallLevel=false;
+}
+void Level2Part2()
+{
+ frameleft=TenSeconds;
+ tower[p2t1].bulletspeed=tower[p2t2].bulletspeed=4;
+ tower[p2t3].bulletspeed=tower[p2t4].bulletspeed=4;
+ IfCallLevel=false;
+}
+void Level2Part3()
+{
+ frameleft=ThirtySeconds;
+ tower[p2t1].bulletspeed=tower[p2t2].bulletspeed=1;
+ tower[p2t3].bulletspeed=tower[p2t4].bulletspeed=1;
+ tower[p2t1].towertimer=tower[p2t2].towertimer=100;
+ tower[p2t3].towertimer=tower[p2t4].towertimer=100;
+ IfCallLevel=false;
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Got ready for being hunted by four machineguns?\n\
+Don't tell me you've got stuck just here...");
+ IfCallLevel=false;
+ }
+}
+void Level3Part0()
+{
+ frameleft=50;
+ if (towcnt==4&&(mode!=2))
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ if (mode==2)
+ ShowTip("Let's start from a higher position...\n\
+Level 3 - Blue Masters");
+ else
+ ShowTip("Time for something new now...\n\
+Level 3 - Blue Masters");
+ IfCallLevel=false;
+ }
+ if (Current_Position==1)
+ {
+ frameleft=0;
+ return;
+ }
+}
+void Level3Part1()
+{
+ frameleft=ThirtySeconds;
+ ++frameskips;
+ if (towcnt==4)towcnt=0;
+ deltadelta=0.004363322313;
+ int towerclk=CreateTower2(400,300,100,1,true);
+ if (tower[towerclk].towerspr->GetColor()==0x80FFFFFF)
+ tower[towerclk].towerspr->SetColor(0x00FFFFFF);
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ if ((tower[towerclk].towerspr->GetColor()>>24)<=0x80)
+ tower[towerclk].towerspr->SetColor(tower[towerclk].towerspr->GetColor()+0x01FFFFFF);
+ else IfCallLevel=false;
+}
+//L3P2: /*Magic, DO NOT TOUCH!!*/
+void Level3Part2()
+{
+ frameleft=TenSeconds;
+ if (towcnt==1)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Are you scared?\nI'm just joking last time!");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower1(233,300,500,2);
+ CreateTower1(567,300,500,2);
+ int tmp=CreateTower3(100,100,1000,1,true);
+ tower[tmp].t3t=1;
+ tmp=CreateTower3(300,100,1000,1,true);
+ tower[tmp].t3t=1;
+ tmp=CreateTower3(500,100,1000,1,true);
+ tower[tmp].t3t=1;
+ tmp=CreateTower3(700,100,1000,1,true);
+ tower[tmp].t3t=1;
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level3Part3()
+{
+ frameleft=TwentySeconds;
+ if (towcnt==6&&IfShowTip)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Got stuck in my pentagon...");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower3(30,10,500,2,true);
+ CreateTower3(746,10,500,2,true);
+ CreateTower3(30,556,500,2,true);
+ CreateTower3(746,556,500,2,true);
+ for (int i=1;i<=4;++i)
+ tower[i].t3t=0;
+ CreateTower1(5,10,1000,2);
+ CreateTower1(771,10,1000,2);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level3Part4()
+{
+ frameleft=TwentySeconds;
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towertype==3)tower[i].towertimer=300;else tower[i].towertimer=500;
+ int aa=CreateTower1(5,556,500,2);
+ int bb=CreateTower1(771,556,500,2);
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ if (tower[aa].towerspr->GetColor()==0x80FFFFFF)
+ tower[aa].towerspr->SetColor(0x00FFFFFF);
+ if (tower[bb].towerspr->GetColor()==0x80FFFFFF)
+ tower[bb].towerspr->SetColor(0x00FFFFFF);
+ if ((tower[aa].towerspr->GetColor()>>24)<=0x80)
+ tower[aa].towerspr->SetColor(tower[aa].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+ if ((tower[bb].towerspr->GetColor()>>24)<=0x80)
+ tower[bb].towerspr->SetColor(tower[bb].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level3Part5()
+{
+ frameleft=ThirtySeconds;
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ for (int i=1;i<=4;++i)tower[i].t3t=1;
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towertype==1)
+ tower[i].towertimer=750;
+ bool none=true;
+ if (tower[1].towerpos.x<=120)++tower[1].towerpos.x,none=false;
+ if (tower[1].towerpos.y<=80)++tower[1].towerpos.y,none=false;
+ if (tower[2].towerpos.x>=660)--tower[2].towerpos.x,none=false;
+ if (tower[2].towerpos.y<=80)++tower[2].towerpos.y,none=false;
+ if (tower[3].towerpos.x<=120)++tower[3].towerpos.x,none=false;
+ if (tower[3].towerpos.y>=480)--tower[3].towerpos.y,none=false;
+ if (tower[4].towerpos.x>=660)--tower[4].towerpos.x,none=false;
+ if (tower[4].towerpos.y>=480)--tower[4].towerpos.y,none=false;
+ if (none)IfCallLevel=false;
+}
+void Level3Part6()
+{
+ frameleft=ThirtySeconds;
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towertype==1)
+ tower[i].towertimer=1000,tower[i].bulletspeed=6;
+ IfCallLevel=false;
+}
+void Level3Part7()
+{
+ frameleft=ThirtySeconds;
+ if (towcnt==8)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("This part will be a great fun if the green tower didn't exist...");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower1(400,540,750,3);
+ for (int i=1;i<=33;++i)
+ {
+ int tmp=CreateTower3(i*24-20,570,300,2);
+ tower[tmp].t3t=3;
+ }
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level4Part0()
+{
+ frameleft=50;
+ if (towcnt==34)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Someone is following you.\n\
+Level 4 - At the Pet Store");
+ IfCallLevel=false;
+ }
+ if (Current_Position==1)
+ {
+ frameleft=0;
+ return;
+ }
+}
+void Level4Part1()
+{
+ frameleft=TenSeconds;
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower4(400,300,2000,2);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level4Part2()
+{
+ frameleft=TwentySeconds;
+ if (towcnt==1)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("May be they are kittens petted by you?..");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower4(30,10,2000,1);
+ CreateTower4(746,10,2000,1);
+ CreateTower4(30,556,2000,1);
+ CreateTower4(746,556,2000,1);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level4Part3()
+{
+ frameleft=TenSeconds;
+ if (towcnt==4)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower3(30,10,300,2);
+ CreateTower3(746,10,300,2);
+ CreateTower3(30,556,300,2);
+ CreateTower3(746,556,300,2);
+ for (int i=1;i<=4;++i)
+ tower[i].t3t=1;
+ CreateTower4(5,10,2000,2);
+ CreateTower4(771,10,2000,2);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level4Part4()
+{
+ frameleft=TwentySeconds;
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ tower[5].towertimer=tower[6].towertimer=1500;
+ bool none=true;
+ if (tower[1].towerpos.x<=120)++tower[1].towerpos.x,none=false;
+ if (tower[1].towerpos.y<=80)++tower[1].towerpos.y,none=false;
+ if (tower[2].towerpos.x>=660)--tower[2].towerpos.x,none=false;
+ if (tower[2].towerpos.y<=80)++tower[2].towerpos.y,none=false;
+ if (tower[3].towerpos.x<=120)++tower[3].towerpos.x,none=false;
+ if (tower[3].towerpos.y>=480)--tower[3].towerpos.y,none=false;
+ if (tower[4].towerpos.x>=660)--tower[4].towerpos.x,none=false;
+ if (tower[4].towerpos.y>=480)--tower[4].towerpos.y,none=false;
+ if (none)IfCallLevel=false;
+}
+void Level4Part5()
+{
+ frameleft=ThirtySeconds;
+ if (towcnt==6)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Keep your rhythm!");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower3(30,10,300,2);
+ CreateTower3(746,10,300,2);
+ CreateTower3(30,556,300,2);
+ CreateTower3(746,556,300,2);
+ CreateTower3(400,10,300,2);
+ CreateTower3(400,556,300,2);
+ CreateTower4(6,10,2000,2);
+ CreateTower4(760,10,2000,2);
+ CreateTower4(6,556,2000,2);
+ CreateTower4(760,556,2000,2);
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ if (tower[i].towertype==3)
+ tower[i].t3t=1;
+ }
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+
+}
+void Level4Part6()
+{
+ frameleft=ThirtySeconds;
+ if (towcnt==10)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Play with a kitten in the maze?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower4(400,540,3000,2);
+ for (int i=1;i<=33;++i)
+ {
+ int tmp=CreateTower3(i*24-20,570,500,2);
+ tower[tmp].t3t=3;
+ }
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level5Part0()
+{
+ frameleft=50;
+ if (towcnt==34)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Bullets that kill you won't move so fast...\n\
+Level 5 - A Huge Joke");
+ IfCallLevel=false;
+ }
+ if (Current_Position==1)
+ {
+ frameleft=0;
+ return;
+ }
+}
+void Level5Part1()
+{
+ frameleft=TenSeconds;
+ if (towcnt==8)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ for (int i=1;i<=33;++i)
+ int tmp=CreateTower5(i*24-20,30,200,10);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level5Part2()
+{
+ frameleft=TwentySeconds;
+ if (towcnt==33)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower1(233,300,750,4);
+ CreateTower1(567,300,750,4);
+ for (int i=1;i<=33;++i)
+ int tmp=CreateTower5(i*24-20,30,500,4);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level5Part3()
+{
+ frameleft=ThirtySeconds;
+ if (towcnt==35)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower4(400,300,1000,2);
+ for (int i=1;i<=33;++i)
+ int tmp=CreateTower5(i*24-20,30,500,4);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level5Part4()
+{
+ frameleft=ThirtySeconds;
+ if (towcnt==34)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Avoiding is no longer an option.");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ for (int i=1;i<=33;++i)
+ int tmp=CreateTower1(i*24-20,30,500,4);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level6Part0()
+{
+ frameleft=50;
+ if (towcnt==33)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Now you are going to meet my ultimate fire power...\n\
+Level 6 - The Great Clock");
+ IfCallLevel=false;
+ }
+ if (Current_Position==1)
+ {
+ frameleft=0;
+ return;
+ }
+}
+void Level6Part1()
+{
+ frameleft=TwentySeconds;clrtime=0;
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower6(400,300,1000,2,1000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level6Part2()
+{
+ frameleft=ThirtySeconds;clrtime=5;
+ if (towcnt==1)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Let's test the Advanced Bullet Script...\n\
+From now on you can use your Clear Ranges, try pressing Z in game.");
+ }
+ if (Current_Position==1)
+ {
+ ++part;
+ }
+}
+int Level6Part3_Child()
+{
+ ++stepskips;
+ if (stepskips<100)return 0;
+ stepskips=0;
+ if (towcnt==1){towcnt=0;return 0;}
+ CreateTower6(rand()%800,rand()%300,50,2,500);
+ return 1;
+}
+void Level6Part3()
+{
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ if (Level6Part3_Child())
+ {
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ return;
+ }
+ }
+}
+void Level6Part4()
+{
+ frameleft=ThirtySeconds;clrtime=3;
+ if (bulcnt!=0||towcnt!=5&&towcnt!=0)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Last level was very cool, wasn't it?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower6(400,300,750,2,1000);
+ CreateTower6(30,10,750,2,1000);
+ CreateTower6(746,10,750,2,1000);
+ CreateTower6(30,556,750,2,1000);
+ CreateTower6(746,556,750,2,1000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level6Part5()
+{
+ frameleft=ThirtySeconds;clrtime=5;
+ if (bulcnt!=0||towcnt!=33)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("A row of fierce red tower?...");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ for (int i=1;i<=33;++i)
+ int tmp=CreateTower6(i*24-20,30,3000,2,1000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level6Part6()
+{
+ frameleft=ThirtySeconds;clrtime=3;
+ if (bulcnt!=0||towcnt!=37)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Enjoy the same maze.");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower6(30,10,1500,2,1000);
+ CreateTower6(746,10,1500,2,1000);
+ CreateTower6(30,556,1500,2,1000);
+ CreateTower6(746,556,1500,2,1000);
+ for (int i=1;i<=33;++i)
+ {
+ int tmp=CreateTower3(i*24-20,570,1000,2,true);
+ tower[tmp].t3t=3;
+ }
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level6Part7()
+{
+ frameleft=ThirtySeconds;clrtime=3;
+ if (towcnt==37)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("You are supposed to leave now...");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower4(30,10,2000,2);
+ CreateTower4(746,10,2000,2);
+ CreateTower4(30,556,2000,2);
+ CreateTower4(746,556,2000,2);
+ CreateTower3(120,80,300,2);
+ CreateTower3(660,80,300,2);
+ CreateTower3(120,480,300,2);
+ CreateTower3(660,480,300,2);
+ CreateTower1(400,30,500,2);
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ if (tower[i].towertype==3)tower[i].t3t=1;
+ }
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level6Part8()
+{
+ frameleft=ThirtySeconds;clrtime=1;
+ if (towcnt==9)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("I don't think you can pass this easily...");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower1(30,10,300,2);
+ CreateTower1(746,10,300,2);
+ CreateTower1(30,556,300,2);
+ CreateTower1(746,556,300,2);
+ CreateTower4(400,30,3000,3);
+ CreateTower3(900,900,999999,1);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level6Part9()
+{
+ frameleft=ThirtySeconds;clrtime=3;
+ if (towcnt!=2&&towcnt!=0)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Okay you survived...\n\
+But that was nothing much, more bombs is always the answer!");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower2(400,300,100,1);
+ CreateTower6(400,301,2000,1,1500);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part0()
+{
+ frameleft=50;
+ if (towcnt==2||bulcnt!=0)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Some freezy small objects are getting nearer...\n\
+Level 7 - Frozen Towers");
+ IfCallLevel=false;
+ }
+ if (Current_Position==1)
+ {
+ frameleft=0;
+ return;
+ }
+}
+void Level7Part1()
+{
+ frameleft=ThirtySeconds;clrtime=0;
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ whicnt=10;
+ CreateTower7(400,300,1000,2,3000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part2()
+{
+ frameleft=ThirtySeconds;clrtime=3;
+ if (bulcnt!=0||(towcnt!=5&&towcnt!=0))
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Is it horrifying?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ whicnt=8;
+ CreateTower7(400,300,2000,1,3000);
+ CreateTower7(30,10,2000,1,3000);
+ CreateTower7(746,10,2000,1,3000);
+ CreateTower7(30,556,2000,1,3000);
+ CreateTower7(746,556,2000,1,3000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part3()
+{
+ frameleft=ThirtySeconds;clrtime=5;
+ if (towcnt==5)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Red & White.\n\
+Bloody snow?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ whicnt=5;
+ for (int i=1;i<=33;++i)
+ if (i&1)
+ CreateTower6(i*24-20,30,3000,2,1000);
+ else
+ CreateTower7(i*24-20,30,3000,2,1000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part4()
+{
+ frameleft=ThirtySeconds;clrtime=0;
+ if (towcnt==33||bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Or this is only a bonus level?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ for (int i=1;i<=33;++i)
+ CreateTower1(i*24-20,30,1000,4),CreateTower1(i*24-20,567,1000,4);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part5()
+{
+ frameleft=ThirtySeconds;clrtime=3;
+ if (towcnt==66||bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Wasn't that enough?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ for (int i=1;i<=33;++i)
+ CreateTower1(i*24-20,30,500,4),CreateTower5(i*24-20,567,500,4);
+ CreateTower3(900,900,999999,1);//Dummy tower for avoiding mis-clearing
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part6()
+{
+ frameleft=ThirtySeconds;clrtime=3;
+ if (towcnt==67||bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("The impossible thing happened in the end...");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ for (int i=1;i<=33;++i)
+ if (i&1)
+ CreateTower6(i*24-20,30,3000,1,1500),CreateTower5(i*24-20,567,500,3);
+ else
+ CreateTower5(i*24-20,567,500,3);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part7()
+{
+ frameleft=ThirtySeconds;clrtime=3;
+ if (towcnt==50||bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Do you think you are fooled?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ whicnt=3;
+ for (int i=1;i<=33;++i)
+ if (i&1)
+ CreateTower7(i*24-20,30,2000,1,2000),CreateTower5(i*24-20,567,500,3);
+ else
+ CreateTower5(i*24-20,567,500,3);
+ CreateTower3(900,900,999999,1);//Dummy tower
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+
+}
+void Level7Part8()
+{
+ frameleft=ThirtySeconds;clrtime=5;
+ if (towcnt==51)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("I won't let you go easily...\n\
+But why?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ whicnt=2;
+ for (int i=1;i<=33;++i)
+ if (i&1)
+ CreateTower6(400,30,3000,1,2000);//,CreateTower5(i*24-20,567,2000,3);
+ else
+ CreateTower1(i*24-20,567,2000,3);//,CreateTower7(i*24-20,30,3000,1,2000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part9()
+{
+ frameleft=TwentySeconds;clrtime=1;
+ if (towcnt!=5&&towcnt!=0)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Let's relax a bit...");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ CreateTower1(400,30,300,2);
+ CreateTower6(30,10,1000,2,1000);
+ CreateTower6(746,10,1000,2,1000);
+ CreateTower6(30,556,1000,2,1000);
+ CreateTower6(746,556,1000,2,1000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+
+}
+void Level7Part10()
+{
+ frameleft=ThirtySeconds;clrtime=3;
+ if (towcnt==5)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("I still can't let you go...\n\
+Just play with me! (And enjoy the double laby!)");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ for (int i=1;i<=33;++i)
+ {
+ int tmp=CreateTower3(i*24-20,570,500,2);
+ tower[tmp].t3t=3;
+ }
+ for (int i=1;i<=23;++i)
+ {
+ int tmp=CreateTower3(772,i*24,500,2);
+ tower[tmp].t3t=2;
+ }
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part11()
+{
+ frameleft=AMinute;clrtime=3;
+ if ((towcnt!=5&&towcnt!=0)||bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("You will be full of holes after this level...");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ whicnt=50;
+ CreateTower7(400,30,3000,1,3000);
+ CreateTower6(30,10,2000,1,2000);
+ CreateTower6(746,10,2000,1,2000);
+ CreateTower6(30,556,2000,1,2000);
+ CreateTower6(746,556,2000,1,2000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level7Part12()
+{
+ frameleft=AMinute;clrtime=3;
+ if ((towcnt!=6&&towcnt!=0)||bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Well, here it is.");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ whicnt=50;
+ CreateTower7(400,30,3000,1,3000);
+ CreateTower6(400,300,2000,1,1500);
+ CreateTower1(30,10,2000,2);
+ CreateTower1(746,10,2000,2);
+ CreateTower1(30,556,2000,2);
+ CreateTower1(746,556,2000,2);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+
+}
+void Level8Part0()
+{
+ frameleft=50;
+ if (towcnt==6)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Welcome to the world that is only known by...masochism\n\
+Level 8 - Entertainment!");
+ IfCallLevel=false;
+ }
+ if (Current_Position==1)
+ {
+ frameleft=0;
+ return;
+ }
+}
+void Level8Part1()
+{
+ frameleft=ThirtySeconds;clrtime=0;
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower7(400,300,2500,8,750);
+ whicnt=25;
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+
+}
+void Level8Part2()
+{
+ frameleft=TenSeconds;clrtime=3;
+ if (towcnt!=2&&bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Just another joke?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ deltadelta=0.004363322313/4;
+ CreateTower2(420,60,100,3);
+ CreateTower2(380,60,100,3);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level8Part3()
+{
+ frameleft=TenSeconds;
+ CreateTower2(460,100,100,3);
+ CreateTower2(340,100,100,3);
+ deltadelta=0.004363322313/8;
+ IfCallLevel=false;
+}
+void Level8Part4()
+{
+ frameleft=TenSeconds;
+ CreateTower2(500,140,100,3);
+ CreateTower2(300,140,100,3);
+ deltadelta=0.004363322313/16;
+ IfCallLevel=false;
+}
+void Level8Part5()
+{
+ frameleft=ThirtySeconds;clrtime=1;
+ if (towcnt==6||bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("They are not cute enough to follow you all the time...");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ yelattrib=true;
+ for (int i=1;i<=33;++i)
+ int tmp=CreateTower4(i*24-20,30,2000,4,2000);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level8Part6()
+{
+ frameleft=AMinute;clrtime=3;
+ clrtime=3;
+ if (towcnt==33||(bulcnt!=0&&towcnt!=4))
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Hope you can enjoy... the entertaining level\n\
+Are they bullets or other object?");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower1(30,10,20,10);
+ CreateTower1(746,10,20,10);
+ CreateTower1(30,556,20,10);
+ CreateTower1(746,556,20,10);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level8Part7()
+{
+ frameleft=ThirtySeconds;clrtime=5;
+ if (towcnt==4||bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Nautilus!");
+ }
+ if (Current_Position==1)
+ {
+ ++part;
+ }
+}
+int Level8Part8_Child()
+{
+ ++stepskips;
+ if (stepskips<2)return 0;
+ stepskips=0;
+ linerad+=0.05;
+ for (int i=1;;++i)
+ {
+ double tx=400+sin(linerad)*i*12;
+ double ty=300+cos(linerad)*i*12;
+ if (tx>800||tx<0||ty>600||ty<0)
+ {
+ hge->Gfx_RenderLine(400,300,tx,ty,0x80CCFF00);
+ break;
+ }
+ int bult=CreateBullet1(tx,ty,1);
+ bullet[bult].bulletdir.x=-sin(linerad/*-1.5707963268*/);
+ bullet[bult].bulletdir.y=-cos(linerad/*-1.5707963268*/);
+ bullet[bult].dist=bullet[bult].bulletdir.x*bullet[bult].bulletdir.x+bullet[bult].bulletdir.y*bullet[bult].bulletdir.y;
+ bullet[bult].dist=sqrt(bullet[bult].dist);
+ }
+ return 1;
+}
+void Level8Part8()
+{
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ frameskips=0;
+ if (Level8Part8_Child())
+ {
+ }
+}
+void Level8Part9()
+{
+ frameleft=AMinute;clrtime=5;
+ if (bulcnt!=0&&towcnt!=2)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Two towers means too much");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower6(380,60,1000,8,1000);
+ CreateTower7(420,60,1000,8,750);
+ whicnt=16;
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level8Part10()
+{
+ frameleft=AMinute;clrtime=5;
+ if (towcnt==2)
+ {
+ ClearAll();
+ return;
+ }
+ DisableAllTower=false;
+ bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Well, here is the final mixture.\n\
+Enjoy it!");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ CreateTower4(30,10,2000,2,3000);
+ CreateTower4(746,10,2000,2,3000);
+ CreateTower4(30,556,2000,2,3000);
+ CreateTower4(746,556,2000,2,3000);
+ CreateTower3(120,80,300,2);
+ CreateTower3(660,80,300,2);
+ CreateTower3(120,480,300,2);
+ CreateTower3(660,480,300,2);
+ CreateTower1(400,30,500,2);
+ CreateTower6(380,60,1000,6,1000);
+ CreateTower7(420,60,1000,6,750);
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towertype==3)
+ tower[i].t3t=1;
+ yelattrib=true;
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
+void Level8Part11()
+{
+ frameleft=AMinute;
+ if (towcnt!=1&&bulcnt!=0)
+ {
+ ClearAll();
+ if (bulcnt!=0||towcnt!=0)return;
+ }
+ DisableAllTower=false;
+ towcnt=0;bulcnt=0;memset(bullet,0,sizeof(bullet));
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Addition Level: Reflection++\n\
+Give yourself an award even if you cannot pass this level.");
+ return;
+ }
+ ++frameskips;
+ if (frameskips<10&&!LOWFPS)return;
+ Refliction=true;
+ CreateTower6(400,566,1000,2,1000);
+ /*for (int i=1;i<=33;++i)
+ {
+ int tmp=CreateTower3(i*24-20,570,1000,2);
+ tower[tmp].t3t=3;
+ }
+ for (int i=1;i<=23;++i)
+ {
+ int tmp=CreateTower3(772,i*24,1000,2);
+ tower[tmp].t3t=2;
+ }*/
+ for (int i=1;i<=towcnt;++i)
+ if (tower[i].towerspr->GetColor()==0x80FFFFFF)
+ tower[i].towerspr->SetColor(0x00FFFFFF);
+ for (int i=1;i<=towcnt;++i)
+ if ((tower[i].towerspr->GetColor()>>24)<=0x80)
+ tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF);
+ else
+ {
+ IfCallLevel=false;
+ return;
+ }
+}
\ No newline at end of file diff --git a/loading.h b/archive/blr1/src/loading.h index acf59aa..acf59aa 100644 --- a/loading.h +++ b/archive/blr1/src/loading.h diff --git a/archive/blr1/src/main.cpp b/archive/blr1/src/main.cpp new file mode 100644 index 0000000..d0ca2ed --- /dev/null +++ b/archive/blr1/src/main.cpp @@ -0,0 +1,510 @@ +//Chrisoft Bullet Lab Remix HGE
+//Main Code
+//"Copyleft" Chrisoft 2013
+//#define Debug
+#include "hge.h"
+#include "hgefont.h"
+#include "hgegui.h"
+#include <cmath>
+#include <ctime>
+#include <cstdlib>
+#include <cstdio>
+#include "menuitem.h"
+#include "global.h"
+#include "towernbullet.h"
+#include "levels.h"
+#include "scorec.h"
+#include "menus.h"
+void firststartup()
+{
+ /*if (MessageBoxA(NULL,"It seems that you are running BLR for the First time!\nLet's do some \
+basic settings first!\n\nEnable Low FPS Mode?","First Start Up",0x00000024)==6)
+ fpslvl=1;
+ else*/
+ fpslvl=0;
+ /*if (MessageBoxA(NULL,"Enable Fullscreen?","First Start Up",0x00000024)==6)
+ tfs=1;
+ else*/
+ tfs=0;
+ diffkey=false;
+ plrspd=3;plrslospd=3;clrbns=0;
+ hge->System_Log("Finishing first start up configuraion...");
+ Options_Writeback();
+ Score_Initailize();
+}
+void Player_Clear()
+{
+ if (LOWFPS)
+ clrrange+=13.6;
+ else
+ clrrange+=0.8;
+ for (int i=1;i<=bulcnt;++i)
+ {
+ double dis=GetDist(bullet[i].bulletpos,playerpos);
+ if (dis<=clrrange&&bullet[i].exist)
+ {
+ CreateBullet255(bullet[i].bulletpos.x,bullet[i].bulletpos.y,10);
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ }
+}
+void ProcessPlayer()
+{
+ playerspr->RenderEx(playerpos.x+8.4,playerpos.y+8.4,playerrot,0.7,0);
+ if (DisablePlayer)return;
+ if (!LOWFPS)
+ playerrot+=0.00174533;
+ else
+ playerrot+=0.00174533*17;
+ double realspd;
+ if (hge->Input_GetKeyState(HGEK_SHIFT))
+ if (LOWFPS)
+ realspd=playerslospeed*17;
+ else
+ realspd=playerslospeed;
+ else
+ if (LOWFPS)
+ realspd=playerspeed*17;
+ else
+ realspd=playerspeed;
+ if (hge->Input_GetKeyState(HGEK_LEFT))
+ {
+ if (playerpos.x>10)
+ playerpos.x-=realspd;
+ }
+ if (hge->Input_GetKeyState(HGEK_RIGHT))
+ {
+ if (playerpos.x<770)
+ playerpos.x+=realspd;
+ }
+ if (hge->Input_GetKeyState(HGEK_UP))
+ {
+ if (playerpos.y>10)
+ playerpos.y-=realspd;
+ }
+ if (hge->Input_GetKeyState(HGEK_DOWN))
+ {
+ if (playerpos.y<570)
+ playerpos.y+=realspd;
+ }
+ if (hge->Input_GetKeyState(HGEK_Z)&&clrrange==0&&clrtime+clrbns&&!diffkey)
+ {
+ Player_Clear();--clrtime;++clrusg;
+ }
+ if (hge->Input_GetKeyState(HGEK_X)&&clrrange==0&&clrtime+clrbns&&diffkey)
+ {
+ Player_Clear();--clrtime;++clrusg;
+ }
+ //Player_Attack();
+ if (clrrange!=0)Player_Clear();
+ if (clrrange>=300)clrrange=0;
+}
+void RefreshScore()
+{
+ if (DisablePlayer)return;
+ int multp=1;
+ if (mode==2)multp=5;
+ if (LOWFPS)
+ score+=multp*16;
+ else
+ score+=multp;
+ score+=100*shots;
+ score-=scminus;
+ score+=2000*dsmc;
+ ++frms;
+ averfps=(averfps*(frms-1)+hge->Timer_GetFPS())/(double)frms;
+}
+void CallLevels()
+{
+ //Use this to call level procedures.
+ //Don't use this to call the first level!
+ if (level<6)clrtime=0;
+ if ((mode==4||mode<=2)&&coll!=0){DeathGUI_Init();return;}
+ if (!IfCallLevel) return;
+ if (level==7&&part==0&&mode==4)//Easy
+ {
+ CompleteGUI_Init();
+ return;
+ }
+ if (level==8&&part==0&&mode==4)//Easy
+ {
+ CompleteGUI_Init();
+ return;
+ }
+ if (level==8&&part==12&&(mode==2||mode==3))//Extreme or FPM
+ {
+ CompleteGUI_Init();
+ return;
+ }
+ if (level==1&&part==1)Level1Part1();
+ if (level==1&&part==2)Level1Part2();
+ if (level==1&&part==3)Level1Part3();
+ if (level==1&&part==4)Level1Part4();
+ if (level==2&&part==0)Level2Part0();
+ if (level==2&&part==1)Level2Part1();
+ if (level==2&&part==2)Level2Part2();
+ if (level==2&&part==3)Level2Part3();
+ if (level==3&&part==0)Level3Part0();
+ if (level==3&&part==1)Level3Part1();
+ if (level==3&&part==2)Level3Part2();
+ if (level==3&&part==3)Level3Part3();
+ if (level==3&&part==4)Level3Part4();
+ if (level==3&&part==5)Level3Part5();
+ if (level==3&&part==6)Level3Part6();
+ if (level==3&&part==7)Level3Part7();
+ if (level==4&&part==0)Level4Part0();
+ if (level==4&&part==1)Level4Part1();
+ if (level==4&&part==2)Level4Part2();
+ if (level==4&&part==3)Level4Part3();
+ if (level==4&&part==4)Level4Part4();
+ if (level==4&&part==5)Level4Part5();
+ if (level==4&&part==6)Level4Part6();
+ if (level==5&&part==0)Level5Part0();
+ if (level==5&&part==1)Level5Part1();
+ if (level==5&&part==2)Level5Part2();
+ if (level==5&&part==3)Level5Part3();
+ if (level==5&&part==4)Level5Part4();
+ if (level==6&&part==0)Level6Part0();
+ if (level==6&&part==1)Level6Part1();
+ if (level==6&&part==2)Level6Part2();
+ if (level==6&&part==3)Level6Part3();
+ if (level==6&&part==4)Level6Part4();
+ if (level==6&&part==5)Level6Part5();
+ if (level==6&&part==6)Level6Part6();
+ if (level==6&&part==7)Level6Part7();
+ if (level==6&&part==8)Level6Part8();
+ if (level==6&&part==9)Level6Part9();
+ if (level==7&&part==0)Level7Part0();
+ if (level==7&&part==1)Level7Part1();
+ if (level==7&&part==2)Level7Part2();
+ if (level==7&&part==3)Level7Part3();
+ if (level==7&&part==4)Level7Part4();
+ if (level==7&&part==5)Level7Part5();
+ if (level==7&&part==6)Level7Part6();
+ if (level==7&&part==7)Level7Part7();
+ if (level==7&&part==8)Level7Part8();
+ if (level==7&&part==9)Level7Part9();
+ if (level==7&&part==10)Level7Part10();
+ if (level==7&&part==11)Level7Part11();
+ if (level==7&&part==12)Level7Part12();
+ if (level==8&&part==0)Level8Part0();
+ if (level==8&&part==1)Level8Part1();
+ if (level==8&&part==2)Level8Part2();
+ if (level==8&&part==3)Level8Part3();
+ if (level==8&&part==4)Level8Part4();
+ if (level==8&&part==5)Level8Part5();
+ if (level==8&&part==6)Level8Part6();
+ if (level==8&&part==7)Level8Part7();
+ if (level==8&&part==8)Level8Part8();
+ if (level==8&&part==9)Level8Part9();
+ if (level==8&&part==10)Level8Part10();
+ if (level==8&&part==11)Level8Part11();
+}
+void AboutScene()
+{
+ if (LOWFPS)scroll+=0.51;else scroll+=0.03;
+ Credits->Render(200,600-scroll);
+ CreditsRail->Render(200,0);
+ if(hge->Input_GetKeyState(HGEK_Z)||scroll>1624)
+ {
+ Current_Position=0;
+ gui->SetFocus(1);
+ gui->Enter();
+ }
+}
+bool FrameFunc()
+{
+ float dt=hge->Timer_GetDelta();
+ static float t=0.0f;
+ float tx,ty;
+ int id;
+ static int lastid=0;
+ // If ESCAPE was pressed, tell the GUI to finish
+ if (hge->Input_GetKeyState(HGEK_ESCAPE)&&Current_Position==0) { lastid=5; gui->Leave(); }
+ if (Current_Position==1&&hge->Input_GetKeyState(HGEK_ESCAPE))PauseGUI_Init();
+ // We update the GUI and take an action if
+ // one of the menu items was selected
+ if (Current_Position==0)
+ {
+ id=gui->Update(dt);
+ if(id == -1)
+ {
+ switch(lastid)
+ {
+ case 1:Current_Position=3; StartGUI_Init();gui->Leave();break;
+ case 2:gui->Leave();HighScoreGUI_Init();break;
+ case 3:gui->Leave();OptionsGUI_Init();break;
+ case 4:
+ Credits=new hgeSprite(TexCredits,0,0,400,1024);
+ CreditsRail=new hgeSprite(TexCredits,400,0,400,1024);
+ scroll=0;
+ Current_Position=4;
+ AboutScene();
+ lastid=0;
+ break;
+ case 5: return true;
+ }
+ }
+ else if(id) { lastid=id; gui->Leave(); }
+ }
+ if (Current_Position==3)StartGUI_FrameFnk();
+ if (Current_Position==5)DeathGUI_FrameFnk();
+ if (Current_Position==6)CompleteGUI_FrameFnk();
+ if (Current_Position==7)NewHighScoreGUI_FrameFnk();
+ if (Current_Position==8)HighScoreGUI_FrameFnk();
+ if (Current_Position==9)HSViewGUI_FrameFnk();
+ if (Current_Position==10)HSDetGUI_FrameFnk();
+ if (Current_Position==11)PauseGUI_FrameFnk();
+ if (Current_Position==12)BkTTitleGUI_FrameFnk();
+ if (Current_Position==13)OptionsGUI_FrameFnk();
+ if (Current_Position==14)PlayerProfGUI_FrameFnk();
+ // Here we update our background animation
+ t+=dt;
+ tx=50*cosf(t/60);
+ ty=50*sinf(t/60);
+ quad.v[0].tx=tx; quad.v[0].ty=ty;
+ quad.v[1].tx=tx+800/64; quad.v[1].ty=ty;
+ quad.v[2].tx=tx+800/64; quad.v[2].ty=ty+600/64;
+ quad.v[3].tx=tx; quad.v[3].ty=ty+600/64;
+ return false;
+}
+bool RenderFunc()
+{
+ // Render graphics
+ hge->Gfx_BeginScene();
+ hge->Gfx_RenderQuad(&quad);
+ if (Current_Position==0||Current_Position==3||Current_Position==8||
+ Current_Position==9||Current_Position==10||Current_Position==13||Current_Position==14)
+ {
+ if (Current_Position==0)
+ gui->Render();
+ titlespr->Render(160,0);
+ }
+ if (Current_Position==3)
+ StartGUI->Render();
+ if (Current_Position==1||Current_Position==2||Current_Position==5||Current_Position==11||Current_Position==12)
+ {
+ //If we are at the main scene or tip scene(which towers and bullets should still appear..)
+ //Render towers, bullets and player.
+ shots=0;
+ dsmc=0;
+ scminus=0;
+ ProcessTower1();
+ ProcessTower2();
+ ProcessTower3();
+ ProcessTower4();
+ ProcessTower5();
+ ProcessTower6();
+ ProcessTower7();
+ ProcessBullet1();
+ ProcessBullet2();
+ //No ProcessBullet3() needed
+ ProcessBullet4();
+ ProcessBullet5();
+ ProcessBullet6();
+ ProcessBullet7();
+ ProcessBullet255();
+ ProcessPlayer();
+ SCEffect_Process();
+ RefreshScore();
+ if (!DisablePlayer)
+ --frameleft;//If we are at the tip scene, disable the player movement.
+ if (!LOWFPS)
+ {
+ if (playerspeed<playerfulspd)playerspeed+=playerfulspd/400;
+ if (playerslospeed<playerfulslospd)playerslospeed+=playerfulslospd/400;
+ }
+ else
+ {
+ if (playerspeed<playerfulspd)playerspeed+=playerfulspd/25;
+ if (playerslospeed<playerfulslospd)playerslospeed+=playerfulslospd/25;
+ }
+ }
+ if (frameleft == 0&&Current_Position==1)
+ {
+ IfCallLevel=true;
+ ++part;
+ IfShowTip=true;
+ if (level==1&&part==5)++level,part=0;
+ if (level==2&&part==4)++level,part=0;
+ if (level==3&&part==8)++level,part=0;
+ if (level==4&&part==7)++level,part=0;
+ if (level==5&&part==5)++level,part=0;
+ if (level==6&&part==10)++level,part=0;
+ if (level==7&&part==13)++level,part=0;
+ }
+ if (Current_Position==1)
+ {
+ CallLevels();
+ }
+ if (shots)hge->Effect_Play(snd);
+ if (Current_Position==2)
+ {
+ ShowTip(lasttip);
+ //if (Complete)
+ // TipFont->printf(200,200,HGETEXT_LEFT,"Score");
+ }
+ if (Current_Position==4)AboutScene();
+ if (Current_Position==5)DeathGUI->Render();
+ if (Current_Position==6)CompleteGUI->Render();
+ if (Current_Position==7)NewHighScoreGUI_Render();
+ if (Current_Position==8)HighScoreGUI->Render();
+ if (Current_Position==9)HSViewGUI->Render();
+ if (Current_Position==10)HSDetailGUI->Render();
+ if (Current_Position==11)PauseGUI->Render();
+ if (Current_Position==12)BkTTitleGUI->Render();
+ if (Current_Position==13)OptionsGUI->Render();
+ if (Current_Position==14)PlayerProfGUI->Render();
+ fnt->SetColor(0xFFFFFFFF);
+ fnt->printf(680, 575, HGETEXT_LEFT, "FPS: %d", hge->Timer_GetFPS());
+ if (Current_Position==1||Current_Position==2)
+ {
+ fnt->printf(670,555, HGETEXT_LEFT, "AF: %.2f", averfps);
+ fnt->printf(5, 0, HGETEXT_LEFT, "Frames to go: %d",frameleft);
+ fnt->printf(5, 25, HGETEXT_LEFT, "Score: %lld",score);
+ fnt->printf(5, 50, HGETEXT_LEFT, "Level %d Part %d",level,part);
+ if (mode==3)
+ fnt->printf(5, 75, HGETEXT_LEFT, "Collisions: %d",coll);
+ else
+ fnt->printf(5, 75, HGETEXT_LEFT, "Restarts: %d",restarts);
+ fnt->printf(5, 100, HGETEXT_LEFT, "Semi-Collisions: %d",semicoll);
+ fnt->printf(5, 125, HGETEXT_LEFT, "Clear Range Left: %d",clrtime+clrbns);
+ }
+ hge->Gfx_EndScene();
+ return false;
+}
+int main()
+{
+ srand(time(NULL));
+ hge = hgeCreate(HGE_VERSION);
+ hge->System_SetState(HGE_LOGFILE, "BLRLOG.txt");
+ hge->System_Log("Bullet Lab Remix Log File");
+ hge->System_Log("Folder Decompressed created successfully.");
+ /*
+ Resourece Files list
+ bg.lz->bg.png
+ blnsns.lz->blnsns.png
+ charmap.lz->charmap.fnt
+ ss1.lz->ss1.png
+ ss2.lz->ss2.png
+ title.lz->title.png
+ credits.lz->credits.png
+ tap.lz->tap.wav
+ */
+ hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);
+ hge->System_SetState(HGE_RENDERFUNC, RenderFunc);
+ hge->System_SetState(HGE_TITLE, "Bullet Lab Remix");
+ hge->System_SetState(HGE_WINDOWED, true);
+ hge->System_SetState(HGE_SCREENWIDTH, 800);
+ hge->System_SetState(HGE_SCREENHEIGHT, 600);
+ hge->System_SetState(HGE_SCREENBPP, 32);
+ hge->System_SetState(HGE_SHOWSPLASH, false);
+ hge->System_SetState(HGE_FPS,0);
+ if((access("blr.cfg",0))==-1)
+ {
+ hge->System_Log("Config file not found. Calling first startup.");
+ firststartup();
+ }
+ hge->System_Log("Loading config file");
+ freopen("blr.cfg","r",stdin);
+ char tch=getchar();
+ if (tch!=';'){}
+ tch=getchar();
+ if (tch!='C'){}
+ tch=getchar();
+ if (tch!='B'){}
+ tch=getchar();
+ if (tch!='L'){}
+ fpslvl=0;
+ tch=getchar();//LOWFPS
+ if (tch==1)
+ {
+ LOWFPS=true;
+ TenSeconds=600;
+ TwentySeconds=1200;
+ ThirtySeconds=1800;
+ AMinute=3600;
+ hge->System_SetState(HGE_FPS,61);
+ fpslvl=1;
+ }
+ tch=getchar();//FULLSCRREEN
+ tfs=false;
+ if (tch==1)
+ hge->System_SetState(HGE_WINDOWED, false),tfs=true;
+ tch=getchar();//LockFPS
+ if (tch==1&&!LOWFPS)
+ {
+ hge->System_SetState(HGE_FPS,1000);
+ fpslvl=2;
+ }
+ tch=getchar();//Key binding
+ if (tch==1)diffkey=true;
+ plrspd=tch=getchar();
+ playerfulspd=(tch)*0.05f;
+ playerspeed=playerfulspd;
+ plrslospd=tch=getchar();
+ playerfulslospd=(tch)*0.0125f;
+ playerslospeed=playerfulslospd;
+ tch=getchar();
+ clrbns=tch;
+ fclose(stdin);
+ if (AP_Update(plrspd,plrslospd,clrbns)>10000)Error("Invalid configuration!\nDelete blr.cfg and run the game again!");
+ hge->System_Log("Loading Score file");
+ Score_Init();
+#ifdef Debug
+ playerspeed=playerfulspd=0.2;
+ playerslospeed=playerfulslospd=0.05;
+#endif
+ Current_Position=0;//We are at the main menu at first
+ if(hge->System_Initiate())
+ {
+ quad.tex=hge->Texture_Load("./Resources/bg.png");
+ SprSheet1=hge->Texture_Load("./Resources/ss1.png");
+ SprSheet2=hge->Texture_Load("./Resources/ss2.png");
+ TexTitle=hge->Texture_Load("./Resources/title.png");
+ TexCredits=hge->Texture_Load("./Resources/credits.png");
+ snd=hge->Effect_Load("./Resources/tap.ogg");
+ titlespr=new hgeSprite(TexTitle,0,0,640,320);
+ playerspr=new hgeSprite(SprSheet1,47,46,24,24);
+ playerspr->SetHotSpot(12,12);//Set player anchor
+ playerspr->SetColor(0xC0FFFFFF);
+ if(!quad.tex||!SprSheet1||!SprSheet2||!TexTitle||!TexCredits)
+ {
+ Error("Error Loading Resources!",true);
+ }
+ quad.blend=BLEND_ALPHABLEND | BLEND_COLORMUL | BLEND_NOZWRITE;
+ for(int i=0;i<4;i++)
+ {
+ quad.v[i].z=0.5f;
+ quad.v[i].col=0xFFFFFFFF;
+ }
+ quad.v[0].x=0; quad.v[0].y=0;
+ quad.v[1].x=800; quad.v[1].y=0;
+ quad.v[2].x=800; quad.v[2].y=600;
+ quad.v[3].x=0; quad.v[3].y=600;
+ fnt=new hgeFont("./Resources/charmap.fnt");
+ TipFont=new hgeFont("./Resources/charmap.fnt");
+ spr=new hgeSprite(SprSheet1,24,46,24,24);
+ gui=new hgeGUI();
+ gui->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,"Start"));
+ gui->AddCtrl(new hgeGUIMenuItem(2,fnt,snd,400,240,0.1f,"Highscores && Records"));
+ gui->AddCtrl(new hgeGUIMenuItem(3,fnt,snd,400,280,0.2f,"Options"));
+ gui->AddCtrl(new hgeGUIMenuItem(4,fnt,snd,400,320,0.3f,"About"));
+ gui->AddCtrl(new hgeGUIMenuItem(5,fnt,snd,400,360,0.4f,"Exit"));
+ gui->SetNavMode(HGEGUI_UPDOWN | HGEGUI_CYCLED);
+ gui->SetCursor(spr);
+ gui->SetFocus(1);
+ gui->Enter();
+ if (LOWFPS)
+ hge->System_Log("Low FPS Mode Enabled.\n");
+ hge->System_Start();
+ }
+ // Clean up and shutdown
+ hge->System_Shutdown();
+ hge->Release();
+ return 0;
+}
diff --git a/archive/blr1/src/menuitem.cpp b/archive/blr1/src/menuitem.cpp new file mode 100644 index 0000000..353b6b7 --- /dev/null +++ b/archive/blr1/src/menuitem.cpp @@ -0,0 +1,201 @@ +/*
+** Haaf's Game Engine 1.7
+** Copyright (C) 2003-2007, Relish Games
+** hge.relishgames.com
+**
+** Tutorial 06 - Creating menus
+*/
+
+// In menuitem.cpp/h we define the
+// behaviour of our custom GUI control
+
+#include "menuitem.h"
+#define UnfocColor 0xFFAAAAAA
+#define FocColor 0xFFFFFFFF
+// This is a GUI control constructor,
+// we should initialize all the variables here
+hgeGUIMenuItem::hgeGUIMenuItem(int _id, hgeFont *_fnt, HEFFECT _snd, float _x, float _y, float _delay, char *_title)
+{
+ float w;
+
+ id=_id;
+ fnt=_fnt;
+ snd=_snd;
+ delay=_delay;
+ title=_title;
+
+ color.SetHWColor(UnfocColor);
+ shadow.SetHWColor(0x30000000);
+ offset=0.0f;
+ timer=-1.0f;
+ timer2=-1.0f;
+
+ bStatic=false;
+ bVisible=true;
+ bEnabled=true;
+
+ w=fnt->GetStringWidth(title);
+ rect.Set(_x-w/2, _y, _x+w/2, _y+fnt->GetHeight());
+}
+
+// Reposition the item
+void hgeGUIMenuItem::RePos(float x,float y)
+{
+ float w=fnt->GetStringWidth(title);
+ rect.Set(x-w/2, y, x+w/2, y+fnt->GetHeight());
+}
+
+// This method is called when the control should be rendered
+void hgeGUIMenuItem::Render()
+{
+ fnt->SetColor(shadow.GetHWColor());
+ fnt->Render(rect.x1+offset+3, rect.y1+3, HGETEXT_LEFT, title);
+ fnt->SetColor(color.GetHWColor());
+ fnt->Render(rect.x1-offset, rect.y1-offset, HGETEXT_LEFT, title);
+}
+
+// This method is called each frame,
+// we should update the animation here
+void hgeGUIMenuItem::Update(float dt)
+{
+ if(timer2 != -1.0f)
+ {
+ timer2+=dt;
+ if(timer2 >= delay+0.1f)
+ {
+ color=scolor2+dcolor2;
+ shadow=sshadow+dshadow;
+ offset=0.0f;
+ timer2=-1.0f;
+ }
+ else
+ {
+ if(timer2 < delay) { color=scolor2; shadow=sshadow; }
+ else { color=scolor2+dcolor2*(timer2-delay)*10; shadow=sshadow+dshadow*(timer2-delay)*10; }
+ }
+ }
+ else if(timer != -1.0f)
+ {
+ timer+=dt;
+ if(timer >= 0.2f)
+ {
+ color=scolor+dcolor;
+ offset=soffset+doffset;
+ timer=-1.0f;
+ }
+ else
+ {
+ color=scolor+dcolor*timer*5;
+ offset=soffset+doffset*timer*5;
+ }
+ }
+}
+
+// This method is called when the GUI
+// is about to appear on the screen
+void hgeGUIMenuItem::Enter()
+{
+ hgeColor tcolor2;
+
+ scolor2.SetHWColor(UnfocColor&0x00FFFFFF);
+ tcolor2.SetHWColor(UnfocColor);
+ dcolor2=tcolor2-scolor2;
+
+ sshadow.SetHWColor(0x00000000);
+ tcolor2.SetHWColor(0x30000000);
+ dshadow=tcolor2-sshadow;
+
+ timer2=0.0f;
+}
+
+// This method is called when the GUI
+// is about to disappear from the screen
+void hgeGUIMenuItem::Leave()
+{
+ hgeColor tcolor2;
+
+ scolor2.SetHWColor(UnfocColor);
+ tcolor2.SetHWColor(UnfocColor&0x00FFFFFF);
+ dcolor2=tcolor2-scolor2;
+
+ sshadow.SetHWColor(0x30000000);
+ tcolor2.SetHWColor(0x00000000);
+ dshadow=tcolor2-sshadow;
+
+ timer2=0.0f;
+}
+
+// This method is called to test whether the control
+// have finished it's Enter/Leave animation
+bool hgeGUIMenuItem::IsDone()
+{
+ if(timer2==-1.0f) return true;
+ else return false;
+}
+
+// This method is called when the control
+// receives or loses keyboard input focus
+void hgeGUIMenuItem::Focus(bool bFocused)
+{
+ hgeColor tcolor;
+
+ if(bFocused)
+ {
+ hge->Effect_Play(snd);
+ scolor.SetHWColor(UnfocColor);
+ tcolor.SetHWColor(FocColor);
+ soffset=0;
+ doffset=4;
+ }
+ else
+ {
+ scolor.SetHWColor(FocColor);
+ tcolor.SetHWColor(UnfocColor);
+ soffset=4;
+ doffset=-4;
+ }
+
+ dcolor=tcolor-scolor;
+ timer=0.0f;
+}
+
+// This method is called to notify the control
+// that the mouse cursor has entered or left it's area
+void hgeGUIMenuItem::MouseOver(bool bOver)
+{
+ if(bOver) gui->SetFocus(id);
+}
+
+// This method is called to notify the control
+// that the left mouse button state has changed.
+// If it returns true - the caller will receive
+// the control's ID
+bool hgeGUIMenuItem::MouseLButton(bool bDown)
+{
+ if(!bDown)
+ {
+ offset=4;
+ return true;
+ }
+ else
+ {
+ hge->Effect_Play(snd);
+ offset=0;
+ return false;
+ }
+}
+
+// This method is called to notify the
+// control that a key has been clicked.
+// If it returns true - the caller will
+// receive the control's ID
+bool hgeGUIMenuItem::KeyClick(int key, int chr)
+{
+ if(key==HGEK_ENTER || key==HGEK_SPACE || key==HGEK_Z)
+ {
+ MouseLButton(true);
+ return MouseLButton(false);
+ }
+
+ return false;
+}
diff --git a/archive/blr1/src/menuitem.h b/archive/blr1/src/menuitem.h new file mode 100644 index 0000000..5788ed9 --- /dev/null +++ b/archive/blr1/src/menuitem.h @@ -0,0 +1,46 @@ +/*
+** Haaf's Game Engine 1.7
+** Copyright (C) 2003-2007, Relish Games
+** hge.relishgames.com
+**
+** Tutorial 06 - Creating menus
+*/
+
+// In menuitem.cpp/h we define the
+// behaviour of our custom GUI control
+
+#include "hge.h"
+#include "hgegui.h"
+#include "hgefont.h"
+#include "hgecolor.h"
+
+
+class hgeGUIMenuItem : public hgeGUIObject
+{
+public:
+ hgeGUIMenuItem(int id, hgeFont *fnt, HEFFECT snd, float x, float y, float delay, char *title);
+
+ virtual void Render();
+ virtual void Update(float dt);
+
+ virtual void Enter();
+ virtual void Leave();
+ virtual bool IsDone();
+ virtual void Focus(bool bFocused);
+ virtual void MouseOver(bool bOver);
+
+ virtual bool MouseLButton(bool bDown);
+ virtual bool KeyClick(int key, int chr);
+ virtual void RePos(float x,float y);
+ char *title;
+
+private:
+ hgeFont *fnt;
+ HEFFECT snd;
+ float delay;
+
+ hgeColor scolor, dcolor, scolor2, dcolor2, sshadow, dshadow;
+ hgeColor color, shadow;
+ float soffset, doffset, offset;
+ float timer, timer2;
+};
diff --git a/archive/blr1/src/menus.h b/archive/blr1/src/menus.h new file mode 100644 index 0000000..cffcee7 --- /dev/null +++ b/archive/blr1/src/menus.h @@ -0,0 +1,742 @@ +//Chrisoft Bullet Lab Remix HGE
+//Menu Implementations
+//"Copyleft" Chrisoft 2013
+hgeGUI *StartGUI,*DeathGUI,*CompleteGUI,*HighScoreGUI;
+hgeGUI *HSViewGUI,*HSDetailGUI,*PauseGUI,*BkTTitleGUI;
+hgeGUI *OptionsGUI,*PlayerProfGUI;
+char ds1[255],ds2[255],ds3[255],ds4[255];
+char hs1[255],hs2[255],hs3[255],hs4[255],hs5[255],hs6[255];
+char HSVstr[7][255];
+char HSDetstr[10][255];
+char opt[10][255];
+bool toogleundl;
+int view,detv;
+int lastkeypressed;
+void HSViewGUI_Init();
+void HighScoreGUI_Init();
+void PauseGUI_Init();
+void StartGUI_Init()
+{
+ StartGUI=new hgeGUI();
+ StartGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,"Easy"));
+ StartGUI->AddCtrl(new hgeGUIMenuItem(2,fnt,snd,400,240,0.1f,"Normal"));
+ StartGUI->AddCtrl(new hgeGUIMenuItem(3,fnt,snd,400,280,0.2f,"Extreme"));
+ StartGUI->AddCtrl(new hgeGUIMenuItem(4,fnt,snd,400,320,0.3f,"Free Play Mode"));
+ StartGUI->AddCtrl(new hgeGUIMenuItem(5,fnt,snd,400,360,0.4f,"Back"));
+ StartGUI->SetCursor(spr);
+ StartGUI->SetNavMode(HGEGUI_UPDOWN);
+ StartGUI->SetFocus(1);
+ StartGUI->Enter();
+}
+void StartGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=StartGUI->Update(dt);
+ if (id)
+ {
+ switch (id)
+ {
+ case 1:
+ playerpos.x=400,playerpos.y=400,playerrot=0;
+ frameleft=TenSeconds;
+ level=1,part=1;frms=0,averfps=0.0;restarts=0;bsscale=0.75;
+ towcnt=bulcnt=0;
+ mode=4;
+ score=0;
+ coll=semicoll=clrusg=0;
+ memset(tower,0,sizeof(tower));
+ memset(bullet,0,sizeof(bullet));
+ Complete=false;
+ Refliction=false;
+ Level1Part1();
+ IfCallLevel=true;
+ break;
+ case 2:
+ playerpos.x=400,playerpos.y=400,playerrot=0;
+ frameleft=TenSeconds;
+ level=1,part=1;frms=0,averfps=0.0;restarts=0;bsscale=1;
+ towcnt=bulcnt=0;
+ mode=1;
+ score=0;
+ coll=semicoll=clrusg=0;
+ memset(tower,0,sizeof(tower));
+ memset(bullet,0,sizeof(bullet));
+ Complete=false;
+ Refliction=false;
+ Level1Part1();
+ IfCallLevel=true;
+ break;
+ case 3:
+ playerpos.x=400,playerpos.y=400,playerrot=0;
+ frameleft=ThirtySeconds;
+ level=3,part=1;frms=0,averfps=0.0;restarts=0;bsscale=1.5;
+ towcnt=4;bulcnt=0;
+ memset(tower,0,sizeof(tower));
+ memset(bullet,0,sizeof(bullet));
+ mode=2;
+ score=0;
+ coll=semicoll=clrusg=0;
+ IfShowTip=true;
+ Complete=false;
+ Refliction=false;
+ Level3Part0();
+ IfCallLevel=true;
+ break;
+ case 4:
+ playerpos.x=400,playerpos.y=400,playerrot=0;
+ frameleft=TenSeconds;
+ level=1,part=1;frms=0,averfps=0.0;bsscale=1;
+ towcnt=bulcnt=0;
+ score=0;
+ coll=semicoll=clrusg=0;
+ memset(tower,0,sizeof(tower));
+ memset(bullet,0,sizeof(bullet));
+ Complete=false;
+ Refliction=false;
+ Level1Part1();
+ IfCallLevel=true;
+ mode=3;
+ break;
+ case 5:
+ Current_Position=0;
+ StartGUI->Leave();
+ gui->Enter();
+ }
+ }
+}
+void DeathGUI_Init()
+{
+ DeathGUI=new hgeGUI();
+ Current_Position=5;
+ DisableAllTower=true;DisablePlayer=true;
+ DeathGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,160,0.0f,"You Are Dead!"));
+ sprintf(ds1,"You scored %lld at level %d",score,level);
+ DeathGUI->AddCtrl(new hgeGUIMenuItem(2,fnt,snd,400,200,0.1f,ds1));
+ switch (mode)
+ {
+ case 1:sprintf(ds2,"Difficulty: Normal");break;
+ case 2:sprintf(ds2,"Difficulty: Extreme");break;
+ case 3:sprintf(ds2,"What Happened?! You died in Free Play Mode?!");break;
+ case 4:sprintf(ds2,"Difficulty: Easy");break;
+ }
+ DeathGUI->AddCtrl(new hgeGUIMenuItem(3,fnt,snd,400,240,0.2f,ds2));
+ sprintf(ds3,"Average FPS: %.2f",averfps);
+ DeathGUI->AddCtrl(new hgeGUIMenuItem(4,fnt,snd,400,280,0.3f,ds3));
+ DeathGUI->AddCtrl(new hgeGUIMenuItem(5,fnt,snd,400,320,0.3f,""));
+ DeathGUI->AddCtrl(new hgeGUIMenuItem(6,fnt,snd,400,360,0.4f,"Continue from beginning of level? Your score will be set to minus!"));
+ DeathGUI->AddCtrl(new hgeGUIMenuItem(7,fnt,snd,400,400,0.5f,"Continue!"));
+ DeathGUI->AddCtrl(new hgeGUIMenuItem(8,fnt,snd,400,440,0.6f,"No thanks..."));
+ for (int i=1;i<=6;++i)DeathGUI->EnableCtrl(i,false);
+ DeathGUI->SetCursor(spr);
+ DeathGUI->SetNavMode(HGEGUI_UPDOWN|HGEGUI_CYCLED);
+ DeathGUI->SetFocus(7);
+ DeathGUI->Enter();
+}
+void DeathGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=DeathGUI->Update(dt);
+ if (id)
+ {
+ switch (id)
+ {
+ case 7:
+ IfCallLevel=true;
+ Current_Position=1;
+ DeathGUI->Leave();
+ score=-abs(score);
+ ++restarts;
+ part=1;
+ clockrot=deltarot=0;
+ coll=towcnt=bulcnt=0;
+ DisableAllTower=DisablePlayer=false;
+ break;
+ case 8:Current_Position=0;gui->Enter();DeathGUI->Leave();break;
+ }
+ }
+}
+void NewHighScoreGUI_Init()
+{
+ Current_Position=7;
+ memset(newname,0,sizeof(newname));newlen=0;tbframebrk=0;toogleundl=false;
+ TipFont->SetColor(0xFFFFFFFF);
+}
+void nameins(char a)
+{
+ if (newlen<=14)
+ newname[newlen++]=a;
+}
+void namedel()
+{
+ if (newlen>0)newname[--newlen]=0;
+}
+void NewHighScoreGUI_FrameFnk()
+{
+ int key=hge->Input_GetKey();
+ if (key>=0x30&&key<=0x39)nameins('0'+key-0x30);
+ if (key>=0x41&&key<=0x5A)
+ nameins('a'+key-0x41);
+ if (key==HGEK_SPACE)nameins('_');
+ if (key==HGEK_BACKSPACE)namedel();
+ if (key==HGEK_ENTER)
+ {
+ InsertHighScore();
+ switch (mode)
+ {
+ case 4:view=1;HSViewGUI_Init();break;
+ case 1:view=2;HSViewGUI_Init();break;
+ case 2:view=3;HSViewGUI_Init();break;
+ case 3:view=4;HSViewGUI_Init();break;
+ }
+ }
+}
+void NewHighScoreGUI_Render()
+{
+ if (LOWFPS)tbframebrk+=17;else ++tbframebrk;
+ if (tbframebrk>=500)toogleundl=!toogleundl,tbframebrk=0;
+ TipFont->printf(200,200,HGETEXT_LEFT,"Please Enter Your Honorable Name...");
+ if (!toogleundl)
+ TipFont->printf(200,240,HGETEXT_LEFT,"%s",newname);
+ else
+ TipFont->printf(200,240,HGETEXT_LEFT,"%s_",newname);
+}
+void CompleteGUI_Init()
+{
+ CompleteGUI=new hgeGUI();
+ Current_Position=6;
+ DisableAllTower=true;DisablePlayer=true;
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,120,0.0f,"YOU DID THAT!"));
+ if (CheckHighScore()!=-1)
+ sprintf(hs1,"New Highscore %lld!",score);
+ else
+ sprintf(hs1,"Score %lld",score);
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(2,fnt,snd,400,160,0.1f,hs1));
+ switch (mode)
+ {
+ case 1:
+ case 2:
+ case 4:sprintf(hs2,"Restarts %d",restarts);break;
+ case 3:sprintf(hs2,"Collisions %d",coll);break;
+ }
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(3,fnt,snd,400,200,0.2f,hs2));
+ sprintf(hs3,"Semi-Collisions %d",semicoll);
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(4,fnt,snd,400,240,0.3f,hs3));
+ sprintf(hs4,"CLR usage %d",clrusg);
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(5,fnt,snd,400,280,0.3f,hs4));
+ sprintf(hs5,"Average FPS %.2f",averfps);
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(6,fnt,snd,400,320,0.4f,hs5));
+ if (CheckHighScore()!=-1)
+ {
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(7,fnt,snd,400,360,0.5f,"Keep this in your record?"));
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(8,fnt,snd,400,400,0.6f,"Yes"));
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(9,fnt,snd,400,440,0.7f,"No thanks..."));
+ }
+ else
+ {
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(7,fnt,snd,400,360,0.5f,""));
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(8,fnt,snd,400,400,0.6f,""));
+ CompleteGUI->AddCtrl(new hgeGUIMenuItem(9,fnt,snd,400,440,0.7f,"Back to menu"));
+ }
+ for (int i=1;i<=7;++i)CompleteGUI->EnableCtrl(i,false);
+ CompleteGUI->SetCursor(spr);
+ CompleteGUI->SetNavMode(HGEGUI_UPDOWN|HGEGUI_CYCLED);
+ CompleteGUI->SetFocus(7);
+ CompleteGUI->Enter();
+}
+void CompleteGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=CompleteGUI->Update(dt);
+ if (id)
+ {
+ switch (id)
+ {
+ case 8:NewHighScoreGUI_Init();CompleteGUI->Leave();break;
+ case 9:Current_Position=0;gui->Enter();CompleteGUI->Leave();break;
+ }
+ }
+}
+void HSDetGUI_Init()
+{
+ HSDetailGUI=new hgeGUI();
+ Current_Position=10;
+ switch (view)
+ {
+ case 1:
+ memset(HSDetstr,0,sizeof(HSDetstr));
+ if (!ERec[detv].score)sprintf(HSDetstr[1],"Nothing here...");
+ else
+ {
+ sprintf(HSDetstr[1],"No. %d of Easy Mode",detv);
+ sprintf(HSDetstr[2],"Scored %lld by %s",ERec[detv].score,ERec[detv].name);
+ sprintf(HSDetstr[3],"Restarts %d",ERec[detv].rescol);
+ sprintf(HSDetstr[4],"Semi-Collisions %d",ERec[detv].scoll);
+ sprintf(HSDetstr[5],"CLR Usage %d",ERec[detv].clrusg);
+ sprintf(HSDetstr[6],"Average FPS %d.%d",ERec[detv].af_int,ERec[detv].af_fric);
+ }
+ for (int i=1;i<=6;++i)
+ HSDetailGUI->AddCtrl(new hgeGUIMenuItem(i,fnt,snd,400,170+30*i,0.1f*i-0.1f,HSDetstr[i])),
+ HSDetailGUI->EnableCtrl(i,false);
+ HSDetailGUI->AddCtrl(new hgeGUIMenuItem(7,fnt,snd,400,380,0.6f,"Back"));
+ break;
+ case 2:
+ memset(HSDetstr,0,sizeof(HSDetstr));
+ if (!NRec[detv].score)sprintf(HSDetstr[1],"Nothing here...");
+ else
+ {
+ sprintf(HSDetstr[1],"No. %d of Normal Mode",detv);
+ sprintf(HSDetstr[2],"Scored %lld by %s",NRec[detv].score,NRec[detv].name);
+ sprintf(HSDetstr[3],"Restarts %d",NRec[detv].rescol);
+ sprintf(HSDetstr[4],"Semi-Collisions %d",NRec[detv].scoll);
+ sprintf(HSDetstr[5],"CLR Usage %d",NRec[detv].clrusg);
+ sprintf(HSDetstr[6],"Average FPS %d.%d",NRec[detv].af_int,NRec[detv].af_fric);
+ }
+ for (int i=1;i<=6;++i)
+ HSDetailGUI->AddCtrl(new hgeGUIMenuItem(i,fnt,snd,400,170+30*i,0.1f*i-0.1f,HSDetstr[i])),
+ HSDetailGUI->EnableCtrl(i,false);
+ HSDetailGUI->AddCtrl(new hgeGUIMenuItem(7,fnt,snd,400,380,0.6f,"Back"));
+ break;
+ case 3:
+ memset(HSDetstr,0,sizeof(HSDetstr));
+ if (!ExRec[detv].score)sprintf(HSDetstr[1],"Nothing here...");
+ else
+ {
+ sprintf(HSDetstr[1],"No. %d of Extreme Mode",detv);
+ sprintf(HSDetstr[2],"Scored %lld by %s",ExRec[detv].score,ExRec[detv].name);
+ sprintf(HSDetstr[3],"Restarts %d",ExRec[detv].rescol);
+ sprintf(HSDetstr[4],"Semi-Collisions %d",ExRec[detv].scoll);
+ sprintf(HSDetstr[5],"CLR Usage %d",ExRec[detv].clrusg);
+ sprintf(HSDetstr[6],"Average FPS %d.%d",ExRec[detv].af_int,ExRec[detv].af_fric);
+ }
+ for (int i=1;i<=6;++i)
+ HSDetailGUI->AddCtrl(new hgeGUIMenuItem(i,fnt,snd,400,170+30*i,0.1f*i-0.1f,HSDetstr[i])),
+ HSDetailGUI->EnableCtrl(i,false);
+ HSDetailGUI->AddCtrl(new hgeGUIMenuItem(7,fnt,snd,400,380,0.6f,"Back"));
+ break;
+ case 4:
+ memset(HSDetstr,0,sizeof(HSDetstr));
+ if (!FPMRec[detv].score)sprintf(HSDetstr[1],"Nothing here...");
+ else
+ {
+ sprintf(HSDetstr[1],"No. %d of Free Play Mode",detv);
+ sprintf(HSDetstr[2],"Scored %lld by %s",FPMRec[detv].score,FPMRec[detv].name);
+ sprintf(HSDetstr[3],"Collisions %d",FPMRec[detv].rescol);
+ sprintf(HSDetstr[4],"Semi-Collisions %d",FPMRec[detv].scoll);
+ sprintf(HSDetstr[5],"CLR Usage %d",FPMRec[detv].clrusg);
+ sprintf(HSDetstr[6],"Average FPS %d.%d",FPMRec[detv].af_int,FPMRec[detv].af_fric);
+ }
+ for (int i=1;i<=6;++i)
+ HSDetailGUI->AddCtrl(new hgeGUIMenuItem(i,fnt,snd,400,170+30*i,0.1f*i-0.1f,HSDetstr[i])),
+ HSDetailGUI->EnableCtrl(i,false);
+ HSDetailGUI->AddCtrl(new hgeGUIMenuItem(7,fnt,snd,400,380,0.6f,"Back"));
+ break;
+ }
+ HSDetailGUI->SetCursor(spr);
+ HSDetailGUI->SetNavMode(HGEGUI_UPDOWN);
+ HSDetailGUI->SetFocus(7);
+ HSDetailGUI->Enter();
+}
+void HSDetGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=HSDetailGUI->Update(dt);
+ if (id)
+ {
+ switch (id)
+ {
+ case 7:Current_Position=9;HSDetailGUI->Leave();HSViewGUI->Enter();break;
+ }
+ }
+}
+void HSViewGUI_Init()
+{
+ Current_Position=9;
+ HSViewGUI=new hgeGUI();
+ switch (view)
+ {
+ case 1:
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,"Highscore - Easy"));
+ for (int i=1;i<=Ecnt;++i)
+ {
+ sprintf(HSVstr[i],"%d. %s - %lld",i,ERec[i].name,ERec[i].score);
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(i+1,fnt,snd,400,200+30*i,0.1f*i,HSVstr[i]));
+ }
+ for (int i=Ecnt+1;i<=5;++i)
+ {
+ sprintf(HSVstr[i],"%d. ----------",i);
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(i+1,fnt,snd,400,200+30*i,0.1f*i,HSVstr[i]));
+ }
+ break;
+ case 2:
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,"Highscore - Normal"));
+ for (int i=1;i<=Ncnt;++i)
+ {
+ sprintf(HSVstr[i],"%d. %s - %lld",i,NRec[i].name,NRec[i].score);
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(i+1,fnt,snd,400,200+30*i,0.1f*i,HSVstr[i]));
+ }
+ for (int i=Ncnt+1;i<=5;++i)
+ {
+ sprintf(HSVstr[i],"%d. ----------",i);
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(i+1,fnt,snd,400,200+30*i,0.1f*i,HSVstr[i]));
+ }
+ break;
+ case 3:
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,"Highscore - Extreme"));
+ for (int i=1;i<=Excnt;++i)
+ {
+ sprintf(HSVstr[i],"%d. %s - %lld",i,ExRec[i].name,ExRec[i].score);
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(i+1,fnt,snd,400,200+30*i,0.1f*i,HSVstr[i]));
+ }
+ for (int i=Excnt+1;i<=5;++i)
+ {
+ sprintf(HSVstr[i],"%d. ----------",i);
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(i+1,fnt,snd,400,200+30*i,0.1f*i,HSVstr[i]));
+ }
+ break;
+ case 4:
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,"Highscore - Free Play Mode"));
+ for (int i=1;i<=FPMcnt;++i)
+ {
+ sprintf(HSVstr[i],"%d. %s - %lld",i,FPMRec[i].name,FPMRec[i].score);
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(i+1,fnt,snd,400,200+30*i,0.1f*i,HSVstr[i]));
+ }
+ for (int i=FPMcnt+1;i<=5;++i)
+ {
+ sprintf(HSVstr[i],"%d. ----------",i);
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(i+1,fnt,snd,400,200+30*i,0.1f*i,HSVstr[i]));
+ }
+ break;
+ }
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(7,fnt,snd,400,380,0.6f,"Select one record to view details."));
+ HSViewGUI->AddCtrl(new hgeGUIMenuItem(8,fnt,snd,400,410,0.7f,"Back"));
+ HSViewGUI->EnableCtrl(1,false);HSViewGUI->EnableCtrl(7,false);
+ HSViewGUI->SetCursor(spr);
+ HSViewGUI->SetNavMode(HGEGUI_UPDOWN|HGEGUI_CYCLED);
+ HSViewGUI->SetFocus(2);
+ HSViewGUI->Enter();
+}
+void HSViewGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=HSViewGUI->Update(dt);
+ if (id)
+ {
+ switch (id)
+ {
+ case 2:detv=1;HSDetGUI_Init();break;
+ case 3:detv=2;HSDetGUI_Init();break;
+ case 4:detv=3;HSDetGUI_Init();break;
+ case 5:detv=4;HSDetGUI_Init();break;
+ case 6:detv=5;HSDetGUI_Init();break;
+ case 8:Current_Position=8;HSViewGUI->Leave();if (!HighScoreGUI)HighScoreGUI_Init();HighScoreGUI->Enter();break;
+ }
+ }
+}
+void HighScoreGUI_Init()
+{
+ HighScoreGUI=new hgeGUI();
+ Current_Position=8;
+ HighScoreGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,350,200,0.0f,"View Highscores && Records for..."));
+ HighScoreGUI->AddCtrl(new hgeGUIMenuItem(2,fnt,snd,400,240,0.1f,"Easy"));
+ HighScoreGUI->AddCtrl(new hgeGUIMenuItem(3,fnt,snd,400,280,0.2f,"Normal"));
+ HighScoreGUI->AddCtrl(new hgeGUIMenuItem(4,fnt,snd,400,320,0.3f,"Extreme"));
+ HighScoreGUI->AddCtrl(new hgeGUIMenuItem(5,fnt,snd,400,360,0.4f,"Free Play Mode"));
+ HighScoreGUI->AddCtrl(new hgeGUIMenuItem(6,fnt,snd,400,400,0.5f,"Back"));
+ HighScoreGUI->EnableCtrl(1,false);
+ HighScoreGUI->SetCursor(spr);
+ HighScoreGUI->SetNavMode(HGEGUI_UPDOWN|HGEGUI_CYCLED);
+ HighScoreGUI->SetFocus(7);
+ HighScoreGUI->Enter();
+}
+void HighScoreGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=HighScoreGUI->Update(dt);
+ if (id)
+ {
+ switch (id)
+ {
+ case 2:view=1;HSViewGUI_Init();break;
+ case 3:view=2;HSViewGUI_Init();break;
+ case 4:view=3;HSViewGUI_Init();break;
+ case 5:view=4;HSViewGUI_Init();break;
+ case 6:Current_Position=0;HighScoreGUI->Leave();gui->Enter();break;
+ }
+ }
+
+}
+void BkTTitleGUI_Init()
+{
+ BkTTitleGUI=new hgeGUI();
+ Current_Position=12;
+ BkTTitleGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,"Really?"));
+ BkTTitleGUI->AddCtrl(new hgeGUIMenuItem(2,fnt,snd,200,250,0.1f,"I've pressed the wrong key"));
+ BkTTitleGUI->AddCtrl(new hgeGUIMenuItem(3,fnt,snd,600,250,0.2f,"Do return to menu!"));
+ BkTTitleGUI->EnableCtrl(1,false);
+ BkTTitleGUI->SetCursor(spr);
+ BkTTitleGUI->SetNavMode(HGEGUI_LEFTRIGHT|HGEGUI_CYCLED);
+ BkTTitleGUI->SetFocus(2);
+ BkTTitleGUI->Enter();
+}
+void BkTTitleGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=BkTTitleGUI->Update(dt);
+ if (id)
+ {
+ switch (id)
+ {
+ case 2:
+ BkTTitleGUI->Leave();
+ Current_Position=11;
+ PauseGUI_Init();
+ break;
+ case 3:
+ Current_Position=0;BkTTitleGUI->Leave();gui->Enter();
+ break;
+ }
+ }
+}
+void PauseGUI_Init()
+{
+ PauseGUI=new hgeGUI();
+ Current_Position=11;
+ DisableAllTower=DisablePlayer=true;
+ PauseGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,"Paused..."));
+ PauseGUI->AddCtrl(new hgeGUIMenuItem(2,fnt,snd,400,240,0.1f,"Return to Game"));
+ PauseGUI->AddCtrl(new hgeGUIMenuItem(3,fnt,snd,400,280,0.2f,"Return to Title"));
+ PauseGUI->EnableCtrl(1,false);
+ PauseGUI->SetCursor(spr);
+ PauseGUI->SetNavMode(HGEGUI_UPDOWN|HGEGUI_CYCLED);
+ PauseGUI->SetFocus(2);
+ PauseGUI->Enter();
+}
+void PauseGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=PauseGUI->Update(dt);
+ if (id)
+ {
+ switch (id)
+ {
+ case 2:
+ PauseGUI->Leave();
+ Current_Position=1;
+ DisableAllTower=DisablePlayer=false;
+ break;
+ case 3:
+ BkTTitleGUI_Init();
+ break;
+ }
+ }
+}
+int AP_Update(int plrspd,int plrslospd,int clrbns)
+{
+ int res=0;
+ if (plrspd<=4)res+=plrspd*1200;else res+=5000;
+ switch (plrslospd)
+ {
+ case 1:res+=4000;break;
+ case 2:res+=3200;break;
+ case 3:res+=2000;break;
+ case 4:res+=1500;break;
+ case 5:res+=700;break;
+ }
+ switch (clrbns)
+ {
+ case 0:break;
+ case 1:res+=1500;break;
+ case 2:res+=2700;break;
+ case 3:res+=4000;break;
+ case 4:res+=5500;break;
+ }
+ return res;
+}
+void Options_Writeback()
+{
+ freopen("blr.cfg","w",stdout);
+ printf(";CBL");
+ printf("%c",fpslvl==1?1:0);
+ printf("%c",tfs?1:0);
+ printf("%c",fpslvl==2?1:0);
+ printf("%c",diffkey?1:0);
+ printf("%c%c%c",plrspd,plrslospd,clrbns);
+ fclose(stdout);
+}
+void OptionsGUI_Init()
+{
+ OptionsGUI=new hgeGUI();
+ Current_Position=13;
+ if (!tfs)
+ sprintf(opt[0],"Fullscreen: Off");
+ else
+ sprintf(opt[0],"Fullscreen: On");
+ OptionsGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,opt[0]));
+ switch (fpslvl)
+ {
+ case 0:sprintf(opt[1],"FPS Level: Natural");break;
+ case 1:sprintf(opt[1],"FPS Level: Low FPS");break;
+ case 2:sprintf(opt[1],"FPS Level: Highest");break;
+ }
+ OptionsGUI->AddCtrl(new hgeGUIMenuItem(2,fnt,snd,400,240,0.1f,opt[1]));
+ if (diffkey)
+ sprintf(opt[2],"Use Key X for Clear Range");
+ else
+ sprintf(opt[2],"Use Key Z for Clear Range");
+ OptionsGUI->AddCtrl(new hgeGUIMenuItem(3,fnt,snd,400,280,0.2f,opt[2]));
+ OptionsGUI->AddCtrl(new hgeGUIMenuItem(4,fnt,snd,400,320,0.3f,"Player Profile"));
+ OptionsGUI->AddCtrl(new hgeGUIMenuItem(5,fnt,snd,400,360,0.4f,"Save and Exit"));
+ OptionsGUI->SetNavMode(HGEGUI_UPDOWN);
+ OptionsGUI->SetCursor(spr);
+ OptionsGUI->SetFocus(1);
+ OptionsGUI->Enter();
+}
+void PlayerProfGUI_Init()
+{
+ PlayerProfGUI=new hgeGUI();
+ Current_Position=14;
+ sprintf(opt[3],"Moving Speed: -%d+",plrspd);
+ sprintf(opt[4],"Precise Moving Speed: -%d+",plrslospd);
+ sprintf(opt[5],"Clear Range Bonus: -%d+",clrbns);
+ sprintf(opt[6],"Ability Point %d/10000",AP_Update(plrspd,plrslospd,clrbns));
+ PlayerProfGUI->AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,opt[3]));
+ PlayerProfGUI->AddCtrl(new hgeGUIMenuItem(2,fnt,snd,400,240,0.1f,opt[4]));
+ PlayerProfGUI->AddCtrl(new hgeGUIMenuItem(3,fnt,snd,400,280,0.2f,opt[5]));
+ PlayerProfGUI->AddCtrl(new hgeGUIMenuItem(4,fnt,snd,400,320,0.3f,opt[6]));
+ PlayerProfGUI->AddCtrl(new hgeGUIMenuItem(5,fnt,snd,400,360,0.4f,"Back"));
+ PlayerProfGUI->SetNavMode(HGEGUI_UPDOWN);
+ PlayerProfGUI->SetCursor(spr);
+ PlayerProfGUI->SetFocus(1);
+ PlayerProfGUI->Enter();
+}
+void PlayerProfGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=PlayerProfGUI->Update(dt);
+ if (id==5&&AP_Update(plrspd,plrslospd,clrbns)<=10000)
+ {PlayerProfGUI->Leave();OptionsGUI_Init();}
+ if (hge->Input_GetKeyState(HGEK_LEFT))
+ {
+ if (!LOWFPS)++lastkeypressed;else lastkeypressed+=17;
+ if (lastkeypressed>=100)
+ {
+ switch (PlayerProfGUI->GetFocus())
+ {
+ case 1:
+ if (plrspd>1)--plrspd;
+ sprintf(opt[3],"Moving Speed: -%d+",plrspd);
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(1))->RePos(400,200);
+ sprintf(opt[6],"Ability Point %d/10000",AP_Update(plrspd,plrslospd,clrbns));
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(4))->RePos(400,320);
+ break;
+ case 2:
+ if (plrslospd>1)--plrslospd;
+ sprintf(opt[4],"Precise Moving Speed: -%d+",plrslospd);
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(2))->RePos(400,240);
+ sprintf(opt[6],"Ability Point %d/10000",AP_Update(plrspd,plrslospd,clrbns));
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(4))->RePos(400,320);
+ break;
+ case 3:
+ if (clrbns>0)--clrbns;
+ sprintf(opt[5],"Clear Range Bonus: -%d+",clrbns);
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(3))->RePos(400,280);
+ sprintf(opt[6],"Ability Point %d/10000",AP_Update(plrspd,plrslospd,clrbns));
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(4))->RePos(400,320);
+ break;
+ }
+ lastkeypressed=0;
+ }
+ }
+ if (hge->Input_GetKeyState(HGEK_RIGHT))
+ {
+ if (!LOWFPS)++lastkeypressed;else lastkeypressed+=17;
+ if (lastkeypressed>=100)
+ {
+ switch (PlayerProfGUI->GetFocus())
+ {
+ case 1:
+ if (plrspd<5)++plrspd;
+ sprintf(opt[3],"Moving Speed: -%d+",plrspd);
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(1))->RePos(400,200);
+ sprintf(opt[6],"Ability Point %d/10000",AP_Update(plrspd,plrslospd,clrbns));
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(4))->RePos(400,320);
+ break;
+ case 2:
+ if (plrslospd<5)++plrslospd;
+ sprintf(opt[4],"Precise Moving Speed: -%d+",plrslospd);
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(2))->RePos(400,240);
+ sprintf(opt[6],"Ability Point %d/10000",AP_Update(plrspd,plrslospd,clrbns));
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(4))->RePos(400,320);
+ break;
+ case 3:
+ if (clrbns<4)++clrbns;
+ sprintf(opt[5],"Clear Range Bonus: -%d+",clrbns);
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(3))->RePos(400,280);
+ sprintf(opt[6],"Ability Point %d/10000",AP_Update(plrspd,plrslospd,clrbns));
+ ((hgeGUIMenuItem*)PlayerProfGUI->GetCtrl(4))->RePos(400,320);
+ break;
+ }
+ lastkeypressed=0;
+ }
+ }
+}
+void OptionsGUI_FrameFnk()
+{
+ float dt=hge->Timer_GetDelta();
+ int id=OptionsGUI->Update(dt);
+ if (id)
+ {
+ switch (id)
+ {
+ case 1:
+ tfs=!tfs;
+ if (!tfs)
+ sprintf(opt[0],"Fullscreen: Off");
+ else
+ sprintf(opt[0],"Fullscreen: On");
+ ((hgeGUIMenuItem*)OptionsGUI->GetCtrl(1))->RePos(400,200);
+ break;
+ case 2:
+ switch (fpslvl)
+ {
+ case 0:
+ fpslvl=1;LOWFPS=true;
+ hge->System_SetState(HGE_FPS,61);
+ break;
+ case 1:
+ fpslvl=2;LOWFPS=false;
+ hge->System_SetState(HGE_FPS,1000);
+ break;
+ case 2:
+ fpslvl=0;LOWFPS=false;
+ hge->System_SetState(HGE_FPS,0);
+ break;
+ }
+ switch (fpslvl)
+ {
+ case 0:sprintf(opt[1],"FPS Level: Natural");break;
+ case 1:sprintf(opt[1],"FPS Level: Low FPS");break;
+ case 2:sprintf(opt[1],"FPS Level: Highest");break;
+ }
+ ((hgeGUIMenuItem*)OptionsGUI->GetCtrl(2))->RePos(400,240);
+ break;
+ case 3:
+ diffkey=!diffkey;
+ if (diffkey)
+ sprintf(opt[2],"Use Key X for Clear Range");
+ else
+ sprintf(opt[2],"Use Key Z for Clear Range");
+ ((hgeGUIMenuItem*)OptionsGUI->GetCtrl(3))->RePos(400,280);
+ break;
+ case 4:
+ PlayerProfGUI_Init();
+ break;
+ case 5:
+ Options_Writeback();
+ OptionsGUI->Leave();
+ gui->Enter();
+ Current_Position=0;
+ break;
+ }
+ }
+}
diff --git a/archive/blr1/src/scorec.h b/archive/blr1/src/scorec.h new file mode 100644 index 0000000..d07615a --- /dev/null +++ b/archive/blr1/src/scorec.h @@ -0,0 +1,252 @@ +//Chrisoft Bullet Lab Remix HGE
+//Score Recording Implementations
+//"Copyleft" Chrisoft 2013
+struct TRecord
+{
+ long long score;
+ int len,rescol,scoll,clrusg;
+ int af_int,af_fric;
+ char name[16];
+}ERec[10],NRec[10],ExRec[10],FPMRec[10];
+unsigned int Ecnt,Ncnt,Excnt,FPMcnt;
+unsigned int header,seprt;
+char newname[16];
+int newlen,tbframebrk;
+unsigned int Getuint()
+{
+ unsigned int c1,c2,c3,c4,res;
+ c1=c2=c3=c4=0;
+ scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
+ res=(c1<<24)+(c2<<16)+(c3<<8)+c4;
+ return res;
+}
+int Getint()
+{
+ return (int)Getuint();
+}
+long long Getll()
+{
+ long long c1,c2,c3,c4,c5,c6,c7,c8,res;
+ c1=c2=c3=c4=c5=c6=c7=c8=0;
+ scanf("%c%c%c%c%c%c%c%c",&c1,&c2,&c3,&c4,&c5,&c6,&c7,&c8);
+ res=(c1<<56)+(c2<<48)+(c3<<40)+(c4<<32)+(c5<<24)+(c6<<16)+(c7<<8)+c8;
+ return res;
+}
+void Putuint(unsigned int a)
+{
+ unsigned int c1,c2,c3,c4;
+ c1=a&0xFF000000;c2=a&0x00FF0000;
+ c3=a&0x0000FF00;c4=a&0x000000FF;
+ printf("%c%c%c%c",c1,c2,c3,c4);
+}
+void Putint(int a)
+{
+ Putuint((unsigned int)a);
+}
+void Putll(long long a)
+{
+ int c1,c2,c3,c4,c5,c6,c7,c8;
+ c1=a&0xFF00000000000000;
+ c2=a&0x00FF000000000000;
+ c3=a&0x0000FF0000000000;
+ c4=a&0x000000FF00000000;
+ c5=a&0x00000000FF000000;
+ c6=a&0x0000000000FF0000;
+ c7=a&0x000000000000FF00;
+ c8=a&0x00000000000000FF;
+ printf("%c%c%c%c%c%c%c%c",c1,c2,c3,c4,c5,c6,c7,c8);
+}
+TRecord GetTRecord()
+{
+ TRecord res;
+ res.len=Getint();
+ memset(res.name,0,sizeof(res.name));
+ for (int i=0;i<res.len;++i)scanf("%c",&res.name[i]);
+ res.score=Getll();
+ res.rescol=Getint();
+ res.scoll=Getint();
+ res.clrusg=Getint();
+ res.af_int=Getint();res.af_fric=Getint();
+ return res;
+}
+void PutTRecord(TRecord a)
+{
+ Putint(a.len);
+ for (int i=0;i<a.len;++i)printf("%c",a.name[i]);
+ Putll(a.score);
+ Putint(a.rescol);
+ Putint(a.scoll);
+ Putint(a.clrusg);
+ Putint(a.af_int);Putint(a.af_fric);
+}
+void Score_Init()
+{
+ freopen("score.cfg","r",stdin);
+ header=Getuint();
+ if (header!=0x3b424c53)//0x3b424c53=";BLS"
+ {
+ fclose(stdin);
+ Error("Error when loading score file!");
+ }
+ seprt=Getuint();
+ if (seprt!=0xd1ffa0c0)
+ {
+ fclose(stdin);
+ Error("Error when loading score file!");
+ }
+ Ecnt=Getuint();
+ for (unsigned int i=1;i<=Ecnt;++i)ERec[i]=GetTRecord();
+ seprt=Getuint();
+ if (seprt!=0xd1ffa0c1)
+ {
+ fclose(stdin);
+ Error("Error when loading score file!");
+ }
+ Ncnt=Getuint();
+ for (unsigned int i=1;i<=Ncnt;++i)NRec[i]=GetTRecord();
+ seprt=Getuint();
+ if (seprt!=0xd1ffa0c2)
+ {
+ fclose(stdin);
+ Error("Error when loading score file!");
+ }
+ Excnt=Getuint();
+ for (unsigned int i=1;i<=Excnt;++i)ExRec[i]=GetTRecord();
+ seprt=Getuint();
+ if (seprt!=0xd1ffa0c3)
+ {
+ fclose(stdin);
+ Error("Error when loading score file!");
+ }
+ FPMcnt=Getuint();
+ for (unsigned int i=1;i<=FPMcnt;++i)FPMRec[i]=GetTRecord();
+ fclose(stdin);
+}
+int CheckHighScore()
+{
+ int i;
+ switch (mode)
+ {
+ case 4:
+ for (i=1;i<=Ecnt;++i)
+ if (ERec[i].score<score)break;
+ if (i==5&&ERec[i].score>score)return -1;
+ if (Ecnt<5&&ERec[Ecnt].score>score)return Ecnt+1;
+ return i;
+ break;
+ case 1:
+ for (i=1;i<=Ncnt;++i)
+ if (NRec[i].score<score)break;
+ if (i==5&&NRec[i].score>score)return -1;
+ if (Ncnt<5&&NRec[Ncnt].score>score)return Ncnt+1;
+ return i;
+ break;
+ case 2:
+ for (i=1;i<=Excnt;++i)
+ if (ExRec[i].score<score)break;
+ if (i==5&&ExRec[i].score>score)return -1;
+ if (Excnt<5&&ExRec[Ncnt].score>score)return Excnt+1;
+ return i;
+ break;
+ case 3:
+ for (i=1;i<=FPMcnt;++i)
+ if (FPMRec[i].score<score)break;
+ if (i==5&&FPMRec[i].score>score)return -1;
+ if (FPMcnt<5&&FPMRec[Ncnt].score>score)return FPMcnt+1;
+ return i;
+ break;
+ }
+}
+void Score_Write()
+{
+ freopen("score.cfg","w",stdout);
+ Putuint(0x3b424c53u);
+ Putuint(0xd1ffa0c0u);
+ Putint(Ecnt);
+ for (int i=1;i<=Ecnt;++i)
+ PutTRecord(ERec[i]);
+ Putuint(0xd1ffa0c1u);
+ Putint(Ncnt);
+ for (int i=1;i<=Ncnt;++i)
+ PutTRecord(NRec[i]);
+ Putuint(0xd1ffa0c2u);
+ Putint(Excnt);
+ for (int i=1;i<=Excnt;++i)
+ PutTRecord(ExRec[i]);
+ Putuint(0xd1ffa0c3u);
+ Putint(FPMcnt);
+ for (int i=1;i<=FPMcnt;++i)
+ PutTRecord(FPMRec[i]);
+ fclose(stdout);
+}
+void Score_Initailize()
+{
+ freopen("score.cfg","w",stdout);
+ printf(";BLS");
+ printf("%c%c%c%c",0xd1,0xff,0xa0,0xc0);printf("%c%c%c%c",0,0,0,0);
+ printf("%c%c%c%c",0xd1,0xff,0xa0,0xc1);printf("%c%c%c%c",0,0,0,0);
+ printf("%c%c%c%c",0xd1,0xff,0xa0,0xc2);printf("%c%c%c%c",0,0,0,0);
+ printf("%c%c%c%c",0xd1,0xff,0xa0,0xc3);printf("%c%c%c%c",0,0,0,0);
+ fclose(stdout);
+}
+void InsertHighScore()
+{
+ int pos=CheckHighScore();
+ switch (mode)
+ {
+ case 4:
+ if (pos<=Ecnt)
+ for (int i=5;i>pos;--i)
+ ERec[i]=ERec[i-1];
+ else ++Ecnt;
+ if (Ecnt<5)++Ecnt;
+ ERec[pos].score=score;
+ ERec[pos].len=newlen;
+ memcpy(ERec[pos].name,newname,sizeof(newname));
+ ERec[pos].clrusg=clrusg;
+ ERec[pos].rescol=restarts;ERec[pos].scoll=semicoll;
+ ERec[pos].af_int=(int)averfps;
+ ERec[pos].af_fric=(int)(averfps*10)%10*10+(int)(averfps*100)%10;
+ break;
+ case 1:
+ if (pos<=Ncnt)
+ for (int i=5;i>pos;--i)
+ NRec[i]=NRec[i-1];
+ if (Ncnt<5)++Ncnt;
+ NRec[pos].score=score;
+ NRec[pos].len=newlen;
+ memcpy(NRec[pos].name,newname,sizeof(newname));
+ NRec[pos].clrusg=clrusg;
+ NRec[pos].rescol=restarts;NRec[pos].scoll=semicoll;
+ NRec[pos].af_int=(int)averfps;
+ NRec[pos].af_fric=(int)(averfps*10)%10*10+(int)(averfps*100)%10;
+ break;
+ case 2:
+ if (pos<=Excnt)
+ for (int i=5;i>pos;--i)
+ ExRec[i]=ExRec[i-1];
+ if (Excnt<5)++Excnt;
+ ExRec[pos].score=score;
+ ExRec[pos].len=newlen;
+ memcpy(ExRec[pos].name,newname,sizeof(newname));
+ ExRec[pos].clrusg=clrusg;
+ ExRec[pos].rescol=restarts;ExRec[pos].scoll=semicoll;
+ ExRec[pos].af_int=(int)averfps;
+ ExRec[pos].af_fric=(int)(averfps*10)%10*10+(int)(averfps*100)%10;
+ break;
+ case 3:
+ if (pos<=FPMcnt)
+ for (int i=5;i>pos;--i)
+ FPMRec[i]=FPMRec[i-1];
+ if (FPMcnt<5)++FPMcnt;
+ FPMRec[pos].score=score;
+ FPMRec[pos].len=newlen;
+ memcpy(FPMRec[pos].name,newname,sizeof(newname));
+ FPMRec[pos].clrusg=clrusg;
+ FPMRec[pos].rescol=coll;FPMRec[pos].scoll=semicoll;
+ FPMRec[pos].af_int=(int)averfps;
+ FPMRec[pos].af_fric=(int)(averfps*10)%10*10+(int)(averfps*100)%10;
+ break;
+ }
+ Score_Write();
+}
\ No newline at end of file diff --git a/archive/blr1/src/towernbullet.h b/archive/blr1/src/towernbullet.h new file mode 100644 index 0000000..6cae63d --- /dev/null +++ b/archive/blr1/src/towernbullet.h @@ -0,0 +1,983 @@ +//Chrisoft Bullet Lab Remix HGE
+//Towers and Bullets Implementations
+//"Copyleft" Chrisoft 2013
+//WANTED:
+//Human-being which really knows what these mean, please contact Chirsno which is puzzled by these shitty codes..
+#include "effects.h"
+int CreateBullet1(double x,double y,double bs,bool eff=false)
+{
+ ++shots;
+ int i;
+ if (bulcnt==0)
+ bulcnt=i=1;
+ else
+ {
+ for (i=1;i<=bulcnt;++i)
+ if (!bullet[i].exist)break;
+ if (i>bulcnt)bulcnt=i;
+ }
+ bullet[i].exist=true;
+ bullet[i].bullettype=1;
+ bullet[i].bulletpos.x=x;
+ bullet[i].bulletpos.y=y;
+ bullet[i].bulletdir.x=x-playerpos.x;
+ bullet[i].bulletdir.y=y-playerpos.y;
+ bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y;
+ bullet[i].dist=sqrt(bullet[i].dist);
+ bullet[i].bulletspeed=bs;
+ bullet[i].bulletspr=new hgeSprite(SprSheet1,23,0,24,24);
+ bullet[i].bulletspr->SetColor(0x80FFFFFF);
+ bullet[i].scollable=true;
+ bullet[i].scale=1;
+ bullet[i].bulletspr->SetHotSpot(12,12);
+ if (eff)BulletEffect_Attatch(i);
+ return i;
+}
+void CreateBullet2(double x,double y,double bs,double rad,bool eff=false)
+{
+ ++shots;
+ int i;
+ if (bulcnt==0)
+ bulcnt=i=1;
+ else
+ {
+ for (i=1;i<=bulcnt;++i)
+ if (!bullet[i].exist)break;
+ if (i>bulcnt)bulcnt=i;
+ }
+ bullet[i].exist=true;
+ bullet[i].bullettype=2;
+ bullet[i].bulletpos.x=x;
+ bullet[i].bulletpos.y=y;
+ bullet[i].bulletdir.x=cos(rad);
+ bullet[i].bulletdir.y=sin(rad);
+ bullet[i].bulletspeed=bs;
+ bullet[i].lifetime=0;
+ bullet[i].bulletspr=new hgeSprite(SprSheet1,0,0,24,24);
+ bullet[i].bulletspr->SetColor(0x80FFFFFF);
+ bullet[i].scollable=true;
+ bullet[i].scale=1;
+ bullet[i].bulletspr->SetHotSpot(12,12);
+ if (eff)BulletEffect_Attatch(i);
+}
+void CreateBullet3(double x,double y,double bs,int dir,bool eff=false)
+{
+ CreateBullet2(x,y,bs,dir*0.5235987756,eff);
+}
+void CreateBullet4(double x,double y,double bs,int yelbrk=0,bool eff=false)
+{
+ ++shots;
+ int i;
+ if (bulcnt==0)
+ bulcnt=i=1;
+ else
+ {
+ for (i=1;i<=bulcnt;++i)
+ if (!bullet[i].exist)break;
+ if (i>bulcnt)bulcnt=i;
+ }
+ bullet[i].exist=true;
+ bullet[i].bullettype=4;
+ bullet[i].bulletpos.x=x;
+ bullet[i].bulletpos.y=y;
+ bullet[i].bulletdir.x=x-playerpos.x;
+ bullet[i].bulletdir.y=y-playerpos.y;
+ bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y;
+ bullet[i].dist=sqrt(bullet[i].dist);
+ bullet[i].bulletspeed=bs;
+ bullet[i].yelbrk=yelbrk;
+ bullet[i].bulletspr=new hgeSprite(SprSheet1,0,46,24,24);
+ bullet[i].bulletspr->SetColor(0x80FFFFFF);
+ bullet[i].scollable=true;
+ bullet[i].scale=1;
+ bullet[i].bulletspr->SetHotSpot(12,12);
+ if (eff)BulletEffect_Attatch(i);
+}
+void CreateBullet5(double x,double y,double bs,bool eff=false)
+{
+ ++shots;
+ int i;
+ if (bulcnt==0)
+ bulcnt=i=1;
+ else
+ {
+ for (i=1;i<=bulcnt;++i)
+ if (!bullet[i].exist)break;
+ if (i>bulcnt)bulcnt=i;
+ }
+ bullet[i].exist=true;
+ bullet[i].bullettype=5;
+ bullet[i].bulletpos.x=x;
+ bullet[i].bulletpos.y=y;
+ bullet[i].bulletdir.x=x-playerpos.x;
+ bullet[i].bulletdir.y=y-playerpos.y;
+ bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y;
+ bullet[i].dist=sqrt(bullet[i].dist);
+ bullet[i].bulletspeed=bs;
+ bullet[i].bulletspr=new hgeSprite(SprSheet1,0,23,24,24);
+ bullet[i].bulletspr->SetColor(0x80FFFFFF);
+ bullet[i].scollable=true;
+ bullet[i].scale=1;
+ bullet[i].bulletspr->SetHotSpot(12,12);
+ if (eff)BulletEffect_Attatch(i);
+}
+int CreateBullet6(double x,double y,double bs,int explo,bool eff=false)
+{
+ ++shots;
+ int i;
+ if (bulcnt==0)
+ bulcnt=i=1;
+ else
+ {
+ for (i=1;i<=bulcnt;++i)
+ if (!bullet[i].exist)break;
+ if (i>bulcnt)bulcnt=i;
+ }
+ bullet[i].exist=true;
+ bullet[i].bullettype=6;
+ bullet[i].bulletpos.x=x;
+ bullet[i].bulletpos.y=y;
+ bullet[i].bulletdir.x=rand()%100-50;
+ bullet[i].bulletdir.y=rand()%100-50;
+ bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y;
+ bullet[i].dist=sqrt(bullet[i].dist);
+ bullet[i].bulletspeed=bs;
+ bullet[i].oriexplo=bullet[i].redexplo=explo;
+ bullet[i].bulletspr=new hgeSprite(SprSheet1,23,23,24,24);
+ bullet[i].bulletspr->SetColor(0x80FFFFFF);
+ bullet[i].scollable=true;
+ bullet[i].scale=1;
+ bullet[i].bulletspr->SetHotSpot(12,12);
+ if (eff)BulletEffect_Attatch(i);
+ return i;
+}
+int CreateBullet7(double x,double y,double bs,int explo,bool eff=false)
+{
+ ++shots;
+ int i;
+ if (bulcnt==0)
+ bulcnt=i=1;
+ else
+ {
+ for (i=1;i<=bulcnt;++i)
+ if (!bullet[i].exist)break;
+ if (i>bulcnt)bulcnt=i;
+ }
+ bullet[i].exist=true;
+ bullet[i].bullettype=7;
+ bullet[i].bulletpos.x=x;
+ bullet[i].bulletpos.y=y;
+ bullet[i].bulletdir.x=rand()%100-50;
+ bullet[i].bulletdir.y=rand()%100-50;
+ bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y;
+ bullet[i].dist=sqrt(bullet[i].dist);
+ bullet[i].bulletspeed=bs;
+ bullet[i].oriexplo=bullet[i].redexplo=explo;
+ bullet[i].bulletspr=new hgeSprite(SprSheet1,46,23,24,24);
+ bullet[i].bulletspr->SetColor(0x80FFFFFF);
+ bullet[i].redattrib=0;
+ bullet[i].whirem=whicnt;
+ bullet[i].whiskp=0;
+ bullet[i].scollable=true;
+ bullet[i].scale=1;
+ bullet[i].bulletspr->SetHotSpot(12,12);
+ if (eff)BulletEffect_Attatch(i);
+ return i;
+}
+void CreateBullet255(double x,double y,double bs)
+{
+ int i;
+ if (bulcnt==0)
+ bulcnt=i=1;
+ else
+ {
+ for (i=1;i<=bulcnt;++i)
+ if (!bullet[i].exist)break;
+ if (i>bulcnt)bulcnt=i;
+ }
+ bullet[i].exist=true;
+ bullet[i].bullettype=255;
+ bullet[i].bulletpos.x=x;
+ bullet[i].bulletpos.y=y;
+ bullet[i].bulletdir.x=x-playerpos.x;
+ bullet[i].bulletdir.y=y-playerpos.y;
+ bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y;
+ bullet[i].dist=sqrt(bullet[i].dist);
+ bullet[i].bulletspeed=bs;
+ bullet[i].bulletspr=new hgeSprite(SprSheet1,46,0,24,24);
+ bullet[i].bulletspr->SetColor(0x80FFFFFF);
+}
+void ProcessBullet1()
+{
+ for (int i=1;i<=bulcnt;++i)
+ {
+ if (!bullet[i].exist||bullet[i].bullettype!=1)continue;//If this bullet doesn't exist or is not of this type, do not render it.
+ if (!DisablePlayer)
+ {
+ if (LOWFPS)
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20*17;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20*17;//Process bullet's y coor.
+ }
+ else
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ }
+ BulletEffect_Process(i);
+ double dis=GetDist(bullet[i].bulletpos,playerpos);//Get distance between player and bullet
+ if (dis<=6||bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)
+ //If collision is detected or the bullet flys out of screen, delete it.
+ {
+ if (dis<=6)++coll,scminus+=10000;
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ else
+ {
+ bullet[i].bulletspr->RenderEx(bullet[i].bulletpos.x+7.2,bullet[i].bulletpos.y+7.2,0,0.6*bullet[i].scale,0);
+ if (dis<=16&&bullet[i].scollable)++semicoll,++dsmc,bullet[i].scollable=false,SCEffect_Attatch();
+ }
+ }
+}
+void ProcessBullet2()
+{
+ for (int i=1;i<=bulcnt;++i)
+ {
+ if (!bullet[i].exist||bullet[i].bullettype!=2)continue;//If this bullet doesn't exist or is not of this type, do not render it.
+ if (LOWFPS)bullet[i].lifetime+=17;else ++bullet[i].lifetime;
+ if (bullet[i].lifetime>=15000&&Refliction)
+ {
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ continue;
+ }
+ if (!DisablePlayer)
+ {
+ if (LOWFPS)
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x)/20*17;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y)/20*17;//Process bullet's y coor.
+ }
+ else
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x)/20;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y)/20;//Process bullet's y coor.
+ }
+ }
+ BulletEffect_Process(i);
+ double dis=GetDist(bullet[i].bulletpos,playerpos);//Get distance between player and bullet
+ if (bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)
+ {
+ if (Refliction)
+ bullet[i].bulletdir.x=-bullet[i].bulletdir.x,
+ bullet[i].bulletdir.y=-bullet[i].bulletdir.y;
+ else
+ {
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ continue;
+ }
+ }
+ if (dis<=6)
+ //If collision is detected or the bullet flys out of screen, delete it.
+ {
+ ++coll,scminus+=10000;
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ continue;
+ }
+ else
+ {
+ bullet[i].bulletspr->RenderEx(bullet[i].bulletpos.x+7.2,bullet[i].bulletpos.y+7.2,0,0.6*bullet[i].scale,0);
+ if (dis<=16&&bullet[i].scollable)++semicoll,++dsmc,bullet[i].scollable=false,SCEffect_Attatch();
+ }
+ }
+}
+//There is no need for ProcessBullet3() because they are in fact bullet2
+void ProcessBullet4()
+{
+ for (int i=1;i<=bulcnt;++i)
+ {
+ if (!bullet[i].exist||bullet[i].bullettype!=4)continue;//If this bullet doesn't exist or is not of this type, do not render it.
+ if (!DisablePlayer)
+ {
+ if (LOWFPS)
+ bullet[i].whirem+=17;
+ else
+ ++bullet[i].whirem;
+ if ((yelattrib&&bullet[i].whirem>=bullet[i].yelbrk)||!yelattrib)
+ {
+ bullet[i].whirem=0;
+ bullet[i].bulletdir.x=bullet[i].bulletpos.x-playerpos.x;
+ bullet[i].bulletdir.y=bullet[i].bulletpos.y-playerpos.y;
+ bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y;
+ bullet[i].dist=sqrt(bullet[i].dist);
+ }
+ if (LOWFPS)
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20*17;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20*17;//Process bullet's y coor.
+ }
+ else
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ //bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ //bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ BulletEffect_Process(i);
+ double dis=GetDist(bullet[i].bulletpos,playerpos);//Get distance between player and bullet
+ if (dis<=6||bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)
+ //If collision is detected or the bullet flys out of screen, delete it.
+ {
+ if (dis<=6)++coll,scminus+=10000;
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ else
+ {
+ bullet[i].bulletspr->RenderEx(bullet[i].bulletpos.x+7.2,bullet[i].bulletpos.y+7.2,0,0.6*bullet[i].scale,0);
+ if (dis<=16&&bullet[i].scollable)++semicoll,++dsmc,bullet[i].scollable=false,SCEffect_Attatch();
+ }
+ }
+}
+void ProcessBullet5()
+{
+ for (int i=1;i<=bulcnt;++i)
+ {
+ if (!bullet[i].exist||bullet[i].bullettype!=5)continue;//If this bullet doesn't exist or is not of this type, do not render it.
+ if (!DisablePlayer)
+ {
+ if (LOWFPS)
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20*17;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20*17;//Process bullet's y coor.
+ }
+ else
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ //bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ //bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ BulletEffect_Process(i);
+ double dis=GetDist(bullet[i].bulletpos,playerpos);//Get distance between player and bullet
+ if (dis<=6||bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)
+ //If collision is detected or the bullet flys out of screen, delete it.
+ {
+ if (dis<=6)playerspeed*=0.9,playerslospeed*=0.9;
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ else
+ {
+ bullet[i].bulletspr->RenderEx(bullet[i].bulletpos.x+7.2,bullet[i].bulletpos.y+7.2,0,0.6*bullet[i].scale,0);
+ }
+ }
+}
+void ProcessBullet6()
+{
+ for (int i=1;i<=bulcnt;++i)
+ {
+ if (!bullet[i].exist||bullet[i].bullettype!=6)continue;//If this bullet doesn't exist or is not of this type, do not render it.
+ if (!DisablePlayer)
+ {
+ if (LOWFPS)
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20*17;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20*17;//Process bullet's y coor.
+ }
+ else
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ //bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ //bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ BulletEffect_Process(i);
+ if (!LOWFPS)
+ {
+ if (bullet[i].redattrib==0)
+ --bullet[i].redexplo;
+ else
+ bullet[i].redexplo-=2;
+ }
+ else
+ {
+ if (bullet[i].redattrib==0)
+ bullet[i].redexplo-=17;
+ else
+ bullet[i].redexplo-=34;
+ }
+ if (bullet[i].redexplo<=0&&!DisableAllTower)
+ {
+ if (bullet[i].redattrib==0)
+ {
+ for (int j=1;j<=8;++j)
+ {
+ int pnt=CreateBullet6(bullet[i].bulletpos.x,bullet[i].bulletpos.y,bullet[i].bulletspeed,bullet[i].oriexplo);
+ //hge->Effect_PlayEx(snd,100,(bullet[i].bulletpos.x-400)/4);
+ bullet[pnt].bulletdir.x=cos(j*0.785398);
+ bullet[pnt].bulletdir.y=sin(j*0.785398);
+ bullet[pnt].dist=bullet[pnt].bulletdir.x*bullet[pnt].bulletdir.x+bullet[pnt].bulletdir.y*bullet[pnt].bulletdir.y;
+ bullet[pnt].dist=sqrt(bullet[pnt].dist);
+ bullet[pnt].redattrib=1;
+ }
+ }
+ else
+ {
+ for (int j=1;j<=12;++j)
+ CreateBullet2(bullet[i].bulletpos.x,bullet[i].bulletpos.y,bullet[i].bulletspeed,j*0.5236+clockrot);
+ clockrot+=deltarot;
+ deltarot+=0.004363322313;
+ }
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ double dis=GetDist(bullet[i].bulletpos,playerpos);//Get distance between player and bullet
+ if (dis<=6||bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)
+ //If collision is detected or the bullet flys out of screen, delete it.
+ {
+ if (dis<=6)++coll,scminus+=10000;
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ else
+ {
+ bullet[i].bulletspr->RenderEx(bullet[i].bulletpos.x+7.2,bullet[i].bulletpos.y+7.2,0,0.6*bullet[i].scale,0);
+ if (dis<=16&&bullet[i].scollable)++semicoll,++dsmc,bullet[i].scollable=false,SCEffect_Attatch();
+ }
+ }
+}
+void ProcessBullet7()
+{
+ for (int i=1;i<=bulcnt;++i)
+ {
+ if (!bullet[i].exist||bullet[i].bullettype!=7)continue;//If this bullet doesn't exist or is not of this type, do not render it.
+ if (!DisablePlayer)
+ {
+ if (LOWFPS)
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20*17;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20*17;//Process bullet's y coor.
+ }
+ else
+ {
+ bullet[i].bulletpos.x-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bsscale*bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ //bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ //bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ BulletEffect_Process(i);
+ if (!LOWFPS)
+ {
+ if (bullet[i].redattrib==0)
+ --bullet[i].redexplo;
+ else
+ bullet[i].redexplo-=3;
+ }
+ else
+ {
+ if (bullet[i].redattrib==0)
+ bullet[i].redexplo-=17;
+ else
+ bullet[i].redexplo-=51;
+ }
+ if (bullet[i].redexplo<=0&&!DisableAllTower)
+ {
+ if (bullet[i].redattrib==0)
+ {
+ int pnt=CreateBullet7(bullet[i].bulletpos.x,bullet[i].bulletpos.y,bullet[i].bulletspeed,bullet[i].oriexplo);
+ //hge->Effect_PlayEx(snd,100,(bullet[i].bulletpos.x-400)/4);
+ bullet[pnt].bulletdir.x=0;
+ bullet[pnt].bulletdir.y=0;
+ bullet[pnt].dist=1;
+ bullet[pnt].redattrib=1;
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ else
+ {
+ if (!LOWFPS)
+ ++bullet[i].whiskp;
+ else
+ bullet[i].whiskp+=17;
+ if (bullet[i].whiskp>50)
+ {
+ for (int j=1;j<=12;++j)
+ CreateBullet2(bullet[i].bulletpos.x,bullet[i].bulletpos.y,bullet[i].bulletspeed,j*0.5236+whirot);
+ whirot+=dwhirot;
+ dwhirot+=0.004363322313;
+ bullet[i].whiskp=0;
+ --bullet[i].whirem;
+ }
+ if (bullet[i].whirem<=0)
+ {
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ }
+ }
+ double dis=GetDist(bullet[i].bulletpos,playerpos);//Get distance between player and bullet
+ if (dis<=6||bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)
+ //If collision is detected or the bullet flys out of screen, delete it.
+ {
+ if (dis<=6)++coll,scminus+=10000;
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ else
+ {
+ bullet[i].bulletspr->RenderEx(bullet[i].bulletpos.x+7.2,bullet[i].bulletpos.y+7.2,0,0.6*bullet[i].scale,0);
+ if (dis<=16&&bullet[i].scollable)++semicoll,++dsmc,bullet[i].scollable=false,SCEffect_Attatch();
+ }
+ }
+}
+void ProcessBullet255()
+{
+ for (int i=1;i<=bulcnt;++i)
+ {
+ if (!bullet[i].exist||bullet[i].bullettype!=255)continue;//If this bullet doesn't exist or is not of this type, do not render it.
+ if (!DisablePlayer)
+ {
+ bullet[i].bulletdir.x=bullet[i].bulletpos.x-playerpos.x;
+ bullet[i].bulletdir.y=bullet[i].bulletpos.y-playerpos.y;
+ bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y;
+ bullet[i].dist=sqrt(bullet[i].dist);
+ if (LOWFPS)
+ {
+ bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20*17;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20*17;//Process bullet's y coor.
+ }
+ else
+ {
+ bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ //bullet[i].bulletpos.x-=bullet[i].bulletspeed*(bullet[i].bulletdir.x/bullet[i].dist)/20;//Process bullet's x coor.
+ //bullet[i].bulletpos.y-=bullet[i].bulletspeed*(bullet[i].bulletdir.y/bullet[i].dist)/20;//Process bullet's y coor.
+ }
+ double dis=GetDist(bullet[i].bulletpos,playerpos);//Get distance between player and bullet
+ if (dis<=6||bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)
+ //If collision is detected or the bullet flys out of screen, delete it.
+ {
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ }
+ else
+ {
+ bullet[i].bulletspr->RenderEx(bullet[i].bulletpos.x,bullet[i].bulletpos.y,0,0.5,0);
+ }
+ }
+}
+int CreateTower1(double x,double y,int timer,double bs,bool eff=false)//This returns the created tower number.
+{
+ int i;
+ if (towcnt==0)
+ towcnt=i=1;
+ else
+ {
+ for (i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist)break;
+ if (abs(tower[i].towerpos.x-x)<=zero&&abs(tower[i].towerpos.y-y)<=zero)
+ {
+ return i;
+ }
+ }
+ if (i>towcnt)
+ towcnt=i;
+ }
+ tower[i].exist=true;
+ tower[i].towertype=1;
+ tower[i].bulletspeed=bs;
+ tower[i].towertimer=tower[i].curtimer=timer;
+ tower[i].towerpos.x=x,tower[i].towerpos.y=y;
+ tower[i].towerspr=new hgeSprite(SprSheet2,44,0,44,44);
+ tower[i].towerspr->SetHotSpot(22,22);
+ tower[i].towerspr->SetColor(0x80FFFFFF);
+ tower[i].effect=eff;
+ return i;
+}
+int CreateTower2(double x,double y,int timer,double bs,bool eff=false)//This returns the created tower number.
+{
+ int i;
+ if (towcnt==0)
+ towcnt=i=1;
+ else
+ {
+ for (i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist)break;
+ if (abs(tower[i].towerpos.x-x)<=zero&&abs(tower[i].towerpos.y-y)<=zero)return i;
+ }
+ if (i>towcnt)
+ towcnt=i;
+ }
+ tower[i].exist=true;
+ tower[i].towertype=2;
+ tower[i].bulletspeed=bs;
+ tower[i].towertimer=tower[i].curtimer=timer;
+ tower[i].towerpos.x=x,tower[i].towerpos.y=y;
+ tower[i].towerspr=new hgeSprite(SprSheet2,0,0,44,44);
+ tower[i].towerspr->SetHotSpot(22,22);
+ tower[i].towerspr->SetColor(0x80FFFFFF);
+ tower[i].effect=eff;
+ return i;
+}
+int CreateTower3(double x,double y,int timer,double bs,bool eff=false)//This returns the created tower number.
+{
+ int i;
+ if (towcnt==0)
+ towcnt=i=1;
+ else
+ {
+ for (i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist)break;
+ if (abs(tower[i].towerpos.x-x)<=zero&&abs(tower[i].towerpos.y-y)<=zero)return i;
+ }
+ if (i>towcnt)
+ towcnt=i;
+ }
+ tower[i].exist=true;
+ tower[i].towertype=3;
+ tower[i].bulletspeed=bs;
+ tower[i].towertimer=tower[i].curtimer=timer;
+ tower[i].towerpos.x=x,tower[i].towerpos.y=y;
+ tower[i].towerspr=new hgeSprite(SprSheet2,0,0,44,44);
+ tower[i].towerspr->SetHotSpot(22,22);
+ tower[i].towerspr->SetColor(0x80FFFFFF);
+ tower[i].effect=eff;
+ return i;
+}
+int CreateTower4(double x,double y,int timer,double bs,int yelbrk=0,bool eff=false)//This returns the created tower number.
+{
+ int i;
+ if (towcnt==0)
+ towcnt=i=1;
+ else
+ {
+ for (i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist)break;
+ if (abs(tower[i].towerpos.x-x)<=zero&&abs(tower[i].towerpos.y-y)<=zero)
+ {
+ return i;
+ }
+ }
+ if (i>towcnt)
+ towcnt=i;
+ }
+ tower[i].exist=true;
+ tower[i].towertype=4;
+ tower[i].bulletspeed=bs;
+ tower[i].towertimer=tower[i].curtimer=timer;
+ tower[i].towerpos.x=x,tower[i].towerpos.y=y;
+ tower[i].towerspr=new hgeSprite(SprSheet2,88,44,44,44);
+ tower[i].towerspr->SetHotSpot(22,22);
+ tower[i].towerspr->SetColor(0x80FFFFFF);
+ tower[i].yelbrk=yelbrk;
+ tower[i].effect=eff;
+ return i;
+}
+int CreateTower5(double x,double y,int timer,double bs,bool eff=false)//This returns the created tower number.
+{
+ int i;
+ if (towcnt==0)
+ towcnt=i=1;
+ else
+ {
+ for (i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist)break;
+ if (abs(tower[i].towerpos.x-x)<=zero&&abs(tower[i].towerpos.y-y)<=zero)
+ {
+ return i;
+ }
+ }
+ if (i>towcnt)
+ towcnt=i;
+ }
+ tower[i].exist=true;
+ tower[i].towertype=5;
+ tower[i].bulletspeed=bs;
+ tower[i].towertimer=tower[i].curtimer=timer;
+ tower[i].towerpos.x=x,tower[i].towerpos.y=y;
+ tower[i].towerspr=new hgeSprite(SprSheet2,88,0,44,44);
+ tower[i].towerspr->SetHotSpot(22,22);
+ tower[i].towerspr->SetColor(0x80FFFFFF);
+ tower[i].effect=eff;
+ return i;
+}
+int CreateTower6(double x,double y,int timer,double bs,int redexplo,bool eff=false)//This returns the created tower number.
+{
+ int i;
+ if (towcnt==0)
+ towcnt=i=1;
+ else
+ {
+ for (i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist)break;
+ if (abs(tower[i].towerpos.x-x)<=zero&&abs(tower[i].towerpos.y-y)<=zero)
+ {
+ return i;
+ }
+ }
+ if (i>towcnt)
+ towcnt=i;
+ }
+ tower[i].exist=true;
+ tower[i].towertype=6;
+ tower[i].bulletspeed=bs;
+ tower[i].redexplo=redexplo;
+ tower[i].towertimer=tower[i].curtimer=timer;
+ tower[i].towerpos.x=x,tower[i].towerpos.y=y;
+ tower[i].towerspr=new hgeSprite(SprSheet2,0,44,44,44);
+ tower[i].towerspr->SetHotSpot(22,22);
+ tower[i].towerspr->SetColor(0x80FFFFFF);
+ tower[i].effect=eff;
+ return i;
+}
+int CreateTower7(double x,double y,int timer,double bs,int redexplo,bool eff=false)//This returns the created tower number.
+{
+ int i;
+ if (towcnt==0)
+ towcnt=i=1;
+ else
+ {
+ for (i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist)break;
+ if (abs(tower[i].towerpos.x-x)<=zero&&abs(tower[i].towerpos.y-y)<=zero)
+ {
+ return i;
+ }
+ }
+ if (i>towcnt)
+ towcnt=i;
+ }
+ tower[i].exist=true;
+ tower[i].towertype=7;
+ tower[i].bulletspeed=bs;
+ tower[i].redexplo=redexplo;
+ tower[i].towertimer=tower[i].curtimer=timer;
+ tower[i].towerpos.x=x,tower[i].towerpos.y=y;
+ tower[i].towerspr=new hgeSprite(SprSheet2,44,44,44,44);
+ tower[i].towerspr->SetHotSpot(22,22);
+ tower[i].towerspr->SetColor(0x80FFFFFF);
+ tower[i].whicnt=whicnt;
+ tower[i].effect=eff;
+ return i;
+}
+void ProcessTower1()
+{
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist||tower[i].towertype!=1)continue;
+ tower[i].towerspr->RenderEx(tower[i].towerpos.x+7.2,tower[i].towerpos.y+7.2,0,0.545);
+ if (DisableAllTower)continue;
+ if (LOWFPS)
+ tower[i].curtimer-=17;
+ else
+ --tower[i].curtimer;
+ if (tower[i].curtimer<=0)
+ {
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ tower[i].curtimer=tower[i].towertimer;
+ CreateBullet1(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,tower[i].effect);
+ }
+ }
+}
+void ProcessTower2()
+{
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist||tower[i].towertype!=2)continue;
+ tower[i].towerspr->RenderEx(tower[i].towerpos.x+7.2,tower[i].towerpos.y+7.2,0,0.545);
+ if (DisableAllTower)continue;
+ if (LOWFPS)
+ tower[i].curtimer-=17;
+ else
+ --tower[i].curtimer;
+ if (tower[i].curtimer<=0)
+ {
+ tower[i].curtimer=tower[i].towertimer;
+ for (int j=1;j<=12;++j)
+ CreateBullet2(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,j*0.5236+clockrot,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ clockrot+=deltarot;
+ //deltarot+=0.004363322313;
+ deltarot+=deltadelta;
+ }
+ }
+}
+void ProcessTower3()
+{
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist||tower[i].towertype!=3)continue;
+ tower[i].towerspr->RenderEx(tower[i].towerpos.x+7.2,tower[i].towerpos.y+7.2,0,0.545);
+ if (DisableAllTower)continue;
+ if (LOWFPS)
+ tower[i].curtimer-=17;
+ else
+ --tower[i].curtimer;
+ if (tower[i].curtimer<=0)
+ {
+ tower[i].curtimer=tower[i].towertimer;
+ if (tower[i].t3t==0)
+ for (int j=1;j<=12;++j)
+ CreateBullet3(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,j,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ if (tower[i].t3t==1)
+ {
+ CreateBullet3(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,12,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ CreateBullet3(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,3,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ CreateBullet3(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,6,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ CreateBullet3(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,9,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ }
+ if (tower[i].t3t==2)
+ {
+ if (rand()%2==0)
+ CreateBullet3(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,12,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ else
+ CreateBullet3(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,6,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ }
+ if (tower[i].t3t==3)
+ {
+ if (rand()%2==0)
+ CreateBullet3(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,3,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ else
+ CreateBullet3(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,9,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ }
+ }
+ }
+}
+void ProcessTower4()
+{
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist||tower[i].towertype!=4)continue;
+ tower[i].towerspr->RenderEx(tower[i].towerpos.x+7.2,tower[i].towerpos.y+7.2,0,0.545);
+ if (DisableAllTower)continue;
+ if (LOWFPS)
+ tower[i].curtimer-=17;
+ else
+ --tower[i].curtimer;
+ if (tower[i].curtimer<=0)
+ {
+ tower[i].curtimer=tower[i].towertimer;
+ CreateBullet4(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,tower[i].yelbrk,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ }
+ }
+}
+void ProcessTower5()
+{
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist||tower[i].towertype!=5)continue;
+ tower[i].towerspr->RenderEx(tower[i].towerpos.x+7.2,tower[i].towerpos.y+7.2,0,0.545);
+ if (DisableAllTower)continue;
+ if (LOWFPS)
+ tower[i].curtimer-=17;
+ else
+ --tower[i].curtimer;
+ if (tower[i].curtimer<=0)
+ {
+ tower[i].curtimer=tower[i].towertimer;
+ CreateBullet5(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ }
+ }
+}
+void ProcessTower6()
+{
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist||tower[i].towertype!=6)continue;
+ tower[i].towerspr->RenderEx(tower[i].towerpos.x+7.2,tower[i].towerpos.y+7.2,0,0.545);
+ if (DisableAllTower)continue;
+ if (LOWFPS)
+ tower[i].curtimer-=17;
+ else
+ --tower[i].curtimer;
+ if (tower[i].curtimer<=0)
+ {
+ tower[i].curtimer=tower[i].towertimer;
+ CreateBullet6(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,tower[i].redexplo,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ }
+ }
+}
+void ProcessTower7()
+{
+ for (int i=1;i<=towcnt;++i)
+ {
+ if (!tower[i].exist||tower[i].towertype!=7)continue;
+ tower[i].towerspr->RenderEx(tower[i].towerpos.x+7.2,tower[i].towerpos.y+7.2,0,0.545);
+ if (DisableAllTower)continue;
+ if (LOWFPS)
+ tower[i].curtimer-=17;
+ else
+ --tower[i].curtimer;
+ if (tower[i].curtimer<=0)
+ {
+ tower[i].curtimer=tower[i].towertimer;
+ CreateBullet7(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,tower[i].redexplo,tower[i].effect);
+ //hge->Effect_PlayEx(snd,100,(tower[i].towerpos.x-400)/4);
+ }
+ }
+}
diff --git a/archive/blr2/COPYING b/archive/blr2/COPYING new file mode 100644 index 0000000..bf98efc --- /dev/null +++ b/archive/blr2/COPYING @@ -0,0 +1,51 @@ +BLRII itself distributes under the terms of the BSD license. +Varieties of hge-unix and hge included in the source code distribution are still zlib-licensed. +Here's the text of the BSD license and the zlib license. +============================================================================================== +Copyright (c) 2014, Chris Xiong +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of "Chrisoft" nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL CHRIS XIONG BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +============================================================================================== +Copyright (c) 2003-2008 Relish Games + 2011 Ryan C. Gordon + 2013-2014 Chris Xiong + + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from +the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. diff --git a/archive/blr2/ChangeLog b/archive/blr2/ChangeLog new file mode 100755 index 0000000..cbd158e --- /dev/null +++ b/archive/blr2/ChangeLog @@ -0,0 +1,728 @@ +=================================================================== +Next version: +The final release is just there!! +Todo's: +Bug fixes. +Tests. + +Known bugs: +Blue bullets appearing in Vortex of leaves.//don't know why... + +Wishlist: <-strikethrough +~~Now Playing(Music Room)~~ +~~BLR script virtual machine~~(Now working for BLR3) + +Releases: + +1.0.0-0 (r101) +Fix a bug in the hgeft library, and try git... + +1.0.0-0 (r100) +Rev. 100!!! +This is the final release. +No more major changes will be made. +Further changes of BLR2 will only be bug fixes (BGM addition +excluded). + +Changes: +Fix screenshot excluding the info panel. +Make Lv-2P4 harder (reporter: BLumia). +If it is the first time you start BLR in Windows, resolution in +the options menu will be "?". Fixed now. +Fixed a critical bug in scorec.h. + +Pre-Released versions: + +0.9.9-0 (r99) +Rev. 99! WTF? +THIS IS THE FINAL RELEASE CANDIDATE!!! +Everything is frozen, that means no more new features will be +added and no big changes will be made after this revision. Only +bug fixes will be provided. +//Again, "frozen" is a term borrowed from the Debian project and +//is completely unrelated to Cirno! + +Tweak bullet9, shrink its removal border. +Change Multpo texture, add spawning effect. +Fix stubbed rankings. +Update sprite sheet. +Store assessment total elapsed time in the score file. Score +files from older revisions shouldn't cause any errors but you may +get "Time elapsed 0.00" in highscore details. If you've got any +sort of OCD (Obsessive-compulsive disorder), just remove it. +Document!!! + +0.9.8-0 (r98) +Dear Pre-Release Candidate version(RC-0). + +CLR will collect multiplier +1's in range now. +Multiplier +1's caught by player won't disappear now. +Add/Move background transitions. +Add volume control to options. This make the configuration file +not compatible with older versions. Just delete it! +Modify hge's API so that it can handle real volume and pan values. +Volume value varys from 0 to 1, pan value varys from -1 to 1. +Document... + +0.9.7-0 (r97) +Fix: small semi-coll bullets are collected by clr... +Add Multpo's for Level 7/-1. +Do slight changes to level -1... +Distribute CLRs for level 1~-1. + +0.9.6-0 (r96) +Fix bug that cause you unable to charge if you try to use clr directly +after your clr's used up. +Add Multpo's for Level 3/4/5/6, and level 7 partically. +Fix stupid bug in Level4Part2 and other similiar parts. +Fix several bugs in level 5/6. +Reduce given-away score in level "Sine Wave". It wassssSssss too long! +Fix typo... +Blinking HangUpText *should* be fixed now... + +0.9.5-0 (r95) +Change configuration and score file names. Files with their names +begin with "." may be annoying in Windows though... +If we find a score file during first start up, assume it's valid and +don't overwrite it. +Fix the problem that in-game music won't be resumed when back from pause. +Fix the problem that Multpo's won't be removed if a new game is created. +Fix the problem that the first tip is not shown correctly if the game +is restarted. +(Probably) fixed the problem that the sound is played out of game. +Prevent Multpo's from "escaping". This happens when fps is extremely low... +Adding Multpo for Level2. +Update CanonTechno. + +0.9.2-0 (r94) +Mod, mod, mod...! +Assessment mode is mostly frozen now. +I'll make a pre-release at r99 and that revision will be set to +0.9.9-0. +Write the document... That's really tiring. + +~~0.9.1-4 (r94)~~ +Ooooooooops... I've forgotten to commit this one! +So this is merged to the revision above, actually. +================================================================================= +Modify a couple of levels. (Making them easier...) +Fix about scene text rendering out of the window. +(Probably) fixed Level3Part3 by making them temporarily invulnerable... +Are we bug-free now? + +0.9.1-4 (r93) +Picking it up after almost one month... I'm now lost in my code... +--------------------------------------------------------------------------------- +Add player position display into debug display. +Rewrite pinball, adding collision between the balls... +The collision code is based on Kollision (a game included in KDE SC). + +0.9.1-3 (r92) +I installed Archlinux alongside Debian recently. Now we officially support +Archlinux and Debian. +Archlinux doesn't eat my CPU or try to destroy it... So further development will +be made mainly under archlinux... +--------------------------------------------------------------------------------- +Content freeze -- nothing will be added or removed any more (music etc excluded). +Fix build failure in Archlinux. +Fix font issue in Archlinux. +realloc may change the base address... That's the cause of the crashes... +--now removing all Bullet* based implementations. +Affected parts: +Assessment: Constant patterns, pinball +All parts in level 2. +L4P2, and more +L5P5~6 +L-1P17 +L-1P19 +L3P3 +L7P12 +L7P14 +L7P25 +Avoid memory leaks... I don't know if they have been really fixed... + +0.9.1-2 (r91) +Add built-in help. +Now the pause menu should be fixed... +Compress resources again. + +0.9.1-1 (r90) +Fix a bug in the credit scene. +Now the pause menu shouldn't be broken now...(It's so hard to reproduce +that I have to assume it *has* been fixed.(IT STILL HAPPENS!!!) +Close the "infinity CLR" "bug". +(Huge) Code cleanup, mainly removing duplicate code. +Allocate bullets dynamically. The array is freed every time a new game +is started. +Add a signal handler, print back trace on error(currently only available +for linux...). + +0.9.1-1 (r89) +Fix a critical bug in Score_Initailize. +Modify level pinball. +Drop "_PR" in version string. +Partly rewrite the credit scene, displaying accurate version +details. +Remove some warnings from hgewin. +A set of basic tests are done on a Intel+Nvidia desktop computer. +Add a simple build script(instead of makefile). +Reduce the Windows version executable size...(local work, recompile +freetype using reduced features enabled.) +Current tested (by me) and worked plantforms: +Debian sid x86_64/Windows 8.1 @Intel core i7-2670QM, 8GiB RAM, +Intel HD3000. +Debian sid x86_64 @Intel Core2 Quad Q8300, 8GiB RAM, nvidia GT320. +Windows XP x64 @VirutalBox, Dualcore Virtual CPU, 1.5GiB RAM, VBox +Addons installed. +Windows XP @Intel core i3-3240, 4GiB RAM, Intel HD3000. + +0.9.1-1_PR (r88) +%lld seems to work with mingw-w64(also VS2005+)... +So let's remove all %I64d. +Change point bullet behaviour. +Fix a minor multiplier problem. +Mark the source code as C++. +Re-document levels(not done). +Update wiki. + +0.9.1-1_PR (r87) +Disable screenshot when you're entering your honourable name. It's +not tested so we could only hope that will work... +Add crappy sounds to (part of) the menus. + +Replace a level in assessment mode. The original one was meanless.. +The menu sounds are too crappy... remove them temporarily. However, +let's complete the code base so that we won't waste time writing +it... + +0.9.1-1_PR (r86) +Port highscore view and details menu. Menu rewrite is almost done! +Disable select key while transferring. +Fix "typo" caused bugs. +Hopefully fix small bugs in the new menu system. +Rename several files. Add some additional files. +Remove legacy menu components. + +0.9.1-0_PR (r85) +Port death menu, complete menu and new highscore menu to the new +menu code base. +Clean up old menu code. +Update wiki. + +0.9.1-0_PR (r84) +Port player preference menu, pause menu and return to title menu +to the new menu code base. +Add shake effect to player preference menu. +Make effects faster... +Press esc in a menu will select back/exit now. +Add several background transfers. +Fix possible memory leaks in HangUpText. +Remove some commented statements. + +0.9.1-0_PR (r83) +Now you can change the game resolution. +Some resources are not re-made so they may look blurred... +Make font bigger for higher resolution. +Add command line option for changing the resolution. +Complete the option menu rewrite. + +0.9.1-0_PR (r82) +Add missing file menus.png... +Finish the start menu rewrite. +Modify "Lunatic Lunar", however it's not done... +Modify resource unpacking of Windows version. + +0.9.1-0_PR (r81) +Start menu rewrite... +Add information about the built time. + +0.9.1-0_PR (r80) +Remove "high FPS mode", it won't reach 500 FPS on my computer any +more. Replace it with Vsync mode. +Add float HGE::Timer_GetFPSf(). The return value will be updated +every 1000ms. + +0.9.0-1_PR (b79/r79) +Bump version! +BLR will use revision number instead of build number one day... +==changelog here== +New assessment level "density test"... +New assessment level "pinball"... +New assessment level "Road blocks"... +New assessment level "Extreme speeds"... +New assessment level "Messed up"... +New assessment level "Bonus - Lunatic Lunar!", finishing assessment +mode! +Laser extentions, add LineLaser for two-point laser inheriting all +Laser interfaces. +Modify laser collision parameters. +Level corrections. +Improve density test. +Add screen shot. Press S for a screen shot. +Fix the upside down screen shot output. +Fix stubbed HGE::System_Launch. + +0.9.0-0_PR (b78) +First two assessment levels. +Two more assessment levels... +Tow _more_ assessment levels...... +Another assessment level... +Yet another level for assessment mode... why don't I bump the +version? +Modify player attribute. +Allow bullet to kill itself at a certain point. +Add extborder attribute. +Finish assessment system framework. +Add circ2pnt. + +0.8.1-1_PR (b77) +All parts from level -1 to 7 are completed! +Fixed the crash in the mingw-w64 build. +Switch to mingw-w64 for building Windows version now. +Complete GUI bring back. +Fix a bug appeared after the cross-plantform port(when forked +from BLRI). +Prepare for assessment mode. + +0.8.1-0_PR (b76) +New level "Sink over the horizon". +New level "Gravity vortex". +New level "Double reflective". +Make point bullet additive blending. +Allow bullets to pause before being accelerated. +Modify "Gravity vortex". +Modify "Achromatopsia". (Thanks to my classmate's advice...) +Report build and version in the log file. +Add command line argument support. Use "--help" for usage. +Add freetype support to hge. It's still pretty buggy. (and make +the executable extremely big!) +Add experimental support for cross compiling with mingw-w64. +(Mingw-w64 build *will* be the official build in the future.) +Fix blinking HangUpText. +Fix crashes in mingw-64 build. +Change numeric characters to monospace. +Modify player speed settings. +Beewx still messes up memory... fixed now. +Exit 1 if not terminated correctly. + +0.8.0-1_PR (b75) +New level Supernova. +New level (still unnamed). +Support additive blending bullets(for Supernova). +Add some additional tips. +Move levels to level -1. +Fix blinking of HGE::Gfx_SetTransform in OpenGL. +Fix includes like " #include "../../include/..." " that would +cause errors. +Extend libcgh again. Adding operator ^ and method l(). +Modify clearrange behaviour in level hyper-threading. +Modify the corresponding score bullet. + +0.8.0-0_PR (b74) +New level Achromatopsia. +New level hyper-threading. +Tower8 partly rewritten, dropping tdir. +Fix a small problem in level 2. +Move levels to level -1. <-typo fixed +Modify the semi-coll threshold of laser. +SCEffect_Attatch now take a optional parameter. +Global varibles cleanup. +Fix a bug in bullet8 caused by RandomEngine port. +Rename "Minesweeper"->"Spiky", add noname2pnt. +Add achroma2pnt. + +0.7.3-0_PR (b73) +This is a pre-release version of 0.7.2-2_PR. +This version is released to public for level previewing. +This release contains level 1~7 (while level -1/-2 are still +"imaginary") +Changes: +Compress several png files. +Merge code for Windows. +Fixed compile problems of Windows version. +Small fixes of level2. +This build will be short-lived. + +0.7.2-2_PR (b72) +New level "return to void". That's a 3 in 1 class. I used +particularly many "return(void)(...);" in this level (which I +always love to use). +This indicates all "normal" levels are completed. +Multiplier system was fully adopted into BLR. +Implement a RandomEngine, replacing all rand(). +Rewrite Leaf_Anim using std::list, won't cause crashes now. +Fixed: Trypophobia stops if too many CLR's are used. +Fixed the problem in All2pnt(). +Fixed blinking target. +Fixed Hexagon loops memory leak (the pointer array is too small...) +Tests under Windows were done, all gameplay features ran perfectly. +Make Laser::GetDist() private to avoid misusage. +Fixed several background problems. +Remove unused statements: +DWORD ColTrans(DWORD,DWORD,DWORD): replaced by +DWORD ColorTransfer(DWORD,DWORD). +void SaySomethingAndBye(char*): useless. +void DirectBullet(Bullet&,double): this has been coexisted with +the same method in the Bullet class for a long time. Now it's +replaced by Bullet::setdir(double). +A Small bug in the Windows build is fixed. +File list in the Windows build is updated. + +0.7.2-1_PR (b71) +(Level7 will be almost twice longer than Level6!) +I'm extremely tired these days, I can't even keep my eyes open +while typing... +Some of my classmates helped testing several levels and found +some bugs, thanks a lot! + +After a short test, I found that the Windows build is almost +broken... Crashes and misbehaves are everywhere! + +Maybe Windows is noble and won't run this garbage:( +===Real changelog starts from here=== +New level "Trypophobia", however it seems that this level won't +cause trypophobia at all! +New level "Photon fusion", using a slightly modified Tower8. +Rewrote laser distance detection using vector2d calculations, +extending libcgh and bump its version at the same time.(*2) +Put the new level to the correct place. +Bring back "Minesweeper" level, adjust it to the new interfaces. +Convert Bullet from struct to class. +Bring back Classic Mode. There are no "easy", "normal" or "hard" +now, there's only "classic"! Fix problems with the classic mode in +the new code base. +Fixed a bug appeared after the levels were put together. +Other minor changes to the level WOP. +Minor cleanups and code style adjustments. Add missing free's and +delete's. +Remake the credits page, it grows from 350KiB to 6MiB. (And so I'll +enable PNG compression later.) + +0.7.2-0_PR (b70) +I wasn't willing to bump the build number because I want the svn +revision to chase the build number. +However it wouldn't be appropriate to put three new levels into one +build... +The real changelog is here: +New level "interference" (it's another small class "SimpleThing"). +New level "diffraction" (yet another dull class), hopefully fixed a +memory leak in this level (by using more memory!) +Rearrange levels to the order they will appear in the final version. +New background interface, use background pictures easily. +Make "Tiled" background mode work. +Add SetScale to background class. Make you dizzy easily... +Fix a small glitch in Level3Part3-4. This level won't run correctly +under Low FPS Mode. +Minor code cleanups. +Removed more useless comments, my code is still hard to comprehend, +though. +Fix the misbehave of modulo with minus numbers... +Small interface and behaviour changes: +-If a bullet is effect-attatched and the effect is running, it won't +die. +-Bullet::redir now always make dist=1, for some bullet processing +doesn't use dist now. +Don't copyleft, it's radical. + +0.7.1-6_PR (b69) +Finish some new levels ("Great Circle" bring back & "rainbow +appearance"). +Fusion bullet first work draft. +Fix some of the warnings from the compiler. +Adjust level difficulty. It was indeed too easy... +Remake some resources with GIMP. +Merge great circles and finish it. +Small code cleanups. + +0.7.1-5_PR (b68) +Draft new level. (Another level threatening you using circles!) +Update some old interfaces from BLR1. + +0.7.1-4_PR (b67) +New level (name and placement undetermined). +Fix level transition mismatches. +Improved accelerated bullets. + +0.7.1-3_PR (b66) +Fix a few glitches. Removing some useless interfaces for BLR I. +Change "Dangerous Target" for proper difficulty. + +0.7.1-2_PR (b65) +Bullet death effect, applied to Wave of Photon. It seems buggy. +Fixed something left for debuging in the last commit. + +0.7.1-1_PR (b64) +New level: Wave of Photon. A lazy level again. Despite of a new +class, it's a copy of "photon school". +Level improved: Cross threaten. Make it impossible to pass this +part without crossing those blue bullets. +libcgh improvement. Added new interfaces to vector2d struct. So the +libcgh version was bumped. Was it worth doing that? + +0.7.1-0_PR (b63) +New level: Rainbow bullets - nauty photon (in fact it's a lazy +level! I must have seen the same thing some where else...) +The last "photon school" level was put to where it should be. +Rewrite some silly parts of the Changelog. +I ran out of my AppEngine quota today... So I can't commit that to +svn as planned... + +0.7.0-9_PR (b62) +Performed a couple of tests, under both full FPS mode and low FPS +mode. +New background is used by now. + +0.7.0-8_PR (b61) +Improved the rendering code. More tests are required... +That made the rendering more efficient. It also eats less RAM then. +--Okay it's now tested. Another bug in FPS independent bullets +fixed. No (big) bugs were found in the new rendering code. + +0.7.0-7_PR (b60) +Spring Festival commit... +One level is rewritten. +Ready to sync this to svn... + +0.7.0-6_PR (b59) +Fixed 3D clouds background. New background components added. +Experimental FPS independent bullets. + +0.7.0-5_PR (b58) +Fixed another critical bug in laser collision detection +implementation... Laser is almost perfect now...//Still, it's +inefficient. + +0.7.0-4_PR (b57) +Fixed a critical bug in laser implementation and another awful +memory leak bug... + +0.7.0-3_PR (b56) +A new level is going to be complete... + +0.7.0-2_PR (b55) +Auto pause and do not make game suspend if focus is lost. + +0.7.0-1_PR (b54) +First two parts for level7. + +0.7.0-0_PR (b53) +New background for level7. Preparing interfaces for level7. + +0.6.2-2_PR (b52) +Level6 is frozen now. It's the longest level ever... (in blr!) + +0.6.2-1_PR (b51) +Completing level6! +Spring is coming? (Well, not really...) + +0.6.2-0_PR (b50) +Completing && improving hexagon. +Bumped the minor version for the sixth level is almost complete. + +0.6.1-4_PR (b49) +New level hexagon. + +0.6.1-3_PR (b48) +New level...(Avalanche) +Spotlight: Supporting BGM loop points(using my new hge +interfaces...)! +I have no idea on new levels (except "hyper fluid", that's a well- +planned part...). Maybe I've spent too much time staring at the +desktop? I feel like void these days. +The build count is bumped four times a day, you enough! + +0.6.1-2_PR (b47) +New level "Wriggle Nightbug-like"?... + +0.6.1-1_PR (b46) +Implemented several unimplemented audio interfaces of hge (OpenAL). +A Windows build to check compatibility is planned. + +0.6.1-0_PR (b45) +Now we have 11 parts in level6... +A BGM called Canon Techno is completed around here... + +0.6.0-0_PR (b44) +Starting level 6! +//We are in 2014 now. I'm regretful for I didn't have the dates +recorded. + +0.5.3-2_PR (b43) +Optimizing memory usage... (first step...)[*] +Borrowed "the unbreakable jail" from old code... +//[*]Note @ 0.6.1-3 && @ 0.7.0-9: +//1. I found this useless. +//2. This may cause SIGSEGV! +//3. It's completely removed after b61. Because they are not used +// any longer + +0.5.3-1_PR (b42) +Final(the second last..) level for level 5, fish in a barrel? + +0.5.3-0_PR (b41) +Small fixes and levels as usual... + +0.5.2-3_PR (b40) +New minor parts for level5, fixed a bug in Player_Clear_Rotate. + +0.5.2-2_PR (b39) +Several patches on new clear range. +Changing interfaces for new levels. + +0.5.2-1_PR (b38) +New trigger method for clear range... + +0.4.4-0_PRG (b37a) +Regression version for releasing... +------------------------------------------------------------- +This will be released as a official Preview Release version.<-obsolete +------------------------------------------------------------- + +0.5.2-0_PR (b37) +New part for level5. Now I'm working on the regression 0.4.x. + +0.5.1-1_PR (b36) +Several fixes including: +-Fading info panel when approaching. +-Sending mult. inc. indicator layer up. + +0.5.1-0_PR (b35) +First two levels of level5. + +0.5.0-0_PR (b34) +Starting level5... Crazy Autumn... + +A regression is planned to release a 0.4.x-x_PR version as +official pre-released version. However it's still nowhere in sight +that if I could use Windows these days. + +0.4.3-0_PR (b33) +Level4 is almost complete. Now I'm using LOW FPS Mode for +development because I just want to cool my laptop down without +using my own power. //However I stopped that at the next version... + +0.4.2-0_PR (b32) +A new level... without using *ANY* old code (from level.h). + +0.4.1-2_PR (b31) +Level4 is now 18 parts... + +0.4.1-1_PR (b30) +Transfered sevel old levels here. + +0.4.1-0_PR (b29) +Optimizing old code for level4. + +0.4.0-0_PR (b28) +Now let's move to level4... + +0.3.2-0_PR (b27) +New levels for level3. In fact, it's almost completed now... + +0.3.1-2_PR (b26) +Improved bullet clearing method, avoiding hidden bullets +completely!(Just by converting them all to score points...) + +0.3.1-1_PR (b25) +A new "big" level for level3. +Added several new interfaces to tower&bullet section. + +0.3.1-0_PR (b24) +Complete the first two parts of level3. + +0.3.0-0_PR (b23) +Starting the development of level3... + +0.2.9-2_PR (b22) +Completing level2... + +0.2.9-1_PR (b21) +New parts for level2. level2 is almost completed now. +PlayerLockX/Y implemented. +------------------------------------------------------------- +This will be released as a official Preview Release version.<-obsolete +------------------------------------------------------------- +BLR will be licensed under WTFPL from now. +(WTF?) +............................................................. +No it's now licensed under the BSD license... + +0.2.9_PR (b20) +Level 2 is frozen "by heart". (How? By heart?) + +0.2.5_PR (b19) +Optimizing the second level to a "realistic" state... Added two +extra musics(although still remain not used). + +0.2.2_PR (b18) +The main development has been transferred to Linux. Optimizing +code for Linux. +//Revision count is not important. + +0.2.0_PR (b17) +Level 2?... + +0.1.7-2_PR (b16) +The first level is almost completed now... + +0.1.7-1_PR (b15) +Fixed several serious bug in Low FPS Mode. Fixed FPS Level option +code. + +0.1.7_PR (b14) +Updated the only level to synchronize with the In-Game Music. +Added "Multiplier +1" into the game system. Added an unimportant +loading screen.//In fact, it's loading nothing. May be unpacking +resource pack in Windows version... + +0.1.4_PR (b13) +libcghEx has been made independent and can apply to any other +projects. This is also the first BLR version that includes +In-Game Music. libcghEx has been extended with LinearProgresser +and HangUpText. + +0.1.1_PR (b12) +Added auto-multiplier system. libcghEx (Chrisoft Game Helper +Extras Library) is included in this version with CircleIndicator. + +0.1.0_PR (b11) +Creation of the Pre-Released Version. Removed all old level code. +Bourne-again!//Can you imagine what I was thinking when deleting +the result of 3 months' work?... +================================================================= +TestBed versions: + +TB130907 (b10) +A "Noname" level. Laser implementation partly rewritten. + +TB130903 (b9) +Additional backgrounds + +TB130827 (b8) +Laser implementation, Cheers! + +TB130818 (b7) +New Levels such as rainbow towers and squashing levels. + +TB130802 (b6) +Discarding old code, rewrite of part of the code. + +TB130718 (b5) +Bullet creation effects, sync code back to BLR1. + +TB130714 (b4) +Target indicator completed. + +TB130705 (b3) +New level and bullet creation code for orange bullets. + +TB130703 (b2) +Completing Orange Towers. + +TB130620 (b1) +Completing Deep Blue Towers.//Well, "Dark Blue" right? Or more formally, "Navy". +//However, they are all not the real color. I used #0000FF, which is just "Blue", +//it just seems dark. + +TB130610 (b0) +Creation of Testbed version. diff --git a/Extras b/archive/blr2/Extras index 0368e7e..0368e7e 100644 --- a/Extras +++ b/archive/blr2/Extras diff --git a/FAQ.zh b/archive/blr2/FAQ.zh index f6561f5..f6561f5 100644 --- a/FAQ.zh +++ b/archive/blr2/FAQ.zh diff --git a/archive/blr2/INSTALL b/archive/blr2/INSTALL new file mode 100644 index 0000000..c48e870 --- /dev/null +++ b/archive/blr2/INSTALL @@ -0,0 +1,29 @@ +Installing a game is really useless, isn't it? +So just compile it! + +A brief guide for compiling BLR +Required SDKs: +OpenAL +ogg +vorbis +DirectX(Windows only) +OpenGL(Linux only) +SDL(Linux only) + +Steps to do: +1. Get the source code. + You can choose from svn or the official packaged release. + The code from svn will always be newer than the official + packaged release. +2. Get required SDKs mentioned above. + Piece of cake. +3. Use Visual Studio(Windows) or Code::Blocks(Linux), create + project. Configure it correctly. + If you'd like to do it, you can also write a Makefile + yourself. +4. Hit build (or type make)! +5. If it failed, check step 2 and 3, then repeat step 4... + +Warning: +Some revisions in the svn repo has noticeable problems. +Always build the latest svn revision or official release! diff --git a/Levels b/archive/blr2/Levels index e22e9f4..e22e9f4 100644 --- a/Levels +++ b/archive/blr2/Levels diff --git a/Levels.zh b/archive/blr2/Levels.zh index 123b1e6..123b1e6 100644 --- a/Levels.zh +++ b/archive/blr2/Levels.zh diff --git a/Readme b/archive/blr2/Readme index 9161aca..9161aca 100644 --- a/Readme +++ b/archive/blr2/Readme diff --git a/Readme.zh b/archive/blr2/Readme.zh index f712fca..f712fca 100644 --- a/Readme.zh +++ b/archive/blr2/Readme.zh diff --git a/archive/blr2/VERSION b/archive/blr2/VERSION new file mode 100755 index 0000000..9f8cf97 --- /dev/null +++ b/archive/blr2/VERSION @@ -0,0 +1 @@ +1.0.0-0 (r101)
\ No newline at end of file diff --git a/archive/blr2/resources/b_diff.png b/archive/blr2/resources/b_diff.png Binary files differnew file mode 100755 index 0000000..400cac9 --- /dev/null +++ b/archive/blr2/resources/b_diff.png diff --git a/archive/blr2/resources/b_inter.png b/archive/blr2/resources/b_inter.png Binary files differnew file mode 100644 index 0000000..00976a5 --- /dev/null +++ b/archive/blr2/resources/b_inter.png diff --git a/archive/blr2/resources/b_leaves.png b/archive/blr2/resources/b_leaves.png Binary files differnew file mode 100755 index 0000000..6bd4a8b --- /dev/null +++ b/archive/blr2/resources/b_leaves.png diff --git a/archive/blr2/resources/b_null.png b/archive/blr2/resources/b_null.png Binary files differnew file mode 100755 index 0000000..7c60dce --- /dev/null +++ b/archive/blr2/resources/b_null.png diff --git a/archive/blr2/resources/bdig.fnt b/archive/blr2/resources/bdig.fnt new file mode 100644 index 0000000..453c492 --- /dev/null +++ b/archive/blr2/resources/bdig.fnt @@ -0,0 +1,15 @@ +[HGEFONT] + +Bitmap=credits.png + +Char="-",340,354,23,33,0,0 +Char="0",6,354,30,33,0,0 +Char="1",46,354,14,33,0,0 +Char="2",72,354,29,33,0,0 +Char="3",105,354,29,33,0,0 +Char="4",140,354,26,33,0,0 +Char="5",171,354,28,33,0,0 +Char="6",204,354,29,33,0,0 +Char="7",238,354,27,33,0,0 +Char="8",269,354,31,33,0,0 +Char="9",302,354,31,33,0,0 diff --git a/archive/blr2/resources/blnsns.png b/archive/blr2/resources/blnsns.png Binary files differnew file mode 100755 index 0000000..ae8f7d4 --- /dev/null +++ b/archive/blr2/resources/blnsns.png diff --git a/archive/blr2/resources/charmap.fnt b/archive/blr2/resources/charmap.fnt new file mode 100755 index 0000000..f31840d --- /dev/null +++ b/archive/blr2/resources/charmap.fnt @@ -0,0 +1,99 @@ +[HGEFONT]
+
+Bitmap=blnsns.png
+
+Char=" ",1,1,3,36,-1,7
+Char="!",5,1,6,36,1,1
+Char=""",12,1,10,36,0,0
+Char="#",23,1,24,36,0,-1
+Char="$",48,1,15,36,0,-1
+Char="%",64,1,25,36,0,0
+Char="&",90,1,23,36,0,0
+Char="'",114,1,5,36,0,1
+Char="(",120,1,12,36,1,-1
+Char=")",133,1,12,36,-1,1
+Char="*",146,1,13,36,0,-1
+Char="+",160,1,15,36,-1,0
+Char=",",176,1,9,36,-1,0
+Char="-",186,1,13,36,0,0
+Char=".",200,1,7,36,0,0
+Char="/",208,1,10,36,0,0
+Char="0",219,1,20,36,0,0
+Char="1",240,1,9,36,11,0
+Char="2",250,1,16,36,4,0
+Char="3",267,1,16,36,4,0
+Char="4",284,1,18,36,2,0
+Char="5",303,1,17,36,3,0
+Char="6",321,1,17,36,3,0
+Char="7",339,1,17,36,3,0
+Char="8",357,1,17,36,3,0
+Char="9",375,1,17,36,3,0
+Char=":",393,1,7,36,0,0
+Char=";",401,1,9,36,-2,0
+Char="<",411,1,13,36,0,-1
+Char="=",425,1,15,36,0,0
+Char=">",441,1,12,36,0,0
+Char="?",454,1,15,36,-1,0
+Char="@",470,1,20,36,0,1
+Char="A",1,38,24,36,-1,-1
+Char="B",26,38,20,36,1,0
+Char="C",47,38,21,36,0,-1
+Char="D",69,38,22,36,1,0
+Char="E",92,38,17,36,1,0
+Char="F",110,38,17,36,1,0
+Char="G",128,38,23,36,0,0
+Char="H",152,38,22,36,1,1
+Char="I",175,38,6,36,1,1
+Char="J",182,38,9,36,-1,1
+Char="K",192,38,20,36,1,-1
+Char="L",213,38,17,36,1,0
+Char="M",231,38,25,36,1,1
+Char="N",257,38,22,36,1,1
+Char="O",280,38,25,36,0,0
+Char="P",306,38,20,36,1,0
+Char="Q",327,38,25,36,0,0
+Char="R",353,38,19,36,1,0
+Char="S",373,38,15,36,1,0
+Char="T",389,38,18,36,0,-1
+Char="U",408,38,20,36,1,1
+Char="V",429,38,21,36,0,0
+Char="W",451,38,30,36,0,0
+Char="X",482,38,20,36,0,-1
+Char="Y",1,75,20,36,0,0
+Char="Z",22,75,19,36,-1,-1
+Char="[",42,75,11,36,2,-1
+Char="\",54,75,10,36,0,0
+Char="]",65,75,11,36,-1,2
+Char="^",77,75,17,36,-1,0
+Char="_",95,75,17,36,-1,-1
+Char="`",113,75,11,36,0,1
+Char="a",125,75,19,36,0,0
+Char="b",145,75,17,36,1,1
+Char="c",163,75,13,36,0,1
+Char="d",177,75,18,36,0,1
+Char="e",196,75,15,36,0,1
+Char="f",212,75,12,36,-1,-1
+Char="g",225,75,17,36,0,1
+Char="h",243,75,16,36,1,1
+Char="i",260,75,7,36,1,0
+Char="j",268,75,9,36,-2,1
+Char="k",278,75,17,36,1,1
+Char="l",296,75,6,36,1,1
+Char="m",303,75,29,36,0,1
+Char="n",333,75,17,36,0,1
+Char="o",351,75,17,36,0,0
+Char="p",369,75,18,36,0,1
+Char="q",388,75,19,36,0,0
+Char="r",408,75,12,36,0,-1
+Char="s",421,75,9,36,0,1
+Char="t",431,75,12,36,-1,1
+Char="u",444,75,17,36,1,1
+Char="v",462,75,17,36,0,1
+Char="w",480,75,26,36,0,-1
+Char="x",1,112,14,36,0,1
+Char="y",16,112,15,36,0,1
+Char="z",32,112,14,36,0,0
+Char="{",47,112,13,36,0,-1
+Char="|",61,112,5,36,2,1
+Char="}",67,112,12,36,0,0
+Char="~",80,112,18,36,0,-1
diff --git a/archive/blr2/resources/credits.png b/archive/blr2/resources/credits.png Binary files differnew file mode 100755 index 0000000..d647d86 --- /dev/null +++ b/archive/blr2/resources/credits.png diff --git a/archive/blr2/resources/e_leaf.png b/archive/blr2/resources/e_leaf.png Binary files differnew file mode 100755 index 0000000..d64d6ca --- /dev/null +++ b/archive/blr2/resources/e_leaf.png diff --git a/archive/blr2/resources/e_sflake.png b/archive/blr2/resources/e_sflake.png Binary files differnew file mode 100644 index 0000000..963d85e --- /dev/null +++ b/archive/blr2/resources/e_sflake.png diff --git a/archive/blr2/resources/e_skyitem.png b/archive/blr2/resources/e_skyitem.png Binary files differnew file mode 100644 index 0000000..e3e168b --- /dev/null +++ b/archive/blr2/resources/e_skyitem.png diff --git a/archive/blr2/resources/help.png b/archive/blr2/resources/help.png Binary files differnew file mode 100644 index 0000000..32718ee --- /dev/null +++ b/archive/blr2/resources/help.png diff --git a/archive/blr2/resources/menus.png b/archive/blr2/resources/menus.png Binary files differnew file mode 100644 index 0000000..9ce0aba --- /dev/null +++ b/archive/blr2/resources/menus.png diff --git a/archive/blr2/resources/ss.png b/archive/blr2/resources/ss.png Binary files differnew file mode 100755 index 0000000..e34abbb --- /dev/null +++ b/archive/blr2/resources/ss.png diff --git a/archive/blr2/resources/tap.ogg b/archive/blr2/resources/tap.ogg Binary files differnew file mode 100755 index 0000000..1ef00b0 --- /dev/null +++ b/archive/blr2/resources/tap.ogg diff --git a/archive/blr2/resources/title.png b/archive/blr2/resources/title.png Binary files differnew file mode 100644 index 0000000..f0801ef --- /dev/null +++ b/archive/blr2/resources/title.png diff --git a/archive/blr2/resources/vdig.fnt b/archive/blr2/resources/vdig.fnt new file mode 100644 index 0000000..6d89742 --- /dev/null +++ b/archive/blr2/resources/vdig.fnt @@ -0,0 +1,20 @@ +[HGEFONT] + +Bitmap=credits.png + +Char=" ",541,279,1,50,33,5 +Char="(",326,278,23,61,0,0 +Char=")",354,278,23,60,0,0 +Char="-",512,279,29,50,0,0 +Char=".",483,279,7,50,13,14 +Char="0",244,222,42,50,0,0 +Char="1",305,222,15,50,0,0 +Char="2",341,222,39,50,0,0 +Char="3",389,222,39,50,0,0 +Char="4",440,222,34,50,0,0 +Char="5",485,222,39,50,0,0 +Char="6",533,222,39,50,0,0 +Char="7",248,279,34,50,0,0 +Char="8",383,279,43,50,0,0 +Char="9",433,279,39,50,0,0 +Char="r",293,279,29,50,0,0 diff --git a/background.h b/archive/blr2/src/background.h index 849438c..849438c 100644 --- a/background.h +++ b/archive/blr2/src/background.h diff --git a/effects.h b/archive/blr2/src/effects.h index d71a445..d71a445 100644 --- a/effects.h +++ b/archive/blr2/src/effects.h diff --git a/global.h b/archive/blr2/src/global.h index 5e1d873..a20c5d1 100644 --- a/global.h +++ b/archive/blr2/src/global.h @@ -7,7 +7,7 @@ #define Resd 20.0f #define MaxBulCnt 20000 HGE *hge=0; -HEFFECT snd,menuin,menuout; +HEFFECT snd,menuin,menuout,menumov; hgeQuad quad; hgeFont *fnt,*vdig,*bdig; hgeSprite *spr,*titlespr; diff --git a/hgeft.cpp b/archive/blr2/src/hgeft.cpp index e424756..479027b 100644 --- a/hgeft.cpp +++ b/archive/blr2/src/hgeft.cpp @@ -11,7 +11,9 @@ bool hgeTTChar::SetChar(wchar_t ch,FT_Face ttfface) err=FT_Render_Glyph(ttfface->glyph,FT_RENDER_MODE_NORMAL); if(err){hge->System_Log("%s: Glyph render failed!",HGEFT_SRC_FN);return false;} _w=slot->advance.x>>6;_h=slot->bitmap.rows;//we are one line only. - rw=slot->bitmap.width;rh=slot->bitmap.rows;yofst=slot->bitmap.rows-slot->bitmap_top; + rw=slot->bitmap.width;rh=slot->bitmap.rows; + xofst=slot->bitmap_left; + yofst=slot->bitmap.rows-slot->bitmap_top; quad.tex=hge->Texture_Create( slot->bitmap.width?slot->bitmap.width:1, slot->bitmap.rows?slot->bitmap.rows:1); diff --git a/hgeft.h b/archive/blr2/src/hgeft.h index 1badc74..1badc74 100644 --- a/hgeft.h +++ b/archive/blr2/src/hgeft.h diff --git a/levels.h b/archive/blr2/src/levels.h index 58d7505..58d7505 100644 --- a/levels.h +++ b/archive/blr2/src/levels.h diff --git a/libcgh.h b/archive/blr2/src/libcgh.h index 324ba42..324ba42 100644 --- a/libcgh.h +++ b/archive/blr2/src/libcgh.h diff --git a/libcghEx.cpp b/archive/blr2/src/libcghEx.cpp index 9c9fa78..a8fa698 100644 --- a/libcghEx.cpp +++ b/archive/blr2/src/libcghEx.cpp @@ -41,30 +41,30 @@ void CircleIndicator::Init(double _r,double _thk,BYTE _a,bool _gr,HTEXTURE _Text void CircleIndicator::SetAlpha(BYTE _alpha){alpha=_alpha;} void CircleIndicator::SetValue(double _value) { - value=_value; - for (int i=0;i<=1024;++i) + value=_value; + for (int i=0;i<=1024;++i) + { + int tr=(int)((1.0f-value)*255); + int tg=(int)(value*255); + DWORD tcolour=ARGB(alpha,tr,tg,0); + hgeColorHSV *tc=new hgeColorHSV(tcolour); + if (tc->v<0.85)tc->v=0.85; + if (gradient)tcolour=SETA(tc->GetHWColor(),alpha);else tcolour=SETA(ccolour,alpha); + if ((double)i/1024.0f<=value) { - int tr=(int)((1.0f-value)*255); - int tg=(int)(value*255); - DWORD tcolour=ARGB(alpha,tr,tg,0); - hgeColorHSV *tc=new hgeColorHSV(tcolour); - if (tc->v<0.85)tc->v=0.85; - if (gradient)tcolour=SETA(tc->GetHWColor(),alpha);else tcolour=SETA(ccolour,alpha); - if ((double)i/1024.0f<=value) - { - circle->SetColor(i,0,tcolour); - circle->SetColor(i,1,SETA(0x00FFFFFF,alpha)); - circle->SetColor(i,2,tcolour); - } - else - { - circle->SetColor(i,0,0x00000000); - circle->SetColor(i,1,0x00000000); - circle->SetColor(i,2,0x00000000); - } - delete tc; + circle->SetColor(i,0,tcolour); + circle->SetColor(i,1,SETA(0x00FFFFFF,alpha)); + circle->SetColor(i,2,tcolour); } + else + { + circle->SetColor(i,0,0x00000000); + circle->SetColor(i,1,0x00000000); + circle->SetColor(i,2,0x00000000); + } + delete tc; } +} void CircleIndicator::Render(double x,double y){circle->Render(x,y);} void LinearProgresser::Init(double _a,double _b,double _Lim){a=_a,b=_b,Limit=_Lim;} diff --git a/archive/blr2/src/loading.h b/archive/blr2/src/loading.h new file mode 100644 index 0000000..acf59aa --- /dev/null +++ b/archive/blr2/src/loading.h @@ -0,0 +1,384 @@ +unsigned char Loading[]= +{0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x60, +0x00,0x00,0x00,0x20,0x08,0x06,0x00,0x00,0x00,0xED,0xC0,0x7D,0x54,0x00,0x00,0x00,0x09,0x70,0x48, +0x59,0x73,0x00,0x00,0x0B,0x13,0x00,0x00,0x0B,0x13,0x01,0x00,0x9A,0x9C,0x18,0x00,0x00,0x0A,0x4D, +0x69,0x43,0x43,0x50,0x50,0x68,0x6F,0x74,0x6F,0x73,0x68,0x6F,0x70,0x20,0x49,0x43,0x43,0x20,0x70, +0x72,0x6F,0x66,0x69,0x6C,0x65,0x00,0x00,0x78,0xDA,0x9D,0x53,0x77,0x58,0x93,0xF7,0x16,0x3E,0xDF, +0xF7,0x65,0x0F,0x56,0x42,0xD8,0xF0,0xB1,0x97,0x6C,0x81,0x00,0x22,0x23,0xAC,0x08,0xC8,0x10,0x59, +0xA2,0x10,0x92,0x00,0x61,0x84,0x10,0x12,0x40,0xC5,0x85,0x88,0x0A,0x56,0x14,0x15,0x11,0x9C,0x48, +0x55,0xC4,0x82,0xD5,0x0A,0x48,0x9D,0x88,0xE2,0xA0,0x28,0xB8,0x67,0x41,0x8A,0x88,0x5A,0x8B,0x55, +0x5C,0x38,0xEE,0x1F,0xDC,0xA7,0xB5,0x7D,0x7A,0xEF,0xED,0xED,0xFB,0xD7,0xFB,0xBC,0xE7,0x9C,0xE7, +0xFC,0xCE,0x79,0xCF,0x0F,0x80,0x11,0x12,0x26,0x91,0xE6,0xA2,0x6A,0x00,0x39,0x52,0x85,0x3C,0x3A, +0xD8,0x1F,0x8F,0x4F,0x48,0xC4,0xC9,0xBD,0x80,0x02,0x15,0x48,0xE0,0x04,0x20,0x10,0xE6,0xCB,0xC2, +0x67,0x05,0xC5,0x00,0x00,0xF0,0x03,0x79,0x78,0x7E,0x74,0xB0,0x3F,0xFC,0x01,0xAF,0x6F,0x00,0x02, +0x00,0x70,0xD5,0x2E,0x24,0x12,0xC7,0xE1,0xFF,0x83,0xBA,0x50,0x26,0x57,0x00,0x20,0x91,0x00,0xE0, +0x22,0x12,0xE7,0x0B,0x01,0x90,0x52,0x00,0xC8,0x2E,0x54,0xC8,0x14,0x00,0xC8,0x18,0x00,0xB0,0x53, +0xB3,0x64,0x0A,0x00,0x94,0x00,0x00,0x6C,0x79,0x7C,0x42,0x22,0x00,0xAA,0x0D,0x00,0xEC,0xF4,0x49, +0x3E,0x05,0x00,0xD8,0xA9,0x93,0xDC,0x17,0x00,0xD8,0xA2,0x1C,0xA9,0x08,0x00,0x8D,0x01,0x00,0x99, +0x28,0x47,0x24,0x02,0x40,0xBB,0x00,0x60,0x55,0x81,0x52,0x2C,0x02,0xC0,0xC2,0x00,0xA0,0xAC,0x40, +0x22,0x2E,0x04,0xC0,0xAE,0x01,0x80,0x59,0xB6,0x32,0x47,0x02,0x80,0xBD,0x05,0x00,0x76,0x8E,0x58, +0x90,0x0F,0x40,0x60,0x00,0x80,0x99,0x42,0x2C,0xCC,0x00,0x20,0x38,0x02,0x00,0x43,0x1E,0x13,0xCD, +0x03,0x20,0x4C,0x03,0xA0,0x30,0xD2,0xBF,0xE0,0xA9,0x5F,0x70,0x85,0xB8,0x48,0x01,0x00,0xC0,0xCB, +0x95,0xCD,0x97,0x4B,0xD2,0x33,0x14,0xB8,0x95,0xD0,0x1A,0x77,0xF2,0xF0,0xE0,0xE2,0x21,0xE2,0xC2, +0x6C,0xB1,0x42,0x61,0x17,0x29,0x10,0x66,0x09,0xE4,0x22,0x9C,0x97,0x9B,0x23,0x13,0x48,0xE7,0x03, +0x4C,0xCE,0x0C,0x00,0x00,0x1A,0xF9,0xD1,0xC1,0xFE,0x38,0x3F,0x90,0xE7,0xE6,0xE4,0xE1,0xE6,0x66, +0xE7,0x6C,0xEF,0xF4,0xC5,0xA2,0xFE,0x6B,0xF0,0x6F,0x22,0x3E,0x21,0xF1,0xDF,0xFE,0xBC,0x8C,0x02, +0x04,0x00,0x10,0x4E,0xCF,0xEF,0xDA,0x5F,0xE5,0xE5,0xD6,0x03,0x70,0xC7,0x01,0xB0,0x75,0xBF,0x6B, +0xA9,0x5B,0x00,0xDA,0x56,0x00,0x68,0xDF,0xF9,0x5D,0x33,0xDB,0x09,0xA0,0x5A,0x0A,0xD0,0x7A,0xF9, +0x8B,0x79,0x38,0xFC,0x40,0x1E,0x9E,0xA1,0x50,0xC8,0x3C,0x1D,0x1C,0x0A,0x0B,0x0B,0xED,0x25,0x62, +0xA1,0xBD,0x30,0xE3,0x8B,0x3E,0xFF,0x33,0xE1,0x6F,0xE0,0x8B,0x7E,0xF6,0xFC,0x40,0x1E,0xFE,0xDB, +0x7A,0xF0,0x00,0x71,0x9A,0x40,0x99,0xAD,0xC0,0xA3,0x83,0xFD,0x71,0x61,0x6E,0x76,0xAE,0x52,0x8E, +0xE7,0xCB,0x04,0x42,0x31,0x6E,0xF7,0xE7,0x23,0xFE,0xC7,0x85,0x7F,0xFD,0x8E,0x29,0xD1,0xE2,0x34, +0xB1,0x5C,0x2C,0x15,0x8A,0xF1,0x58,0x89,0xB8,0x50,0x22,0x4D,0xC7,0x79,0xB9,0x52,0x91,0x44,0x21, +0xC9,0x95,0xE2,0x12,0xE9,0x7F,0x32,0xF1,0x1F,0x96,0xFD,0x09,0x93,0x77,0x0D,0x00,0xAC,0x86,0x4F, +0xC0,0x4E,0xB6,0x07,0xB5,0xCB,0x6C,0xC0,0x7E,0xEE,0x01,0x02,0x8B,0x0E,0x58,0xD2,0x76,0x00,0x40, +0x7E,0xF3,0x2D,0x8C,0x1A,0x0B,0x91,0x00,0x10,0x67,0x34,0x32,0x79,0xF7,0x00,0x00,0x93,0xBF,0xF9, +0x8F,0x40,0x2B,0x01,0x00,0xCD,0x97,0xA4,0xE3,0x00,0x00,0xBC,0xE8,0x18,0x5C,0xA8,0x94,0x17,0x4C, +0xC6,0x08,0x00,0x00,0x44,0xA0,0x81,0x2A,0xB0,0x41,0x07,0x0C,0xC1,0x14,0xAC,0xC0,0x0E,0x9C,0xC1, +0x1D,0xBC,0xC0,0x17,0x02,0x61,0x06,0x44,0x40,0x0C,0x24,0xC0,0x3C,0x10,0x42,0x06,0xE4,0x80,0x1C, +0x0A,0xA1,0x18,0x96,0x41,0x19,0x54,0xC0,0x3A,0xD8,0x04,0xB5,0xB0,0x03,0x1A,0xA0,0x11,0x9A,0xE1, +0x10,0xB4,0xC1,0x31,0x38,0x0D,0xE7,0xE0,0x12,0x5C,0x81,0xEB,0x70,0x17,0x06,0x60,0x18,0x9E,0xC2, +0x18,0xBC,0x86,0x09,0x04,0x41,0xC8,0x08,0x13,0x61,0x21,0x3A,0x88,0x11,0x62,0x8E,0xD8,0x22,0xCE, +0x08,0x17,0x99,0x8E,0x04,0x22,0x61,0x48,0x34,0x92,0x80,0xA4,0x20,0xE9,0x88,0x14,0x51,0x22,0xC5, +0xC8,0x72,0xA4,0x02,0xA9,0x42,0x6A,0x91,0x5D,0x48,0x23,0xF2,0x2D,0x72,0x14,0x39,0x8D,0x5C,0x40, +0xFA,0x90,0xDB,0xC8,0x20,0x32,0x8A,0xFC,0x8A,0xBC,0x47,0x31,0x94,0x81,0xB2,0x51,0x03,0xD4,0x02, +0x75,0x40,0xB9,0xA8,0x1F,0x1A,0x8A,0xC6,0xA0,0x73,0xD1,0x74,0x34,0x0F,0x5D,0x80,0x96,0xA2,0x6B, +0xD1,0x1A,0xB4,0x1E,0x3D,0x80,0xB6,0xA2,0xA7,0xD1,0x4B,0xE8,0x75,0x74,0x00,0x7D,0x8A,0x8E,0x63, +0x80,0xD1,0x31,0x0E,0x66,0x8C,0xD9,0x61,0x5C,0x8C,0x87,0x45,0x60,0x89,0x58,0x1A,0x26,0xC7,0x16, +0x63,0xE5,0x58,0x35,0x56,0x8F,0x35,0x63,0x1D,0x58,0x37,0x76,0x15,0x1B,0xC0,0x9E,0x61,0xEF,0x08, +0x24,0x02,0x8B,0x80,0x13,0xEC,0x08,0x5E,0x84,0x10,0xC2,0x6C,0x82,0x90,0x90,0x47,0x58,0x4C,0x58, +0x43,0xA8,0x25,0xEC,0x23,0xB4,0x12,0xBA,0x08,0x57,0x09,0x83,0x84,0x31,0xC2,0x27,0x22,0x93,0xA8, +0x4F,0xB4,0x25,0x7A,0x12,0xF9,0xC4,0x78,0x62,0x3A,0xB1,0x90,0x58,0x46,0xAC,0x26,0xEE,0x21,0x1E, +0x21,0x9E,0x25,0x5E,0x27,0x0E,0x13,0x5F,0x93,0x48,0x24,0x0E,0xC9,0x92,0xE4,0x4E,0x0A,0x21,0x25, +0x90,0x32,0x49,0x0B,0x49,0x6B,0x48,0xDB,0x48,0x2D,0xA4,0x53,0xA4,0x3E,0xD2,0x10,0x69,0x9C,0x4C, +0x26,0xEB,0x90,0x6D,0xC9,0xDE,0xE4,0x08,0xB2,0x80,0xAC,0x20,0x97,0x91,0xB7,0x90,0x0F,0x90,0x4F, +0x92,0xFB,0xC9,0xC3,0xE4,0xB7,0x14,0x3A,0xC5,0x88,0xE2,0x4C,0x09,0xA2,0x24,0x52,0xA4,0x94,0x12, +0x4A,0x35,0x65,0x3F,0xE5,0x04,0xA5,0x9F,0x32,0x42,0x99,0xA0,0xAA,0x51,0xCD,0xA9,0x9E,0xD4,0x08, +0xAA,0x88,0x3A,0x9F,0x5A,0x49,0x6D,0xA0,0x76,0x50,0x2F,0x53,0x87,0xA9,0x13,0x34,0x75,0x9A,0x25, +0xCD,0x9B,0x16,0x43,0xCB,0xA4,0x2D,0xA3,0xD5,0xD0,0x9A,0x69,0x67,0x69,0xF7,0x68,0x2F,0xE9,0x74, +0xBA,0x09,0xDD,0x83,0x1E,0x45,0x97,0xD0,0x97,0xD2,0x6B,0xE8,0x07,0xE9,0xE7,0xE9,0x83,0xF4,0x77, +0x0C,0x0D,0x86,0x0D,0x83,0xC7,0x48,0x62,0x28,0x19,0x6B,0x19,0x7B,0x19,0xA7,0x18,0xB7,0x19,0x2F, +0x99,0x4C,0xA6,0x05,0xD3,0x97,0x99,0xC8,0x54,0x30,0xD7,0x32,0x1B,0x99,0x67,0x98,0x0F,0x98,0x6F, +0x55,0x58,0x2A,0xF6,0x2A,0x7C,0x15,0x91,0xCA,0x12,0x95,0x3A,0x95,0x56,0x95,0x7E,0x95,0xE7,0xAA, +0x54,0x55,0x73,0x55,0x3F,0xD5,0x79,0xAA,0x0B,0x54,0xAB,0x55,0x0F,0xAB,0x5E,0x56,0x7D,0xA6,0x46, +0x55,0xB3,0x50,0xE3,0xA9,0x09,0xD4,0x16,0xAB,0xD5,0xA9,0x1D,0x55,0xBB,0xA9,0x36,0xAE,0xCE,0x52, +0x77,0x52,0x8F,0x50,0xCF,0x51,0x5F,0xA3,0xBE,0x5F,0xFD,0x82,0xFA,0x63,0x0D,0xB2,0x86,0x85,0x46, +0xA0,0x86,0x48,0xA3,0x54,0x63,0xB7,0xC6,0x19,0x8D,0x21,0x16,0xC6,0x32,0x65,0xF1,0x58,0x42,0xD6, +0x72,0x56,0x03,0xEB,0x2C,0x6B,0x98,0x4D,0x62,0x5B,0xB2,0xF9,0xEC,0x4C,0x76,0x05,0xFB,0x1B,0x76, +0x2F,0x7B,0x4C,0x53,0x43,0x73,0xAA,0x66,0xAC,0x66,0x91,0x66,0x9D,0xE6,0x71,0xCD,0x01,0x0E,0xC6, +0xB1,0xE0,0xF0,0x39,0xD9,0x9C,0x4A,0xCE,0x21,0xCE,0x0D,0xCE,0x7B,0x2D,0x03,0x2D,0x3F,0x2D,0xB1, +0xD6,0x6A,0xAD,0x66,0xAD,0x7E,0xAD,0x37,0xDA,0x7A,0xDA,0xBE,0xDA,0x62,0xED,0x72,0xED,0x16,0xED, +0xEB,0xDA,0xEF,0x75,0x70,0x9D,0x40,0x9D,0x2C,0x9D,0xF5,0x3A,0x6D,0x3A,0xF7,0x75,0x09,0xBA,0x36, +0xBA,0x51,0xBA,0x85,0xBA,0xDB,0x75,0xCF,0xEA,0x3E,0xD3,0x63,0xEB,0x79,0xE9,0x09,0xF5,0xCA,0xF5, +0x0E,0xE9,0xDD,0xD1,0x47,0xF5,0x6D,0xF4,0xA3,0xF5,0x17,0xEA,0xEF,0xD6,0xEF,0xD1,0x1F,0x37,0x30, +0x34,0x08,0x36,0x90,0x19,0x6C,0x31,0x38,0x63,0xF0,0xCC,0x90,0x63,0xE8,0x6B,0x98,0x69,0xB8,0xD1, +0xF0,0x84,0xE1,0xA8,0x11,0xCB,0x68,0xBA,0x91,0xC4,0x68,0xA3,0xD1,0x49,0xA3,0x27,0xB8,0x26,0xEE, +0x87,0x67,0xE3,0x35,0x78,0x17,0x3E,0x66,0xAC,0x6F,0x1C,0x62,0xAC,0x34,0xDE,0x65,0xDC,0x6B,0x3C, +0x61,0x62,0x69,0x32,0xDB,0xA4,0xC4,0xA4,0xC5,0xE4,0xBE,0x29,0xCD,0x94,0x6B,0x9A,0x66,0xBA,0xD1, +0xB4,0xD3,0x74,0xCC,0xCC,0xC8,0x2C,0xDC,0xAC,0xD8,0xAC,0xC9,0xEC,0x8E,0x39,0xD5,0x9C,0x6B,0x9E, +0x61,0xBE,0xD9,0xBC,0xDB,0xFC,0x8D,0x85,0xA5,0x45,0x9C,0xC5,0x4A,0x8B,0x36,0x8B,0xC7,0x96,0xDA, +0x96,0x7C,0xCB,0x05,0x96,0x4D,0x96,0xF7,0xAC,0x98,0x56,0x3E,0x56,0x79,0x56,0xF5,0x56,0xD7,0xAC, +0x49,0xD6,0x5C,0xEB,0x2C,0xEB,0x6D,0xD6,0x57,0x6C,0x50,0x1B,0x57,0x9B,0x0C,0x9B,0x3A,0x9B,0xCB, +0xB6,0xA8,0xAD,0x9B,0xAD,0xC4,0x76,0x9B,0x6D,0xDF,0x14,0xE2,0x14,0x8F,0x29,0xD2,0x29,0xF5,0x53, +0x6E,0xDA,0x31,0xEC,0xFC,0xEC,0x0A,0xEC,0x9A,0xEC,0x06,0xED,0x39,0xF6,0x61,0xF6,0x25,0xF6,0x6D, +0xF6,0xCF,0x1D,0xCC,0x1C,0x12,0x1D,0xD6,0x3B,0x74,0x3B,0x7C,0x72,0x74,0x75,0xCC,0x76,0x6C,0x70, +0xBC,0xEB,0xA4,0xE1,0x34,0xC3,0xA9,0xC4,0xA9,0xC3,0xE9,0x57,0x67,0x1B,0x67,0xA1,0x73,0x9D,0xF3, +0x35,0x17,0xA6,0x4B,0x90,0xCB,0x12,0x97,0x76,0x97,0x17,0x53,0x6D,0xA7,0x8A,0xA7,0x6E,0x9F,0x7A, +0xCB,0x95,0xE5,0x1A,0xEE,0xBA,0xD2,0xB5,0xD3,0xF5,0xA3,0x9B,0xBB,0x9B,0xDC,0xAD,0xD9,0x6D,0xD4, +0xDD,0xCC,0x3D,0xC5,0x7D,0xAB,0xFB,0x4D,0x2E,0x9B,0x1B,0xC9,0x5D,0xC3,0x3D,0xEF,0x41,0xF4,0xF0, +0xF7,0x58,0xE2,0x71,0xCC,0xE3,0x9D,0xA7,0x9B,0xA7,0xC2,0xF3,0x90,0xE7,0x2F,0x5E,0x76,0x5E,0x59, +0x5E,0xFB,0xBD,0x1E,0x4F,0xB3,0x9C,0x26,0x9E,0xD6,0x30,0x6D,0xC8,0xDB,0xC4,0x5B,0xE0,0xBD,0xCB, +0x7B,0x60,0x3A,0x3E,0x3D,0x65,0xFA,0xCE,0xE9,0x03,0x3E,0xC6,0x3E,0x02,0x9F,0x7A,0x9F,0x87,0xBE, +0xA6,0xBE,0x22,0xDF,0x3D,0xBE,0x23,0x7E,0xD6,0x7E,0x99,0x7E,0x07,0xFC,0x9E,0xFB,0x3B,0xFA,0xCB, +0xFD,0x8F,0xF8,0xBF,0xE1,0x79,0xF2,0x16,0xF1,0x4E,0x05,0x60,0x01,0xC1,0x01,0xE5,0x01,0xBD,0x81, +0x1A,0x81,0xB3,0x03,0x6B,0x03,0x1F,0x04,0x99,0x04,0xA5,0x07,0x35,0x05,0x8D,0x05,0xBB,0x06,0x2F, +0x0C,0x3E,0x15,0x42,0x0C,0x09,0x0D,0x59,0x1F,0x72,0x93,0x6F,0xC0,0x17,0xF2,0x1B,0xF9,0x63,0x33, +0xDC,0x67,0x2C,0x9A,0xD1,0x15,0xCA,0x08,0x9D,0x15,0x5A,0x1B,0xFA,0x30,0xCC,0x26,0x4C,0x1E,0xD6, +0x11,0x8E,0x86,0xCF,0x08,0xDF,0x10,0x7E,0x6F,0xA6,0xF9,0x4C,0xE9,0xCC,0xB6,0x08,0x88,0xE0,0x47, +0x6C,0x88,0xB8,0x1F,0x69,0x19,0x99,0x17,0xF9,0x7D,0x14,0x29,0x2A,0x32,0xAA,0x2E,0xEA,0x51,0xB4, +0x53,0x74,0x71,0x74,0xF7,0x2C,0xD6,0xAC,0xE4,0x59,0xFB,0x67,0xBD,0x8E,0xF1,0x8F,0xA9,0x8C,0xB9, +0x3B,0xDB,0x6A,0xB6,0x72,0x76,0x67,0xAC,0x6A,0x6C,0x52,0x6C,0x63,0xEC,0x9B,0xB8,0x80,0xB8,0xAA, +0xB8,0x81,0x78,0x87,0xF8,0x45,0xF1,0x97,0x12,0x74,0x13,0x24,0x09,0xED,0x89,0xE4,0xC4,0xD8,0xC4, +0x3D,0x89,0xE3,0x73,0x02,0xE7,0x6C,0x9A,0x33,0x9C,0xE4,0x9A,0x54,0x96,0x74,0x63,0xAE,0xE5,0xDC, +0xA2,0xB9,0x17,0xE6,0xE9,0xCE,0xCB,0x9E,0x77,0x3C,0x59,0x35,0x59,0x90,0x7C,0x38,0x85,0x98,0x12, +0x97,0xB2,0x3F,0xE5,0x83,0x20,0x42,0x50,0x2F,0x18,0x4F,0xE5,0xA7,0x6E,0x4D,0x1D,0x13,0xF2,0x84, +0x9B,0x85,0x4F,0x45,0xBE,0xA2,0x8D,0xA2,0x51,0xB1,0xB7,0xB8,0x4A,0x3C,0x92,0xE6,0x9D,0x56,0x95, +0xF6,0x38,0xDD,0x3B,0x7D,0x43,0xFA,0x68,0x86,0x4F,0x46,0x75,0xC6,0x33,0x09,0x4F,0x52,0x2B,0x79, +0x91,0x19,0x92,0xB9,0x23,0xF3,0x4D,0x56,0x44,0xD6,0xDE,0xAC,0xCF,0xD9,0x71,0xD9,0x2D,0x39,0x94, +0x9C,0x94,0x9C,0xA3,0x52,0x0D,0x69,0x96,0xB4,0x2B,0xD7,0x30,0xB7,0x28,0xB7,0x4F,0x66,0x2B,0x2B, +0x93,0x0D,0xE4,0x79,0xE6,0x6D,0xCA,0x1B,0x93,0x87,0xCA,0xF7,0xE4,0x23,0xF9,0x73,0xF3,0xDB,0x15, +0x6C,0x85,0x4C,0xD1,0xA3,0xB4,0x52,0xAE,0x50,0x0E,0x16,0x4C,0x2F,0xA8,0x2B,0x78,0x5B,0x18,0x5B, +0x78,0xB8,0x48,0xBD,0x48,0x5A,0xD4,0x33,0xDF,0x66,0xFE,0xEA,0xF9,0x23,0x0B,0x82,0x16,0x7C,0xBD, +0x90,0xB0,0x50,0xB8,0xB0,0xB3,0xD8,0xB8,0x78,0x59,0xF1,0xE0,0x22,0xBF,0x45,0xBB,0x16,0x23,0x8B, +0x53,0x17,0x77,0x2E,0x31,0x5D,0x52,0xBA,0x64,0x78,0x69,0xF0,0xD2,0x7D,0xCB,0x68,0xCB,0xB2,0x96, +0xFD,0x50,0xE2,0x58,0x52,0x55,0xF2,0x6A,0x79,0xDC,0xF2,0x8E,0x52,0x83,0xD2,0xA5,0xA5,0x43,0x2B, +0x82,0x57,0x34,0x95,0xA9,0x94,0xC9,0xCB,0x6E,0xAE,0xF4,0x5A,0xB9,0x63,0x15,0x61,0x95,0x64,0x55, +0xEF,0x6A,0x97,0xD5,0x5B,0x56,0x7F,0x2A,0x17,0x95,0x5F,0xAC,0x70,0xAC,0xA8,0xAE,0xF8,0xB0,0x46, +0xB8,0xE6,0xE2,0x57,0x4E,0x5F,0xD5,0x7C,0xF5,0x79,0x6D,0xDA,0xDA,0xDE,0x4A,0xB7,0xCA,0xED,0xEB, +0x48,0xEB,0xA4,0xEB,0x6E,0xAC,0xF7,0x59,0xBF,0xAF,0x4A,0xBD,0x6A,0x41,0xD5,0xD0,0x86,0xF0,0x0D, +0xAD,0x1B,0xF1,0x8D,0xE5,0x1B,0x5F,0x6D,0x4A,0xDE,0x74,0xA1,0x7A,0x6A,0xF5,0x8E,0xCD,0xB4,0xCD, +0xCA,0xCD,0x03,0x35,0x61,0x35,0xED,0x5B,0xCC,0xB6,0xAC,0xDB,0xF2,0xA1,0x36,0xA3,0xF6,0x7A,0x9D, +0x7F,0x5D,0xCB,0x56,0xFD,0xAD,0xAB,0xB7,0xBE,0xD9,0x26,0xDA,0xD6,0xBF,0xDD,0x77,0x7B,0xF3,0x0E, +0x83,0x1D,0x15,0x3B,0xDE,0xEF,0x94,0xEC,0xBC,0xB5,0x2B,0x78,0x57,0x6B,0xBD,0x45,0x7D,0xF5,0x6E, +0xD2,0xEE,0x82,0xDD,0x8F,0x1A,0x62,0x1B,0xBA,0xBF,0xE6,0x7E,0xDD,0xB8,0x47,0x77,0x4F,0xC5,0x9E, +0x8F,0x7B,0xA5,0x7B,0x07,0xF6,0x45,0xEF,0xEB,0x6A,0x74,0x6F,0x6C,0xDC,0xAF,0xBF,0xBF,0xB2,0x09, +0x6D,0x52,0x36,0x8D,0x1E,0x48,0x3A,0x70,0xE5,0x9B,0x80,0x6F,0xDA,0x9B,0xED,0x9A,0x77,0xB5,0x70, +0x5A,0x2A,0x0E,0xC2,0x41,0xE5,0xC1,0x27,0xDF,0xA6,0x7C,0x7B,0xE3,0x50,0xE8,0xA1,0xCE,0xC3,0xDC, +0xC3,0xCD,0xDF,0x99,0x7F,0xB7,0xF5,0x08,0xEB,0x48,0x79,0x2B,0xD2,0x3A,0xBF,0x75,0xAC,0x2D,0xA3, +0x6D,0xA0,0x3D,0xA1,0xBD,0xEF,0xE8,0x8C,0xA3,0x9D,0x1D,0x5E,0x1D,0x47,0xBE,0xB7,0xFF,0x7E,0xEF, +0x31,0xE3,0x63,0x75,0xC7,0x35,0x8F,0x57,0x9E,0xA0,0x9D,0x28,0x3D,0xF1,0xF9,0xE4,0x82,0x93,0xE3, +0xA7,0x64,0xA7,0x9E,0x9D,0x4E,0x3F,0x3D,0xD4,0x99,0xDC,0x79,0xF7,0x4C,0xFC,0x99,0x6B,0x5D,0x51, +0x5D,0xBD,0x67,0x43,0xCF,0x9E,0x3F,0x17,0x74,0xEE,0x4C,0xB7,0x5F,0xF7,0xC9,0xF3,0xDE,0xE7,0x8F, +0x5D,0xF0,0xBC,0x70,0xF4,0x22,0xF7,0x62,0xDB,0x25,0xB7,0x4B,0xAD,0x3D,0xAE,0x3D,0x47,0x7E,0x70, +0xFD,0xE1,0x48,0xAF,0x5B,0x6F,0xEB,0x65,0xF7,0xCB,0xED,0x57,0x3C,0xAE,0x74,0xF4,0x4D,0xEB,0x3B, +0xD1,0xEF,0xD3,0x7F,0xFA,0x6A,0xC0,0xD5,0x73,0xD7,0xF8,0xD7,0x2E,0x5D,0x9F,0x79,0xBD,0xEF,0xC6, +0xEC,0x1B,0xB7,0x6E,0x26,0xDD,0x1C,0xB8,0x25,0xBA,0xF5,0xF8,0x76,0xF6,0xED,0x17,0x77,0x0A,0xEE, +0x4C,0xDC,0x5D,0x7A,0x8F,0x78,0xAF,0xFC,0xBE,0xDA,0xFD,0xEA,0x07,0xFA,0x0F,0xEA,0x7F,0xB4,0xFE, +0xB1,0x65,0xC0,0x6D,0xE0,0xF8,0x60,0xC0,0x60,0xCF,0xC3,0x59,0x0F,0xEF,0x0E,0x09,0x87,0x9E,0xFE, +0x94,0xFF,0xD3,0x87,0xE1,0xD2,0x47,0xCC,0x47,0xD5,0x23,0x46,0x23,0x8D,0x8F,0x9D,0x1F,0x1F,0x1B, +0x0D,0x1A,0xBD,0xF2,0x64,0xCE,0x93,0xE1,0xA7,0xB2,0xA7,0x13,0xCF,0xCA,0x7E,0x56,0xFF,0x79,0xEB, +0x73,0xAB,0xE7,0xDF,0xFD,0xE2,0xFB,0x4B,0xCF,0x58,0xFC,0xD8,0xF0,0x0B,0xF9,0x8B,0xCF,0xBF,0xAE, +0x79,0xA9,0xF3,0x72,0xEF,0xAB,0xA9,0xAF,0x3A,0xC7,0x23,0xC7,0x1F,0xBC,0xCE,0x79,0x3D,0xF1,0xA6, +0xFC,0xAD,0xCE,0xDB,0x7D,0xEF,0xB8,0xEF,0xBA,0xDF,0xC7,0xBD,0x1F,0x99,0x28,0xFC,0x40,0xFE,0x50, +0xF3,0xD1,0xFA,0x63,0xC7,0xA7,0xD0,0x4F,0xF7,0x3E,0xE7,0x7C,0xFE,0xFC,0x2F,0xF7,0x84,0xF3,0xFB, +0x25,0xD2,0x9F,0x33,0x00,0x00,0x00,0x20,0x63,0x48,0x52,0x4D,0x00,0x00,0x7A,0x25,0x00,0x00,0x80, +0x83,0x00,0x00,0xF9,0xFF,0x00,0x00,0x80,0xE9,0x00,0x00,0x75,0x30,0x00,0x00,0xEA,0x60,0x00,0x00, +0x3A,0x98,0x00,0x00,0x17,0x6F,0x92,0x5F,0xC5,0x46,0x00,0x00,0x03,0x40,0x49,0x44,0x41,0x54,0x78, +0xDA,0xEC,0x5A,0xED,0x71,0xE2,0x40,0x0C,0x7D,0x64,0xEE,0x3F,0x7B,0x15,0x9C,0xAF,0x82,0x38,0x15, +0x9C,0xA9,0xE0,0xA0,0x82,0x90,0x0A,0xC2,0x55,0x00,0x54,0xC0,0xA5,0x02,0xE8,0xC0,0x50,0x81,0x49, +0x05,0x71,0x07,0xB8,0x03,0x7C,0x15,0xE8,0xFE,0x68,0x27,0x42,0xD1,0x62,0xC2,0x67,0x48,0xF6,0xCD, +0x78,0x6C,0xCB,0xFB,0xA1,0x5D,0xAD,0xA4,0xB7,0x0B,0x2D,0x22,0x42,0xC4,0xE5,0x70,0x13,0xA7,0x20, +0x1A,0x20,0x1A,0x20,0x22,0x1A,0x20,0x1A,0x20,0xE2,0x32,0xF8,0xC6,0x77,0x07,0x20,0xE5,0xE7,0x8A, +0xAF,0x6B,0x80,0xD7,0x3B,0x05,0x50,0x03,0x98,0x5D,0xAB,0x07,0xA4,0x00,0x0A,0xBE,0xEE,0xAF,0x48, +0x7F,0xAF,0xF7,0x44,0xE9,0xDD,0x07,0x30,0x60,0x03,0x5D,0x85,0x07,0x7C,0x26,0xF4,0x01,0x4C,0xF9, +0xF9,0x16,0xC0,0x43,0xCC,0x01,0xE7,0x0F,0x4B,0xD6,0x73,0xF4,0x80,0x33,0xE1,0x2F,0xDF,0xDB,0x00, +0x9E,0xBE,0x8A,0x01,0x64,0x12,0x5F,0x9E,0xA0,0xBC,0x47,0xC6,0xF7,0x92,0x93,0xAE,0x44,0x69,0x18, +0x61,0x57,0x3D,0x6A,0x55,0x7F,0x17,0x7D,0x53,0x96,0x2F,0x0F,0x9A,0x39,0x22,0x02,0x11,0x65,0xF4, +0x8A,0x21,0xCB,0x76,0xB9,0x52,0x22,0x2A,0xE8,0x2D,0xA6,0x44,0xE4,0x8C,0xF2,0x09,0x11,0xE5,0xAA, +0xEC,0x9A,0x88,0x06,0xFC,0x7D,0x25,0xEA,0xFB,0x3A,0x8E,0x88,0x26,0x46,0x1F,0xC3,0x80,0xDE,0x21, +0x59,0xC1,0x7D,0x65,0xDC,0xE6,0x54,0xB5,0xB7,0xE2,0xF1,0x40,0xF5,0x3D,0x35,0xF4,0xED,0xAA,0x71, +0x67,0xEF,0x98,0xB3,0x8D,0xEB,0x10,0x0F,0xF0,0x0C,0xC4,0x05,0x12,0x61,0x0A,0xA0,0x23,0x56,0x6A, +0x02,0xE0,0xC5,0x28,0xEF,0x98,0xC5,0xB4,0xB9,0x0C,0x14,0x0D,0x2E,0xC4,0xEA,0x93,0x18,0x35,0xAC, +0x5A,0xDD,0x87,0xF7,0x9E,0x47,0x7E,0xD6,0x7A,0x24,0x00,0x72,0x00,0x3F,0x85,0x2C,0x17,0xF5,0x64, +0x5B,0xF9,0xB1,0xA8,0xFA,0xCD,0x01,0x21,0x27,0xE7,0x7B,0xCD,0x4C,0xA3,0x05,0xE0,0x3B,0x4F,0x8C, +0x37,0xD0,0x54,0xD4,0x99,0x8A,0x41,0xCF,0x79,0xA0,0x2D,0x36,0x52,0x29,0xEA,0x49,0x0C,0xC5,0xE4, +0x97,0x5C,0xB6,0xC5,0x75,0xE7,0x01,0xC3,0x58,0x90,0xE1,0xAA,0xCB,0xEF,0x1D,0xD1,0xBF,0x5C,0x24, +0xA9,0x58,0x44,0x32,0xE4,0xDD,0x71,0xF9,0x3B,0x7E,0x4F,0x8E,0x12,0xBC,0xF7,0x0C,0x41,0x7D,0x51, +0xBE,0x6B,0x7C,0x97,0x21,0x23,0xE1,0x4B,0xBA,0xBA,0x15,0x9A,0xD6,0x86,0x4B,0xAF,0x55,0x3B,0xBA, +0xDE,0x6A,0xC7,0x10,0x04,0xD5,0xBF,0xDB,0xA2,0xAF,0xEF,0xBB,0xD8,0xD2,0x77,0xA2,0xC2,0xD2,0xDE, +0x21,0x68,0x5F,0x0F,0xF8,0x2D,0x42,0xC5,0xDC,0xF8,0xFE,0xA4,0x56,0x5C,0x57,0xBC,0x8F,0x8D,0xF2, +0x56,0x3B,0xA9,0xF0,0x98,0x59,0xC0,0xE5,0xC7,0x7B,0xE8,0x5E,0x19,0x09,0xBC,0x6E,0x48,0xF8,0x95, +0xD1,0x46,0xA9,0xDE,0xCF,0xCA,0x82,0x5C,0x43,0xC7,0x52,0xDE,0xDE,0xF2,0x6D,0x9B,0xDC,0xED,0x51, +0xE7,0x14,0xA8,0x77,0x90,0x57,0xE7,0xCE,0x01,0x4D,0x1B,0x1D,0xF7,0x01,0xEA,0x1C,0x8A,0x4A,0x78, +0x82,0xDB,0x92,0xD4,0x2F,0x92,0x84,0x17,0x22,0x4C,0x58,0x8A,0x3C,0xAA,0xB2,0xCF,0x81,0x6F,0x72, +0x40,0x7D,0x25,0x5B,0x2A,0x56,0x65,0x4D,0xF6,0x29,0xCF,0xAD,0x64,0x48,0x9C,0x88,0xFE,0x3D,0x6B, +0x3B,0xFB,0x51,0x84,0xB7,0x7A,0xC2,0x31,0xB9,0x16,0xCA,0x25,0x2A,0x76,0x0E,0xC4,0x24,0x96,0x7C, +0xAF,0x8C,0xEF,0x72,0x40,0x72,0x82,0x7F,0x89,0xD8,0xAF,0x59,0x97,0xC7,0x40,0xE5,0x96,0x63,0x63, +0x2C,0xC6,0xD8,0x07,0xB0,0x62,0x4A,0xBC,0x32,0x16,0x8B,0x64,0x7A,0x64,0xB0,0x3F,0x2D,0xDB,0xCA, +0x82,0x9A,0x30,0x34,0x98,0x10,0x31,0x6B,0x78,0x51,0x1B,0x96,0x54,0x6D,0xDA,0xF4,0xC6,0xA7,0x10, +0x4C,0x67,0x6D,0xF4,0xE1,0x94,0x7C,0xCD,0x75,0x56,0xA2,0x0D,0x52,0x9B,0xB7,0x26,0x16,0x54,0x18, +0x6C,0x64,0x18,0x60,0x34,0xA9,0xEA,0xC3,0x23,0x57,0x63,0xB5,0xE6,0x30,0x0B,0xC8,0x0E,0x66,0x41, +0xFF,0xC4,0xEA,0x7C,0x10,0xAB,0x24,0xC3,0xE6,0x6F,0x0A,0x1D,0xC5,0x14,0x4A,0x83,0x73,0xFB,0xF8, +0x3A,0x02,0xD0,0x0B,0x24,0x3A,0xD9,0x8E,0xF6,0xC2,0x3F,0x6A,0x23,0x75,0x6C,0x94,0xBC,0xE7,0xE8, +0xB1,0x8E,0x23,0xDE,0x07,0xF4,0x8C,0x5C,0x21,0xD9,0x55,0x8D,0xD7,0xDF,0x55,0xB4,0x6C,0x03,0x2D, +0xFE,0x5B,0x8A,0xDB,0x71,0x53,0x93,0x70,0x6C,0xAC,0x8D,0xD0,0x74,0xCB,0xEF,0xCF,0x0D,0xE7,0x23, +0x8E,0x43,0xC7,0x0F,0x36,0xE6,0x5C,0x85,0xA7,0x2A,0xC0,0x2A,0xBA,0xA2,0x8F,0x85,0x30,0x4A,0x26, +0x06,0x58,0x22,0xFC,0xE3,0x92,0x2E,0xA7,0xC7,0x95,0x18,0xE7,0x4C,0x43,0x96,0x2F,0x78,0x4C,0x35, +0xBF,0xDF,0x8B,0x8D,0xE3,0x4C,0x1C,0x79,0xA7,0x4C,0xD1,0xA5,0x7E,0x96,0xEC,0x8D,0x01,0x22,0x6C, +0xE4,0x0D,0x79,0xA6,0x66,0x8F,0xB8,0x18,0x0D,0xFD,0xEC,0x18,0x07,0x36,0x9A,0x9E,0x60,0x74,0x0E, +0xDD,0x8B,0x44,0x0F,0x78,0xFF,0x51,0x78,0xE8,0x38,0x3C,0x1A,0xE0,0x1A,0x11,0x43,0x50,0x34,0x40, +0x34,0x40,0x44,0x34,0xC0,0xD7,0xC5,0xFF,0x01,0x00,0xCC,0x01,0x97,0x8B,0x00,0x58,0xE9,0x5F,0x00, +0x00,0x00,0x00,0x49,0x45,0x4E,0x44,0xAE,0x42,0x60,0x82}; +unsigned char LoadCircle[]= +{0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x30, +0x00,0x00,0x00,0x2E,0x08,0x06,0x00,0x00,0x00,0x6E,0xDE,0x9A,0x6C,0x00,0x00,0x00,0x09,0x70,0x48, +0x59,0x73,0x00,0x00,0x0B,0x13,0x00,0x00,0x0B,0x13,0x01,0x00,0x9A,0x9C,0x18,0x00,0x00,0x0A,0x4D, +0x69,0x43,0x43,0x50,0x50,0x68,0x6F,0x74,0x6F,0x73,0x68,0x6F,0x70,0x20,0x49,0x43,0x43,0x20,0x70, +0x72,0x6F,0x66,0x69,0x6C,0x65,0x00,0x00,0x78,0xDA,0x9D,0x53,0x77,0x58,0x93,0xF7,0x16,0x3E,0xDF, +0xF7,0x65,0x0F,0x56,0x42,0xD8,0xF0,0xB1,0x97,0x6C,0x81,0x00,0x22,0x23,0xAC,0x08,0xC8,0x10,0x59, +0xA2,0x10,0x92,0x00,0x61,0x84,0x10,0x12,0x40,0xC5,0x85,0x88,0x0A,0x56,0x14,0x15,0x11,0x9C,0x48, +0x55,0xC4,0x82,0xD5,0x0A,0x48,0x9D,0x88,0xE2,0xA0,0x28,0xB8,0x67,0x41,0x8A,0x88,0x5A,0x8B,0x55, +0x5C,0x38,0xEE,0x1F,0xDC,0xA7,0xB5,0x7D,0x7A,0xEF,0xED,0xED,0xFB,0xD7,0xFB,0xBC,0xE7,0x9C,0xE7, +0xFC,0xCE,0x79,0xCF,0x0F,0x80,0x11,0x12,0x26,0x91,0xE6,0xA2,0x6A,0x00,0x39,0x52,0x85,0x3C,0x3A, +0xD8,0x1F,0x8F,0x4F,0x48,0xC4,0xC9,0xBD,0x80,0x02,0x15,0x48,0xE0,0x04,0x20,0x10,0xE6,0xCB,0xC2, +0x67,0x05,0xC5,0x00,0x00,0xF0,0x03,0x79,0x78,0x7E,0x74,0xB0,0x3F,0xFC,0x01,0xAF,0x6F,0x00,0x02, +0x00,0x70,0xD5,0x2E,0x24,0x12,0xC7,0xE1,0xFF,0x83,0xBA,0x50,0x26,0x57,0x00,0x20,0x91,0x00,0xE0, +0x22,0x12,0xE7,0x0B,0x01,0x90,0x52,0x00,0xC8,0x2E,0x54,0xC8,0x14,0x00,0xC8,0x18,0x00,0xB0,0x53, +0xB3,0x64,0x0A,0x00,0x94,0x00,0x00,0x6C,0x79,0x7C,0x42,0x22,0x00,0xAA,0x0D,0x00,0xEC,0xF4,0x49, +0x3E,0x05,0x00,0xD8,0xA9,0x93,0xDC,0x17,0x00,0xD8,0xA2,0x1C,0xA9,0x08,0x00,0x8D,0x01,0x00,0x99, +0x28,0x47,0x24,0x02,0x40,0xBB,0x00,0x60,0x55,0x81,0x52,0x2C,0x02,0xC0,0xC2,0x00,0xA0,0xAC,0x40, +0x22,0x2E,0x04,0xC0,0xAE,0x01,0x80,0x59,0xB6,0x32,0x47,0x02,0x80,0xBD,0x05,0x00,0x76,0x8E,0x58, +0x90,0x0F,0x40,0x60,0x00,0x80,0x99,0x42,0x2C,0xCC,0x00,0x20,0x38,0x02,0x00,0x43,0x1E,0x13,0xCD, +0x03,0x20,0x4C,0x03,0xA0,0x30,0xD2,0xBF,0xE0,0xA9,0x5F,0x70,0x85,0xB8,0x48,0x01,0x00,0xC0,0xCB, +0x95,0xCD,0x97,0x4B,0xD2,0x33,0x14,0xB8,0x95,0xD0,0x1A,0x77,0xF2,0xF0,0xE0,0xE2,0x21,0xE2,0xC2, +0x6C,0xB1,0x42,0x61,0x17,0x29,0x10,0x66,0x09,0xE4,0x22,0x9C,0x97,0x9B,0x23,0x13,0x48,0xE7,0x03, +0x4C,0xCE,0x0C,0x00,0x00,0x1A,0xF9,0xD1,0xC1,0xFE,0x38,0x3F,0x90,0xE7,0xE6,0xE4,0xE1,0xE6,0x66, +0xE7,0x6C,0xEF,0xF4,0xC5,0xA2,0xFE,0x6B,0xF0,0x6F,0x22,0x3E,0x21,0xF1,0xDF,0xFE,0xBC,0x8C,0x02, +0x04,0x00,0x10,0x4E,0xCF,0xEF,0xDA,0x5F,0xE5,0xE5,0xD6,0x03,0x70,0xC7,0x01,0xB0,0x75,0xBF,0x6B, +0xA9,0x5B,0x00,0xDA,0x56,0x00,0x68,0xDF,0xF9,0x5D,0x33,0xDB,0x09,0xA0,0x5A,0x0A,0xD0,0x7A,0xF9, +0x8B,0x79,0x38,0xFC,0x40,0x1E,0x9E,0xA1,0x50,0xC8,0x3C,0x1D,0x1C,0x0A,0x0B,0x0B,0xED,0x25,0x62, +0xA1,0xBD,0x30,0xE3,0x8B,0x3E,0xFF,0x33,0xE1,0x6F,0xE0,0x8B,0x7E,0xF6,0xFC,0x40,0x1E,0xFE,0xDB, +0x7A,0xF0,0x00,0x71,0x9A,0x40,0x99,0xAD,0xC0,0xA3,0x83,0xFD,0x71,0x61,0x6E,0x76,0xAE,0x52,0x8E, +0xE7,0xCB,0x04,0x42,0x31,0x6E,0xF7,0xE7,0x23,0xFE,0xC7,0x85,0x7F,0xFD,0x8E,0x29,0xD1,0xE2,0x34, +0xB1,0x5C,0x2C,0x15,0x8A,0xF1,0x58,0x89,0xB8,0x50,0x22,0x4D,0xC7,0x79,0xB9,0x52,0x91,0x44,0x21, +0xC9,0x95,0xE2,0x12,0xE9,0x7F,0x32,0xF1,0x1F,0x96,0xFD,0x09,0x93,0x77,0x0D,0x00,0xAC,0x86,0x4F, +0xC0,0x4E,0xB6,0x07,0xB5,0xCB,0x6C,0xC0,0x7E,0xEE,0x01,0x02,0x8B,0x0E,0x58,0xD2,0x76,0x00,0x40, +0x7E,0xF3,0x2D,0x8C,0x1A,0x0B,0x91,0x00,0x10,0x67,0x34,0x32,0x79,0xF7,0x00,0x00,0x93,0xBF,0xF9, +0x8F,0x40,0x2B,0x01,0x00,0xCD,0x97,0xA4,0xE3,0x00,0x00,0xBC,0xE8,0x18,0x5C,0xA8,0x94,0x17,0x4C, +0xC6,0x08,0x00,0x00,0x44,0xA0,0x81,0x2A,0xB0,0x41,0x07,0x0C,0xC1,0x14,0xAC,0xC0,0x0E,0x9C,0xC1, +0x1D,0xBC,0xC0,0x17,0x02,0x61,0x06,0x44,0x40,0x0C,0x24,0xC0,0x3C,0x10,0x42,0x06,0xE4,0x80,0x1C, +0x0A,0xA1,0x18,0x96,0x41,0x19,0x54,0xC0,0x3A,0xD8,0x04,0xB5,0xB0,0x03,0x1A,0xA0,0x11,0x9A,0xE1, +0x10,0xB4,0xC1,0x31,0x38,0x0D,0xE7,0xE0,0x12,0x5C,0x81,0xEB,0x70,0x17,0x06,0x60,0x18,0x9E,0xC2, +0x18,0xBC,0x86,0x09,0x04,0x41,0xC8,0x08,0x13,0x61,0x21,0x3A,0x88,0x11,0x62,0x8E,0xD8,0x22,0xCE, +0x08,0x17,0x99,0x8E,0x04,0x22,0x61,0x48,0x34,0x92,0x80,0xA4,0x20,0xE9,0x88,0x14,0x51,0x22,0xC5, +0xC8,0x72,0xA4,0x02,0xA9,0x42,0x6A,0x91,0x5D,0x48,0x23,0xF2,0x2D,0x72,0x14,0x39,0x8D,0x5C,0x40, +0xFA,0x90,0xDB,0xC8,0x20,0x32,0x8A,0xFC,0x8A,0xBC,0x47,0x31,0x94,0x81,0xB2,0x51,0x03,0xD4,0x02, +0x75,0x40,0xB9,0xA8,0x1F,0x1A,0x8A,0xC6,0xA0,0x73,0xD1,0x74,0x34,0x0F,0x5D,0x80,0x96,0xA2,0x6B, +0xD1,0x1A,0xB4,0x1E,0x3D,0x80,0xB6,0xA2,0xA7,0xD1,0x4B,0xE8,0x75,0x74,0x00,0x7D,0x8A,0x8E,0x63, +0x80,0xD1,0x31,0x0E,0x66,0x8C,0xD9,0x61,0x5C,0x8C,0x87,0x45,0x60,0x89,0x58,0x1A,0x26,0xC7,0x16, +0x63,0xE5,0x58,0x35,0x56,0x8F,0x35,0x63,0x1D,0x58,0x37,0x76,0x15,0x1B,0xC0,0x9E,0x61,0xEF,0x08, +0x24,0x02,0x8B,0x80,0x13,0xEC,0x08,0x5E,0x84,0x10,0xC2,0x6C,0x82,0x90,0x90,0x47,0x58,0x4C,0x58, +0x43,0xA8,0x25,0xEC,0x23,0xB4,0x12,0xBA,0x08,0x57,0x09,0x83,0x84,0x31,0xC2,0x27,0x22,0x93,0xA8, +0x4F,0xB4,0x25,0x7A,0x12,0xF9,0xC4,0x78,0x62,0x3A,0xB1,0x90,0x58,0x46,0xAC,0x26,0xEE,0x21,0x1E, +0x21,0x9E,0x25,0x5E,0x27,0x0E,0x13,0x5F,0x93,0x48,0x24,0x0E,0xC9,0x92,0xE4,0x4E,0x0A,0x21,0x25, +0x90,0x32,0x49,0x0B,0x49,0x6B,0x48,0xDB,0x48,0x2D,0xA4,0x53,0xA4,0x3E,0xD2,0x10,0x69,0x9C,0x4C, +0x26,0xEB,0x90,0x6D,0xC9,0xDE,0xE4,0x08,0xB2,0x80,0xAC,0x20,0x97,0x91,0xB7,0x90,0x0F,0x90,0x4F, +0x92,0xFB,0xC9,0xC3,0xE4,0xB7,0x14,0x3A,0xC5,0x88,0xE2,0x4C,0x09,0xA2,0x24,0x52,0xA4,0x94,0x12, +0x4A,0x35,0x65,0x3F,0xE5,0x04,0xA5,0x9F,0x32,0x42,0x99,0xA0,0xAA,0x51,0xCD,0xA9,0x9E,0xD4,0x08, +0xAA,0x88,0x3A,0x9F,0x5A,0x49,0x6D,0xA0,0x76,0x50,0x2F,0x53,0x87,0xA9,0x13,0x34,0x75,0x9A,0x25, +0xCD,0x9B,0x16,0x43,0xCB,0xA4,0x2D,0xA3,0xD5,0xD0,0x9A,0x69,0x67,0x69,0xF7,0x68,0x2F,0xE9,0x74, +0xBA,0x09,0xDD,0x83,0x1E,0x45,0x97,0xD0,0x97,0xD2,0x6B,0xE8,0x07,0xE9,0xE7,0xE9,0x83,0xF4,0x77, +0x0C,0x0D,0x86,0x0D,0x83,0xC7,0x48,0x62,0x28,0x19,0x6B,0x19,0x7B,0x19,0xA7,0x18,0xB7,0x19,0x2F, +0x99,0x4C,0xA6,0x05,0xD3,0x97,0x99,0xC8,0x54,0x30,0xD7,0x32,0x1B,0x99,0x67,0x98,0x0F,0x98,0x6F, +0x55,0x58,0x2A,0xF6,0x2A,0x7C,0x15,0x91,0xCA,0x12,0x95,0x3A,0x95,0x56,0x95,0x7E,0x95,0xE7,0xAA, +0x54,0x55,0x73,0x55,0x3F,0xD5,0x79,0xAA,0x0B,0x54,0xAB,0x55,0x0F,0xAB,0x5E,0x56,0x7D,0xA6,0x46, +0x55,0xB3,0x50,0xE3,0xA9,0x09,0xD4,0x16,0xAB,0xD5,0xA9,0x1D,0x55,0xBB,0xA9,0x36,0xAE,0xCE,0x52, +0x77,0x52,0x8F,0x50,0xCF,0x51,0x5F,0xA3,0xBE,0x5F,0xFD,0x82,0xFA,0x63,0x0D,0xB2,0x86,0x85,0x46, +0xA0,0x86,0x48,0xA3,0x54,0x63,0xB7,0xC6,0x19,0x8D,0x21,0x16,0xC6,0x32,0x65,0xF1,0x58,0x42,0xD6, +0x72,0x56,0x03,0xEB,0x2C,0x6B,0x98,0x4D,0x62,0x5B,0xB2,0xF9,0xEC,0x4C,0x76,0x05,0xFB,0x1B,0x76, +0x2F,0x7B,0x4C,0x53,0x43,0x73,0xAA,0x66,0xAC,0x66,0x91,0x66,0x9D,0xE6,0x71,0xCD,0x01,0x0E,0xC6, +0xB1,0xE0,0xF0,0x39,0xD9,0x9C,0x4A,0xCE,0x21,0xCE,0x0D,0xCE,0x7B,0x2D,0x03,0x2D,0x3F,0x2D,0xB1, +0xD6,0x6A,0xAD,0x66,0xAD,0x7E,0xAD,0x37,0xDA,0x7A,0xDA,0xBE,0xDA,0x62,0xED,0x72,0xED,0x16,0xED, +0xEB,0xDA,0xEF,0x75,0x70,0x9D,0x40,0x9D,0x2C,0x9D,0xF5,0x3A,0x6D,0x3A,0xF7,0x75,0x09,0xBA,0x36, +0xBA,0x51,0xBA,0x85,0xBA,0xDB,0x75,0xCF,0xEA,0x3E,0xD3,0x63,0xEB,0x79,0xE9,0x09,0xF5,0xCA,0xF5, +0x0E,0xE9,0xDD,0xD1,0x47,0xF5,0x6D,0xF4,0xA3,0xF5,0x17,0xEA,0xEF,0xD6,0xEF,0xD1,0x1F,0x37,0x30, +0x34,0x08,0x36,0x90,0x19,0x6C,0x31,0x38,0x63,0xF0,0xCC,0x90,0x63,0xE8,0x6B,0x98,0x69,0xB8,0xD1, +0xF0,0x84,0xE1,0xA8,0x11,0xCB,0x68,0xBA,0x91,0xC4,0x68,0xA3,0xD1,0x49,0xA3,0x27,0xB8,0x26,0xEE, +0x87,0x67,0xE3,0x35,0x78,0x17,0x3E,0x66,0xAC,0x6F,0x1C,0x62,0xAC,0x34,0xDE,0x65,0xDC,0x6B,0x3C, +0x61,0x62,0x69,0x32,0xDB,0xA4,0xC4,0xA4,0xC5,0xE4,0xBE,0x29,0xCD,0x94,0x6B,0x9A,0x66,0xBA,0xD1, +0xB4,0xD3,0x74,0xCC,0xCC,0xC8,0x2C,0xDC,0xAC,0xD8,0xAC,0xC9,0xEC,0x8E,0x39,0xD5,0x9C,0x6B,0x9E, +0x61,0xBE,0xD9,0xBC,0xDB,0xFC,0x8D,0x85,0xA5,0x45,0x9C,0xC5,0x4A,0x8B,0x36,0x8B,0xC7,0x96,0xDA, +0x96,0x7C,0xCB,0x05,0x96,0x4D,0x96,0xF7,0xAC,0x98,0x56,0x3E,0x56,0x79,0x56,0xF5,0x56,0xD7,0xAC, +0x49,0xD6,0x5C,0xEB,0x2C,0xEB,0x6D,0xD6,0x57,0x6C,0x50,0x1B,0x57,0x9B,0x0C,0x9B,0x3A,0x9B,0xCB, +0xB6,0xA8,0xAD,0x9B,0xAD,0xC4,0x76,0x9B,0x6D,0xDF,0x14,0xE2,0x14,0x8F,0x29,0xD2,0x29,0xF5,0x53, +0x6E,0xDA,0x31,0xEC,0xFC,0xEC,0x0A,0xEC,0x9A,0xEC,0x06,0xED,0x39,0xF6,0x61,0xF6,0x25,0xF6,0x6D, +0xF6,0xCF,0x1D,0xCC,0x1C,0x12,0x1D,0xD6,0x3B,0x74,0x3B,0x7C,0x72,0x74,0x75,0xCC,0x76,0x6C,0x70, +0xBC,0xEB,0xA4,0xE1,0x34,0xC3,0xA9,0xC4,0xA9,0xC3,0xE9,0x57,0x67,0x1B,0x67,0xA1,0x73,0x9D,0xF3, +0x35,0x17,0xA6,0x4B,0x90,0xCB,0x12,0x97,0x76,0x97,0x17,0x53,0x6D,0xA7,0x8A,0xA7,0x6E,0x9F,0x7A, +0xCB,0x95,0xE5,0x1A,0xEE,0xBA,0xD2,0xB5,0xD3,0xF5,0xA3,0x9B,0xBB,0x9B,0xDC,0xAD,0xD9,0x6D,0xD4, +0xDD,0xCC,0x3D,0xC5,0x7D,0xAB,0xFB,0x4D,0x2E,0x9B,0x1B,0xC9,0x5D,0xC3,0x3D,0xEF,0x41,0xF4,0xF0, +0xF7,0x58,0xE2,0x71,0xCC,0xE3,0x9D,0xA7,0x9B,0xA7,0xC2,0xF3,0x90,0xE7,0x2F,0x5E,0x76,0x5E,0x59, +0x5E,0xFB,0xBD,0x1E,0x4F,0xB3,0x9C,0x26,0x9E,0xD6,0x30,0x6D,0xC8,0xDB,0xC4,0x5B,0xE0,0xBD,0xCB, +0x7B,0x60,0x3A,0x3E,0x3D,0x65,0xFA,0xCE,0xE9,0x03,0x3E,0xC6,0x3E,0x02,0x9F,0x7A,0x9F,0x87,0xBE, +0xA6,0xBE,0x22,0xDF,0x3D,0xBE,0x23,0x7E,0xD6,0x7E,0x99,0x7E,0x07,0xFC,0x9E,0xFB,0x3B,0xFA,0xCB, +0xFD,0x8F,0xF8,0xBF,0xE1,0x79,0xF2,0x16,0xF1,0x4E,0x05,0x60,0x01,0xC1,0x01,0xE5,0x01,0xBD,0x81, +0x1A,0x81,0xB3,0x03,0x6B,0x03,0x1F,0x04,0x99,0x04,0xA5,0x07,0x35,0x05,0x8D,0x05,0xBB,0x06,0x2F, +0x0C,0x3E,0x15,0x42,0x0C,0x09,0x0D,0x59,0x1F,0x72,0x93,0x6F,0xC0,0x17,0xF2,0x1B,0xF9,0x63,0x33, +0xDC,0x67,0x2C,0x9A,0xD1,0x15,0xCA,0x08,0x9D,0x15,0x5A,0x1B,0xFA,0x30,0xCC,0x26,0x4C,0x1E,0xD6, +0x11,0x8E,0x86,0xCF,0x08,0xDF,0x10,0x7E,0x6F,0xA6,0xF9,0x4C,0xE9,0xCC,0xB6,0x08,0x88,0xE0,0x47, +0x6C,0x88,0xB8,0x1F,0x69,0x19,0x99,0x17,0xF9,0x7D,0x14,0x29,0x2A,0x32,0xAA,0x2E,0xEA,0x51,0xB4, +0x53,0x74,0x71,0x74,0xF7,0x2C,0xD6,0xAC,0xE4,0x59,0xFB,0x67,0xBD,0x8E,0xF1,0x8F,0xA9,0x8C,0xB9, +0x3B,0xDB,0x6A,0xB6,0x72,0x76,0x67,0xAC,0x6A,0x6C,0x52,0x6C,0x63,0xEC,0x9B,0xB8,0x80,0xB8,0xAA, +0xB8,0x81,0x78,0x87,0xF8,0x45,0xF1,0x97,0x12,0x74,0x13,0x24,0x09,0xED,0x89,0xE4,0xC4,0xD8,0xC4, +0x3D,0x89,0xE3,0x73,0x02,0xE7,0x6C,0x9A,0x33,0x9C,0xE4,0x9A,0x54,0x96,0x74,0x63,0xAE,0xE5,0xDC, +0xA2,0xB9,0x17,0xE6,0xE9,0xCE,0xCB,0x9E,0x77,0x3C,0x59,0x35,0x59,0x90,0x7C,0x38,0x85,0x98,0x12, +0x97,0xB2,0x3F,0xE5,0x83,0x20,0x42,0x50,0x2F,0x18,0x4F,0xE5,0xA7,0x6E,0x4D,0x1D,0x13,0xF2,0x84, +0x9B,0x85,0x4F,0x45,0xBE,0xA2,0x8D,0xA2,0x51,0xB1,0xB7,0xB8,0x4A,0x3C,0x92,0xE6,0x9D,0x56,0x95, +0xF6,0x38,0xDD,0x3B,0x7D,0x43,0xFA,0x68,0x86,0x4F,0x46,0x75,0xC6,0x33,0x09,0x4F,0x52,0x2B,0x79, +0x91,0x19,0x92,0xB9,0x23,0xF3,0x4D,0x56,0x44,0xD6,0xDE,0xAC,0xCF,0xD9,0x71,0xD9,0x2D,0x39,0x94, +0x9C,0x94,0x9C,0xA3,0x52,0x0D,0x69,0x96,0xB4,0x2B,0xD7,0x30,0xB7,0x28,0xB7,0x4F,0x66,0x2B,0x2B, +0x93,0x0D,0xE4,0x79,0xE6,0x6D,0xCA,0x1B,0x93,0x87,0xCA,0xF7,0xE4,0x23,0xF9,0x73,0xF3,0xDB,0x15, +0x6C,0x85,0x4C,0xD1,0xA3,0xB4,0x52,0xAE,0x50,0x0E,0x16,0x4C,0x2F,0xA8,0x2B,0x78,0x5B,0x18,0x5B, +0x78,0xB8,0x48,0xBD,0x48,0x5A,0xD4,0x33,0xDF,0x66,0xFE,0xEA,0xF9,0x23,0x0B,0x82,0x16,0x7C,0xBD, +0x90,0xB0,0x50,0xB8,0xB0,0xB3,0xD8,0xB8,0x78,0x59,0xF1,0xE0,0x22,0xBF,0x45,0xBB,0x16,0x23,0x8B, +0x53,0x17,0x77,0x2E,0x31,0x5D,0x52,0xBA,0x64,0x78,0x69,0xF0,0xD2,0x7D,0xCB,0x68,0xCB,0xB2,0x96, +0xFD,0x50,0xE2,0x58,0x52,0x55,0xF2,0x6A,0x79,0xDC,0xF2,0x8E,0x52,0x83,0xD2,0xA5,0xA5,0x43,0x2B, +0x82,0x57,0x34,0x95,0xA9,0x94,0xC9,0xCB,0x6E,0xAE,0xF4,0x5A,0xB9,0x63,0x15,0x61,0x95,0x64,0x55, +0xEF,0x6A,0x97,0xD5,0x5B,0x56,0x7F,0x2A,0x17,0x95,0x5F,0xAC,0x70,0xAC,0xA8,0xAE,0xF8,0xB0,0x46, +0xB8,0xE6,0xE2,0x57,0x4E,0x5F,0xD5,0x7C,0xF5,0x79,0x6D,0xDA,0xDA,0xDE,0x4A,0xB7,0xCA,0xED,0xEB, +0x48,0xEB,0xA4,0xEB,0x6E,0xAC,0xF7,0x59,0xBF,0xAF,0x4A,0xBD,0x6A,0x41,0xD5,0xD0,0x86,0xF0,0x0D, +0xAD,0x1B,0xF1,0x8D,0xE5,0x1B,0x5F,0x6D,0x4A,0xDE,0x74,0xA1,0x7A,0x6A,0xF5,0x8E,0xCD,0xB4,0xCD, +0xCA,0xCD,0x03,0x35,0x61,0x35,0xED,0x5B,0xCC,0xB6,0xAC,0xDB,0xF2,0xA1,0x36,0xA3,0xF6,0x7A,0x9D, +0x7F,0x5D,0xCB,0x56,0xFD,0xAD,0xAB,0xB7,0xBE,0xD9,0x26,0xDA,0xD6,0xBF,0xDD,0x77,0x7B,0xF3,0x0E, +0x83,0x1D,0x15,0x3B,0xDE,0xEF,0x94,0xEC,0xBC,0xB5,0x2B,0x78,0x57,0x6B,0xBD,0x45,0x7D,0xF5,0x6E, +0xD2,0xEE,0x82,0xDD,0x8F,0x1A,0x62,0x1B,0xBA,0xBF,0xE6,0x7E,0xDD,0xB8,0x47,0x77,0x4F,0xC5,0x9E, +0x8F,0x7B,0xA5,0x7B,0x07,0xF6,0x45,0xEF,0xEB,0x6A,0x74,0x6F,0x6C,0xDC,0xAF,0xBF,0xBF,0xB2,0x09, +0x6D,0x52,0x36,0x8D,0x1E,0x48,0x3A,0x70,0xE5,0x9B,0x80,0x6F,0xDA,0x9B,0xED,0x9A,0x77,0xB5,0x70, +0x5A,0x2A,0x0E,0xC2,0x41,0xE5,0xC1,0x27,0xDF,0xA6,0x7C,0x7B,0xE3,0x50,0xE8,0xA1,0xCE,0xC3,0xDC, +0xC3,0xCD,0xDF,0x99,0x7F,0xB7,0xF5,0x08,0xEB,0x48,0x79,0x2B,0xD2,0x3A,0xBF,0x75,0xAC,0x2D,0xA3, +0x6D,0xA0,0x3D,0xA1,0xBD,0xEF,0xE8,0x8C,0xA3,0x9D,0x1D,0x5E,0x1D,0x47,0xBE,0xB7,0xFF,0x7E,0xEF, +0x31,0xE3,0x63,0x75,0xC7,0x35,0x8F,0x57,0x9E,0xA0,0x9D,0x28,0x3D,0xF1,0xF9,0xE4,0x82,0x93,0xE3, +0xA7,0x64,0xA7,0x9E,0x9D,0x4E,0x3F,0x3D,0xD4,0x99,0xDC,0x79,0xF7,0x4C,0xFC,0x99,0x6B,0x5D,0x51, +0x5D,0xBD,0x67,0x43,0xCF,0x9E,0x3F,0x17,0x74,0xEE,0x4C,0xB7,0x5F,0xF7,0xC9,0xF3,0xDE,0xE7,0x8F, +0x5D,0xF0,0xBC,0x70,0xF4,0x22,0xF7,0x62,0xDB,0x25,0xB7,0x4B,0xAD,0x3D,0xAE,0x3D,0x47,0x7E,0x70, +0xFD,0xE1,0x48,0xAF,0x5B,0x6F,0xEB,0x65,0xF7,0xCB,0xED,0x57,0x3C,0xAE,0x74,0xF4,0x4D,0xEB,0x3B, +0xD1,0xEF,0xD3,0x7F,0xFA,0x6A,0xC0,0xD5,0x73,0xD7,0xF8,0xD7,0x2E,0x5D,0x9F,0x79,0xBD,0xEF,0xC6, +0xEC,0x1B,0xB7,0x6E,0x26,0xDD,0x1C,0xB8,0x25,0xBA,0xF5,0xF8,0x76,0xF6,0xED,0x17,0x77,0x0A,0xEE, +0x4C,0xDC,0x5D,0x7A,0x8F,0x78,0xAF,0xFC,0xBE,0xDA,0xFD,0xEA,0x07,0xFA,0x0F,0xEA,0x7F,0xB4,0xFE, +0xB1,0x65,0xC0,0x6D,0xE0,0xF8,0x60,0xC0,0x60,0xCF,0xC3,0x59,0x0F,0xEF,0x0E,0x09,0x87,0x9E,0xFE, +0x94,0xFF,0xD3,0x87,0xE1,0xD2,0x47,0xCC,0x47,0xD5,0x23,0x46,0x23,0x8D,0x8F,0x9D,0x1F,0x1F,0x1B, +0x0D,0x1A,0xBD,0xF2,0x64,0xCE,0x93,0xE1,0xA7,0xB2,0xA7,0x13,0xCF,0xCA,0x7E,0x56,0xFF,0x79,0xEB, +0x73,0xAB,0xE7,0xDF,0xFD,0xE2,0xFB,0x4B,0xCF,0x58,0xFC,0xD8,0xF0,0x0B,0xF9,0x8B,0xCF,0xBF,0xAE, +0x79,0xA9,0xF3,0x72,0xEF,0xAB,0xA9,0xAF,0x3A,0xC7,0x23,0xC7,0x1F,0xBC,0xCE,0x79,0x3D,0xF1,0xA6, +0xFC,0xAD,0xCE,0xDB,0x7D,0xEF,0xB8,0xEF,0xBA,0xDF,0xC7,0xBD,0x1F,0x99,0x28,0xFC,0x40,0xFE,0x50, +0xF3,0xD1,0xFA,0x63,0xC7,0xA7,0xD0,0x4F,0xF7,0x3E,0xE7,0x7C,0xFE,0xFC,0x2F,0xF7,0x84,0xF3,0xFB, +0x25,0xD2,0x9F,0x33,0x00,0x00,0x00,0x20,0x63,0x48,0x52,0x4D,0x00,0x00,0x7A,0x25,0x00,0x00,0x80, +0x83,0x00,0x00,0xF9,0xFF,0x00,0x00,0x80,0xE9,0x00,0x00,0x75,0x30,0x00,0x00,0xEA,0x60,0x00,0x00, +0x3A,0x98,0x00,0x00,0x17,0x6F,0x92,0x5F,0xC5,0x46,0x00,0x00,0x03,0x6A,0x49,0x44,0x41,0x54,0x78, +0xDA,0xD4,0x99,0xDB,0x8B,0x4D,0x51,0x1C,0xC7,0x3F,0x73,0x30,0x33,0xB9,0x1B,0x91,0x26,0xE4,0x96, +0x41,0x23,0x64,0xBC,0x10,0x21,0x22,0x49,0xE4,0xC1,0x03,0x25,0xA6,0x49,0xE3,0x6F,0xF0,0xE4,0x4D, +0xA3,0x88,0x72,0x8B,0x79,0x91,0x86,0x22,0x21,0x91,0x68,0x94,0x6B,0x6E,0x33,0xEE,0x23,0x14,0x66, +0x18,0x53,0x43,0x72,0x3B,0xE3,0xFA,0xF5,0x60,0x4D,0x9D,0x8E,0x73,0xF6,0x59,0x6B,0xED,0x7D,0xCE, +0x71,0xBE,0xB5,0xDA,0x9D,0xCE,0xDA,0xBF,0xB5,0xBE,0xEB,0xB7,0x7E,0xD7,0x5D,0x24,0x89,0x42,0x46, +0xCF,0x88,0xE4,0x14,0x03,0x53,0x81,0xF1,0x40,0x15,0x30,0x0E,0x18,0x06,0xF4,0x06,0x3E,0x03,0xED, +0xC0,0x33,0xE0,0x16,0xF0,0x04,0x68,0x02,0xF4,0x3F,0x10,0x98,0x02,0xD4,0x00,0xCB,0x80,0x11,0x0E, +0xEF,0x3D,0x07,0x4E,0x00,0x07,0x80,0x47,0xA1,0x76,0x20,0xC9,0x67,0xCC,0x94,0x74,0x51,0xD1,0xE0, +0xB4,0xA4,0xE9,0x9E,0xFB,0x70,0x26,0x50,0x26,0xE9,0xB0,0xB2,0x83,0x7A,0x49,0xFD,0x5D,0x09,0x14, +0x39,0x18,0xF1,0x2C,0xA3,0xF6,0xC1,0x59,0xB4,0xC9,0x37,0xC0,0x12,0xE0,0xAE,0xED,0x0B,0x31,0xCB, +0x79,0x6B,0x81,0xCB,0x59,0xDE,0x3C,0x40,0x39,0x70,0x07,0x58,0x1E,0xA5,0x0D,0x54,0x2B,0x3F,0x58, +0x15,0xC5,0x15,0x5A,0x09,0x1C,0xCD,0xA3,0x9B,0x5F,0x08,0x9C,0x0F,0x9A,0x10,0x44,0x60,0x0C,0x70, +0x0D,0x18,0x9A,0x47,0x02,0x6D,0xC6,0xF6,0x5E,0xF9,0xD8,0x40,0x7D,0x9E,0x37,0x0F,0x30,0x1C,0xD8, +0xE3,0xA3,0x81,0x1A,0x60,0x9F,0xC7,0x82,0x5D,0xE6,0x50,0x9A,0x4C,0x90,0xEA,0x6D,0x22,0xEE,0x67, +0xA0,0x1A,0x98,0x06,0xFC,0x06,0xFA,0x38,0xCA,0x5D,0x03,0x1C,0xB2,0x35,0xE2,0x52,0x49,0x4F,0x3D, +0x8C,0xEE,0x8A,0xA4,0x05,0x92,0x7A,0x49,0x2A,0x49,0x21,0xB7,0xD8,0x3C,0xE7,0x48,0x3A,0x22,0xE9, +0xAB,0x83,0xEC,0xBB,0x2E,0x81,0x6C,0xBD,0xE3,0xC6,0x5B,0x25,0xCD,0xF7,0x88,0xA2,0xF3,0x24,0x7D, +0x72,0x58,0x67,0xB5,0x2D,0x81,0x46,0x07,0xA1,0xED,0x92,0x26,0xF9,0xA6,0x01,0x46,0x1B,0x3F,0x2D, +0xD7,0x6A,0xB4,0x21,0x30,0x5A,0x52,0xDC,0x52,0x60,0xA7,0xA4,0x09,0x21,0x36,0xEF,0xAA,0xF1,0xB8, +0xA4,0x8A,0xE4,0xF7,0x63,0x49,0x6E,0x73,0x05,0x50,0x6A,0x61,0x54,0x1F,0x81,0xB9,0x40,0x4B,0x04, +0x9E,0xA6,0x1E,0x38,0x65,0x31,0xAF,0x14,0x58,0x14,0xE4,0x46,0x87,0x03,0x63,0x2D,0x17,0xDD,0x05, +0x3C,0x88,0xD0,0x5D,0xD6,0x59,0xCE,0x9B,0x1C,0x44,0x60,0x06,0x50,0x69,0x21,0xE4,0x3D,0xB0,0x3D, +0x62,0x7F,0x7F,0x09,0xB8,0x62,0x59,0x7F,0xA4,0x25,0x30,0xD1,0x5C,0xA3,0x4C,0xD8,0x0B,0x74,0x64, +0x21,0x68,0xD9,0x68,0xB4,0xC2,0x54,0x7A,0x29,0x09,0x94,0x03,0x43,0x32,0x08,0x88,0x03,0xFB,0xB3, +0x14,0x75,0x6D,0x34,0x50,0x02,0xF4,0x4D,0x47,0xA0,0x9F,0x99,0x10,0x84,0x5F,0xC0,0x97,0x2C,0x11, +0x68,0xB5,0x98,0xD3,0x03,0xE8,0x95,0x8E,0xC0,0x77,0x13,0xE6,0x03,0xB3,0x6F,0x43,0x22,0x1B,0xB0, +0xAD,0xAC,0x62,0xE9,0x7E,0xBC,0x05,0xDE,0x65,0x78,0xF9,0x37,0xF0,0xC3,0x63,0x73,0x03,0xCD,0x08, +0xC2,0x08,0x1F,0xA2,0x89,0x04,0x9E,0x05,0xA5,0xAD,0x21,0xD1,0x60,0x2A,0xAD,0xB2,0x0C,0x25,0x2B, +0x16,0x57,0xF8,0x5B,0x3A,0x02,0xD7,0x81,0x7B,0x19,0x04,0xF4,0x75,0x6C,0x9F,0x74,0x63,0x14,0x30, +0x1A,0x38,0x17,0x40,0x62,0xB2,0x25,0x81,0xAE,0x74,0x04,0xDE,0x98,0x91,0xC9,0x88,0x56,0x78,0x10, +0xF8,0x69,0x9E,0xD3,0x81,0x0B,0xC6,0x61,0x24,0x62,0xB6,0xA5,0x06,0xF4,0x8F,0xAD,0x24,0xE5,0x16, +0x55,0x16,0x39,0x49,0x9B,0xA4,0x41,0x8E,0xF9,0xCE,0xBD,0x24,0x19,0xF7,0x93,0x5A,0x28,0x27,0x2D, +0xF3,0xA1,0x17,0x92,0x06,0x04,0x25,0x73,0x3D,0x25,0x3D,0xB4,0x10,0xB4,0xC7,0x91,0x40,0x2A,0x99, +0xCD,0xE6,0xBF,0xE5,0x0E,0xD9,0xEF,0xA6,0xA0,0x64,0xAE,0x5B,0xD5,0x0D,0x16,0xAA,0xDC,0x00,0x6C, +0x74,0xB8,0x42,0xB1,0x34,0x69,0xC1,0x7D,0xC7,0xB4,0xE4,0xB6,0x4D,0x45,0x36,0x52,0xD2,0x07,0x8B, +0xD3,0x78,0x6B,0x3A,0x75,0x36,0x1A,0x78,0x1C,0x41,0x9B,0xE5,0x71,0x2A,0xD9,0xA9,0x4E,0xE6,0x15, +0xB0,0xDB,0xE2,0x34,0x0E,0x9A,0xC4,0x2E,0x57,0x68,0x70,0xE9,0x4A,0x6C,0x01,0x5E,0x67,0x10,0x78, +0x35,0x87,0x9B,0xEF,0x30,0x29,0xBC,0x35,0x81,0x0F,0x40,0x6D,0x80,0xC0,0x9D,0xC0,0xF1,0x1C,0x12, +0xD8,0x01,0x74,0xFA,0xB4,0x16,0x37,0xA7,0xB8,0x8B,0x5B,0x3D,0xCA,0xC6,0x96,0x10,0x77,0xBF,0x2E, +0x6C,0x7B,0xFD,0x40,0x42,0xE1,0xBD,0xCD,0xB3,0xEE,0xF5,0x25,0xD0,0x6C,0x5C,0x7B,0x5A,0xD9,0x36, +0xDD,0xE9,0x5A,0xD3,0xA1,0x9B,0x0D,0x6C,0xCA,0x71,0x67,0xEE,0x58,0x42,0x14,0x77,0xEE,0x8D,0x46, +0x89,0x16,0x53,0x4D,0xB9,0xE2,0x97,0x69,0xF0,0x36,0x86,0xFD,0x3E,0x90,0x2F,0xF4,0x00,0xCE,0x02, +0x8B,0x0B,0x95,0x00,0xFC,0xFD,0x02,0x7A,0x06,0x58,0x5A,0xA8,0x04,0xBA,0x71,0x0A,0x58,0x97,0x2F, +0x02,0x37,0x12,0x2A,0xBA,0x30,0xA8,0x74,0x8D,0x03,0x51,0x8D,0x98,0xE9,0x4E,0xD7,0x48,0x7A,0xE9, +0xE9,0x52,0x8F,0x85,0xFD,0x4A,0x19,0x15,0xCA,0x4D,0xF5,0x15,0xB7,0x98,0x5B,0x64,0x6E,0x49,0x31, +0x70,0x33,0x55,0xEE,0x95,0x0F,0x02,0x91,0x22,0x46,0x81,0xE3,0xCF,0x00,0xD2,0xF0,0xF4,0x75,0x05, +0xC1,0xEC,0xA0,0x00,0x00,0x00,0x00,0x49,0x45,0x4E,0x44,0xAE,0x42,0x60,0x82}; diff --git a/main.cpp b/archive/blr2/src/main.cpp index 3fa99b9..3c1bec1 100644 --- a/main.cpp +++ b/archive/blr2/src/main.cpp @@ -1236,8 +1236,9 @@ int main(int argc,char *argv[]) HelpTex=hge->Texture_Load("./Resources/help.png"); sky.Init(); snd=hge->Effect_Load("./Resources/tap.ogg"); - menuin=hge->Effect_Load("./Resources/menuin.ogg"); - menuout=hge->Effect_Load("./Resources/menuout.ogg"); + menumov=hge->Effect_Load("./Resources/tap.ogg"); + menuin=hge->Effect_Load("./Resources/tap.ogg"); + menuout=hge->Effect_Load("./Resources/tap.ogg"); if(!quad.tex||!SprSheet||!TexTitle||!TexCredits) Error("Error Loading Resources!",true); titlespr=new hgeSprite(TexTitle,0,0,640,320); @@ -1331,7 +1332,7 @@ int main(int argc,char *argv[]) if(i<grey)delete towerspr[i]; } hge->Effect_Free(snd);hge->Effect_Free(menuin); - hge->Effect_Free(menuout); + hge->Effect_Free(menuout);hge->Effect_Free(menumov); hge->Texture_Free(SprSheet);hge->Texture_Free(TLeaf); hge->Texture_Free(quad.tex);hge->Texture_Free(TSflake); hge->Texture_Free(TexTitle);hge->Texture_Free(TexCredits); diff --git a/menus.h b/archive/blr2/src/menus.h index 4dcd7c6..30d8b0a 100644 --- a/menus.h +++ b/archive/blr2/src/menus.h @@ -7,9 +7,9 @@ void TriggerSound(int type) { switch(type) { - case 0:hge->Effect_PlayEx(snd,sfxvol/15.0,0,1,false);break; - //case 1:hge->Effect_Play(menuin);break; - //case 2:hge->Effect_Play(menuout);break; + case 0:hge->Effect_PlayEx(menumov,sfxvol/15.0,0,1,false);break; + case 1:hge->Effect_Play(menuin);break; + case 2:hge->Effect_Play(menuout);break; } } void ConfigureQuad(hgeQuad *quad,double x,double y,double w,double h) @@ -391,7 +391,7 @@ public: { if(selected==7&&!(hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_HIT||hge->Input_GetKeyStateEx(HGEK_ENTER)==HGEKST_HIT)) return -1; - TriggerSound(selected==7?2:1); + TriggerSound(selected==7?2:0); if(onSwitch||onSwitchi)return -1; if(selected<=5) { @@ -426,7 +426,7 @@ public: if(hge->Input_GetKeyStateEx(HGEK_LEFT)==HGEKST_HIT) { if(onSwitch||onSwitchi)return -1; - TriggerSound(1); + TriggerSound(0); if(selected<=5){onSwitchi=true;swoffset=0;} if(selected==0)tfs=!tfs; if(selected==1) diff --git a/music.h b/archive/blr2/src/music.h index ef09c41..ef09c41 100644 --- a/music.h +++ b/archive/blr2/src/music.h diff --git a/scorec.h b/archive/blr2/src/scorec.h index abca9c6..abca9c6 100644 --- a/scorec.h +++ b/archive/blr2/src/scorec.h diff --git a/scoresystem.h b/archive/blr2/src/scoresystem.h index c8efc79..c8efc79 100644 --- a/scoresystem.h +++ b/archive/blr2/src/scoresystem.h diff --git a/towernbullet.h b/archive/blr2/src/towernbullet.h index 8acf516..8acf516 100644 --- a/towernbullet.h +++ b/archive/blr2/src/towernbullet.h diff --git a/hge/CxImage/license.txt b/archive/hge/CxImage/license.txt index 1ea1f04..1ea1f04 100644 --- a/hge/CxImage/license.txt +++ b/archive/hge/CxImage/license.txt diff --git a/hge/CxImage/stdint.h b/archive/hge/CxImage/stdint.h index 2e93323..2e93323 100644 --- a/hge/CxImage/stdint.h +++ b/archive/hge/CxImage/stdint.h diff --git a/hge/CxImage/tif_xfile.cpp b/archive/hge/CxImage/tif_xfile.cpp index 4d1d79a..4d1d79a 100644 --- a/hge/CxImage/tif_xfile.cpp +++ b/archive/hge/CxImage/tif_xfile.cpp diff --git a/hge/CxImage/xfile.h b/archive/hge/CxImage/xfile.h index 6de281c..6de281c 100644 --- a/hge/CxImage/xfile.h +++ b/archive/hge/CxImage/xfile.h diff --git a/hge/CxImage/ximabmp.cpp b/archive/hge/CxImage/ximabmp.cpp index c173c7d..c173c7d 100644 --- a/hge/CxImage/ximabmp.cpp +++ b/archive/hge/CxImage/ximabmp.cpp diff --git a/hge/CxImage/ximabmp.h b/archive/hge/CxImage/ximabmp.h index c828de5..c828de5 100644 --- a/hge/CxImage/ximabmp.h +++ b/archive/hge/CxImage/ximabmp.h diff --git a/hge/CxImage/ximacfg.h b/archive/hge/CxImage/ximacfg.h index 875f517..875f517 100644 --- a/hge/CxImage/ximacfg.h +++ b/archive/hge/CxImage/ximacfg.h diff --git a/hge/CxImage/ximadef.h b/archive/hge/CxImage/ximadef.h index 372ec13..372ec13 100644 --- a/hge/CxImage/ximadef.h +++ b/archive/hge/CxImage/ximadef.h diff --git a/hge/CxImage/ximadsp.cpp b/archive/hge/CxImage/ximadsp.cpp index df73136..df73136 100644 --- a/hge/CxImage/ximadsp.cpp +++ b/archive/hge/CxImage/ximadsp.cpp diff --git a/hge/CxImage/ximaenc.cpp b/archive/hge/CxImage/ximaenc.cpp index 6064e49..6064e49 100644 --- a/hge/CxImage/ximaenc.cpp +++ b/archive/hge/CxImage/ximaenc.cpp diff --git a/hge/CxImage/ximaexif.cpp b/archive/hge/CxImage/ximaexif.cpp index f880d72..f880d72 100644 --- a/hge/CxImage/ximaexif.cpp +++ b/archive/hge/CxImage/ximaexif.cpp diff --git a/hge/CxImage/ximage.cpp b/archive/hge/CxImage/ximage.cpp index 904b807..904b807 100644 --- a/hge/CxImage/ximage.cpp +++ b/archive/hge/CxImage/ximage.cpp diff --git a/hge/CxImage/ximage.h b/archive/hge/CxImage/ximage.h index 4eed84e..4eed84e 100644 --- a/hge/CxImage/ximage.h +++ b/archive/hge/CxImage/ximage.h diff --git a/hge/CxImage/ximagif.cpp b/archive/hge/CxImage/ximagif.cpp index 8c94b9e..8c94b9e 100644 --- a/hge/CxImage/ximagif.cpp +++ b/archive/hge/CxImage/ximagif.cpp diff --git a/hge/CxImage/ximagif.h b/archive/hge/CxImage/ximagif.h index 4eec35e..4eec35e 100644 --- a/hge/CxImage/ximagif.h +++ b/archive/hge/CxImage/ximagif.h diff --git a/hge/CxImage/ximahist.cpp b/archive/hge/CxImage/ximahist.cpp index 830337f..830337f 100644 --- a/hge/CxImage/ximahist.cpp +++ b/archive/hge/CxImage/ximahist.cpp diff --git a/hge/CxImage/ximaico.cpp b/archive/hge/CxImage/ximaico.cpp index a808697..a808697 100644 --- a/hge/CxImage/ximaico.cpp +++ b/archive/hge/CxImage/ximaico.cpp diff --git a/hge/CxImage/ximaico.h b/archive/hge/CxImage/ximaico.h index 8d81b02..8d81b02 100644 --- a/hge/CxImage/ximaico.h +++ b/archive/hge/CxImage/ximaico.h diff --git a/hge/CxImage/ximainfo.cpp b/archive/hge/CxImage/ximainfo.cpp index 582d9ed..582d9ed 100644 --- a/hge/CxImage/ximainfo.cpp +++ b/archive/hge/CxImage/ximainfo.cpp diff --git a/hge/CxImage/ximaint.cpp b/archive/hge/CxImage/ximaint.cpp index 5f93038..5f93038 100644 --- a/hge/CxImage/ximaint.cpp +++ b/archive/hge/CxImage/ximaint.cpp diff --git a/hge/CxImage/ximaiter.h b/archive/hge/CxImage/ximaiter.h index 2371d28..2371d28 100644 --- a/hge/CxImage/ximaiter.h +++ b/archive/hge/CxImage/ximaiter.h diff --git a/hge/CxImage/ximajas.cpp b/archive/hge/CxImage/ximajas.cpp index 788e204..788e204 100644 --- a/hge/CxImage/ximajas.cpp +++ b/archive/hge/CxImage/ximajas.cpp diff --git a/hge/CxImage/ximajas.h b/archive/hge/CxImage/ximajas.h index da76dfc..da76dfc 100644 --- a/hge/CxImage/ximajas.h +++ b/archive/hge/CxImage/ximajas.h diff --git a/hge/CxImage/ximajbg.cpp b/archive/hge/CxImage/ximajbg.cpp index ee7bc10..ee7bc10 100644 --- a/hge/CxImage/ximajbg.cpp +++ b/archive/hge/CxImage/ximajbg.cpp diff --git a/hge/CxImage/ximajbg.h b/archive/hge/CxImage/ximajbg.h index 1cf4965..1cf4965 100644 --- a/hge/CxImage/ximajbg.h +++ b/archive/hge/CxImage/ximajbg.h diff --git a/hge/CxImage/ximajpg.cpp b/archive/hge/CxImage/ximajpg.cpp index b66bf97..b66bf97 100644 --- a/hge/CxImage/ximajpg.cpp +++ b/archive/hge/CxImage/ximajpg.cpp diff --git a/hge/CxImage/ximajpg.h b/archive/hge/CxImage/ximajpg.h index da21643..da21643 100644 --- a/hge/CxImage/ximajpg.h +++ b/archive/hge/CxImage/ximajpg.h diff --git a/hge/CxImage/ximalpha.cpp b/archive/hge/CxImage/ximalpha.cpp index 2932068..2932068 100644 --- a/hge/CxImage/ximalpha.cpp +++ b/archive/hge/CxImage/ximalpha.cpp diff --git a/hge/CxImage/ximalyr.cpp b/archive/hge/CxImage/ximalyr.cpp index 23dc226..23dc226 100644 --- a/hge/CxImage/ximalyr.cpp +++ b/archive/hge/CxImage/ximalyr.cpp diff --git a/hge/CxImage/ximamng.cpp b/archive/hge/CxImage/ximamng.cpp index d5ea82e..d5ea82e 100644 --- a/hge/CxImage/ximamng.cpp +++ b/archive/hge/CxImage/ximamng.cpp diff --git a/hge/CxImage/ximamng.h b/archive/hge/CxImage/ximamng.h index 9466fc2..9466fc2 100644 --- a/hge/CxImage/ximamng.h +++ b/archive/hge/CxImage/ximamng.h diff --git a/hge/CxImage/ximapal.cpp b/archive/hge/CxImage/ximapal.cpp index fe0615b..fe0615b 100644 --- a/hge/CxImage/ximapal.cpp +++ b/archive/hge/CxImage/ximapal.cpp diff --git a/hge/CxImage/ximapcx.cpp b/archive/hge/CxImage/ximapcx.cpp index 2fa2f5d..2fa2f5d 100644 --- a/hge/CxImage/ximapcx.cpp +++ b/archive/hge/CxImage/ximapcx.cpp diff --git a/hge/CxImage/ximapcx.h b/archive/hge/CxImage/ximapcx.h index 05c5ad0..05c5ad0 100644 --- a/hge/CxImage/ximapcx.h +++ b/archive/hge/CxImage/ximapcx.h diff --git a/hge/CxImage/ximapng.cpp b/archive/hge/CxImage/ximapng.cpp index db2f636..db2f636 100644 --- a/hge/CxImage/ximapng.cpp +++ b/archive/hge/CxImage/ximapng.cpp diff --git a/hge/CxImage/ximapng.h b/archive/hge/CxImage/ximapng.h index 262ea02..262ea02 100644 --- a/hge/CxImage/ximapng.h +++ b/archive/hge/CxImage/ximapng.h diff --git a/hge/CxImage/ximapsd.cpp b/archive/hge/CxImage/ximapsd.cpp index 2d8417b..2d8417b 100644 --- a/hge/CxImage/ximapsd.cpp +++ b/archive/hge/CxImage/ximapsd.cpp diff --git a/hge/CxImage/ximapsd.h b/archive/hge/CxImage/ximapsd.h index 92be8f1..92be8f1 100644 --- a/hge/CxImage/ximapsd.h +++ b/archive/hge/CxImage/ximapsd.h diff --git a/hge/CxImage/ximaraw.cpp b/archive/hge/CxImage/ximaraw.cpp index aedc50a..aedc50a 100644 --- a/hge/CxImage/ximaraw.cpp +++ b/archive/hge/CxImage/ximaraw.cpp diff --git a/hge/CxImage/ximaraw.h b/archive/hge/CxImage/ximaraw.h index 2fe4961..2fe4961 100644 --- a/hge/CxImage/ximaraw.h +++ b/archive/hge/CxImage/ximaraw.h diff --git a/hge/CxImage/ximasel.cpp b/archive/hge/CxImage/ximasel.cpp index c50ff99..c50ff99 100644 --- a/hge/CxImage/ximasel.cpp +++ b/archive/hge/CxImage/ximasel.cpp diff --git a/hge/CxImage/ximaska.cpp b/archive/hge/CxImage/ximaska.cpp index 6f1b1c2..6f1b1c2 100644 --- a/hge/CxImage/ximaska.cpp +++ b/archive/hge/CxImage/ximaska.cpp diff --git a/hge/CxImage/ximaska.h b/archive/hge/CxImage/ximaska.h index ad3f598..ad3f598 100644 --- a/hge/CxImage/ximaska.h +++ b/archive/hge/CxImage/ximaska.h diff --git a/hge/CxImage/ximatga.cpp b/archive/hge/CxImage/ximatga.cpp index f1a762a..f1a762a 100644 --- a/hge/CxImage/ximatga.cpp +++ b/archive/hge/CxImage/ximatga.cpp diff --git a/hge/CxImage/ximatga.h b/archive/hge/CxImage/ximatga.h index 3cbc36a..3cbc36a 100644 --- a/hge/CxImage/ximatga.h +++ b/archive/hge/CxImage/ximatga.h diff --git a/hge/CxImage/ximath.cpp b/archive/hge/CxImage/ximath.cpp index 0175184..0175184 100644 --- a/hge/CxImage/ximath.cpp +++ b/archive/hge/CxImage/ximath.cpp diff --git a/hge/CxImage/ximath.h b/archive/hge/CxImage/ximath.h index 014c14b..014c14b 100644 --- a/hge/CxImage/ximath.h +++ b/archive/hge/CxImage/ximath.h diff --git a/hge/CxImage/ximatif.cpp b/archive/hge/CxImage/ximatif.cpp index 7675361..7675361 100644 --- a/hge/CxImage/ximatif.cpp +++ b/archive/hge/CxImage/ximatif.cpp diff --git a/hge/CxImage/ximatif.h b/archive/hge/CxImage/ximatif.h index 5ea31f0..5ea31f0 100644 --- a/hge/CxImage/ximatif.h +++ b/archive/hge/CxImage/ximatif.h diff --git a/hge/CxImage/ximatran.cpp b/archive/hge/CxImage/ximatran.cpp index decac18..decac18 100644 --- a/hge/CxImage/ximatran.cpp +++ b/archive/hge/CxImage/ximatran.cpp diff --git a/hge/CxImage/ximawbmp.cpp b/archive/hge/CxImage/ximawbmp.cpp index 7ba5d00..7ba5d00 100644 --- a/hge/CxImage/ximawbmp.cpp +++ b/archive/hge/CxImage/ximawbmp.cpp diff --git a/hge/CxImage/ximawbmp.h b/archive/hge/CxImage/ximawbmp.h index 9a7837e..9a7837e 100644 --- a/hge/CxImage/ximawbmp.h +++ b/archive/hge/CxImage/ximawbmp.h diff --git a/hge/CxImage/ximawmf.cpp b/archive/hge/CxImage/ximawmf.cpp index a1057f5..a1057f5 100644 --- a/hge/CxImage/ximawmf.cpp +++ b/archive/hge/CxImage/ximawmf.cpp diff --git a/hge/CxImage/ximawmf.h b/archive/hge/CxImage/ximawmf.h index 94fb168..94fb168 100644 --- a/hge/CxImage/ximawmf.h +++ b/archive/hge/CxImage/ximawmf.h diff --git a/hge/CxImage/ximawnd.cpp b/archive/hge/CxImage/ximawnd.cpp index 7f23f8f..7f23f8f 100644 --- a/hge/CxImage/ximawnd.cpp +++ b/archive/hge/CxImage/ximawnd.cpp diff --git a/hge/CxImage/xiofile.h b/archive/hge/CxImage/xiofile.h index e05811e..e05811e 100644 --- a/hge/CxImage/xiofile.h +++ b/archive/hge/CxImage/xiofile.h diff --git a/hge/CxImage/xmemfile.cpp b/archive/hge/CxImage/xmemfile.cpp index f235899..f235899 100644 --- a/hge/CxImage/xmemfile.cpp +++ b/archive/hge/CxImage/xmemfile.cpp diff --git a/hge/CxImage/xmemfile.h b/archive/hge/CxImage/xmemfile.h index e132db3..e132db3 100644 --- a/hge/CxImage/xmemfile.h +++ b/archive/hge/CxImage/xmemfile.h diff --git a/hge/ZLIB/adler32.c b/archive/hge/ZLIB/adler32.c index 65ad6a5..65ad6a5 100644 --- a/hge/ZLIB/adler32.c +++ b/archive/hge/ZLIB/adler32.c diff --git a/hge/ZLIB/crc32.c b/archive/hge/ZLIB/crc32.c index 91be372..91be372 100644 --- a/hge/ZLIB/crc32.c +++ b/archive/hge/ZLIB/crc32.c diff --git a/hge/ZLIB/crc32.h b/archive/hge/ZLIB/crc32.h index 8053b61..8053b61 100644 --- a/hge/ZLIB/crc32.h +++ b/archive/hge/ZLIB/crc32.h diff --git a/hge/ZLIB/crypt.h b/archive/hge/ZLIB/crypt.h index c01e587..c01e587 100644 --- a/hge/ZLIB/crypt.h +++ b/archive/hge/ZLIB/crypt.h diff --git a/hge/ZLIB/deflate.h b/archive/hge/ZLIB/deflate.h index cbf0d1e..cbf0d1e 100644 --- a/hge/ZLIB/deflate.h +++ b/archive/hge/ZLIB/deflate.h diff --git a/hge/ZLIB/inffast.c b/archive/hge/ZLIB/inffast.c index 2f1d60b..2f1d60b 100644 --- a/hge/ZLIB/inffast.c +++ b/archive/hge/ZLIB/inffast.c diff --git a/hge/ZLIB/inffast.h b/archive/hge/ZLIB/inffast.h index e5c1aa4..e5c1aa4 100644 --- a/hge/ZLIB/inffast.h +++ b/archive/hge/ZLIB/inffast.h diff --git a/hge/ZLIB/inffixed.h b/archive/hge/ZLIB/inffixed.h index 75ed4b5..75ed4b5 100644 --- a/hge/ZLIB/inffixed.h +++ b/archive/hge/ZLIB/inffixed.h diff --git a/hge/ZLIB/inflate.c b/archive/hge/ZLIB/inflate.c index a8431ab..a8431ab 100644 --- a/hge/ZLIB/inflate.c +++ b/archive/hge/ZLIB/inflate.c diff --git a/hge/ZLIB/inflate.h b/archive/hge/ZLIB/inflate.h index 95f4986..95f4986 100644 --- a/hge/ZLIB/inflate.h +++ b/archive/hge/ZLIB/inflate.h diff --git a/hge/ZLIB/inftrees.c b/archive/hge/ZLIB/inftrees.c index 11e9c52..11e9c52 100644 --- a/hge/ZLIB/inftrees.c +++ b/archive/hge/ZLIB/inftrees.c diff --git a/hge/ZLIB/inftrees.h b/archive/hge/ZLIB/inftrees.h index baa53a0..baa53a0 100644 --- a/hge/ZLIB/inftrees.h +++ b/archive/hge/ZLIB/inftrees.h diff --git a/hge/ZLIB/ioapi.c b/archive/hge/ZLIB/ioapi.c index 9ac1985..9ac1985 100644 --- a/hge/ZLIB/ioapi.c +++ b/archive/hge/ZLIB/ioapi.c diff --git a/hge/ZLIB/ioapi.h b/archive/hge/ZLIB/ioapi.h index b2ffb14..b2ffb14 100644 --- a/hge/ZLIB/ioapi.h +++ b/archive/hge/ZLIB/ioapi.h diff --git a/hge/ZLIB/trees.c b/archive/hge/ZLIB/trees.c index 56e9bb1..56e9bb1 100644 --- a/hge/ZLIB/trees.c +++ b/archive/hge/ZLIB/trees.c diff --git a/hge/ZLIB/trees.h b/archive/hge/ZLIB/trees.h index d35639d..d35639d 100644 --- a/hge/ZLIB/trees.h +++ b/archive/hge/ZLIB/trees.h diff --git a/hge/ZLIB/uncompr.c b/archive/hge/ZLIB/uncompr.c index ad98be3..ad98be3 100644 --- a/hge/ZLIB/uncompr.c +++ b/archive/hge/ZLIB/uncompr.c diff --git a/hge/ZLIB/unzip.c b/archive/hge/ZLIB/unzip.c index 868f035..868f035 100644 --- a/hge/ZLIB/unzip.c +++ b/archive/hge/ZLIB/unzip.c diff --git a/hge/ZLIB/unzip.h b/archive/hge/ZLIB/unzip.h index 2a9f26f..2a9f26f 100644 --- a/hge/ZLIB/unzip.h +++ b/archive/hge/ZLIB/unzip.h diff --git a/hge/ZLIB/zconf.h b/archive/hge/ZLIB/zconf.h index 02ce56c..02ce56c 100644 --- a/hge/ZLIB/zconf.h +++ b/archive/hge/ZLIB/zconf.h diff --git a/hge/ZLIB/zconf.in.h b/archive/hge/ZLIB/zconf.in.h index 91a0f73..91a0f73 100644 --- a/hge/ZLIB/zconf.in.h +++ b/archive/hge/ZLIB/zconf.in.h diff --git a/hge/ZLIB/zip.h b/archive/hge/ZLIB/zip.h index 944ed78..944ed78 100644 --- a/hge/ZLIB/zip.h +++ b/archive/hge/ZLIB/zip.h diff --git a/hge/ZLIB/zlib.h b/archive/hge/ZLIB/zlib.h index bfbba83..bfbba83 100644 --- a/hge/ZLIB/zlib.h +++ b/archive/hge/ZLIB/zlib.h diff --git a/hge/ZLIB/zutil.c b/archive/hge/ZLIB/zutil.c index 898ed34..898ed34 100644 --- a/hge/ZLIB/zutil.c +++ b/archive/hge/ZLIB/zutil.c diff --git a/hge/ZLIB/zutil.h b/archive/hge/ZLIB/zutil.h index 258fa88..258fa88 100644 --- a/hge/ZLIB/zutil.h +++ b/archive/hge/ZLIB/zutil.h diff --git a/hge/demo.cpp b/archive/hge/demo.cpp index a8a2ce3..a8a2ce3 100644 --- a/hge/demo.cpp +++ b/archive/hge/demo.cpp diff --git a/hge/gl.h b/archive/hge/gl.h index 96fb7d7..96fb7d7 100644 --- a/hge/gl.h +++ b/archive/hge/gl.h diff --git a/hge/graphics.cpp b/archive/hge/graphics.cpp index 6ee9578..6ee9578 100644 --- a/hge/graphics.cpp +++ b/archive/hge/graphics.cpp diff --git a/hge/hge_glfuncs.h b/archive/hge/hge_glfuncs.h index 1c0af81..1c0af81 100644 --- a/hge/hge_glfuncs.h +++ b/archive/hge/hge_glfuncs.h diff --git a/hge/hge_impl.h b/archive/hge/hge_impl.h index bf42c2f..bf42c2f 100644 --- a/hge/hge_impl.h +++ b/archive/hge/hge_impl.h diff --git a/hge/ini.cpp b/archive/hge/ini.cpp index 6fed586..6fed586 100644 --- a/hge/ini.cpp +++ b/archive/hge/ini.cpp diff --git a/hge/input.cpp b/archive/hge/input.cpp index 2710c7f..2710c7f 100644 --- a/hge/input.cpp +++ b/archive/hge/input.cpp diff --git a/hge/power.cpp b/archive/hge/power.cpp index eabeeaa..eabeeaa 100644 --- a/hge/power.cpp +++ b/archive/hge/power.cpp diff --git a/hge/random.cpp b/archive/hge/random.cpp index ab9956a..ab9956a 100644 --- a/hge/random.cpp +++ b/archive/hge/random.cpp diff --git a/hge/resource.cpp b/archive/hge/resource.cpp index 4937ee1..4937ee1 100644 --- a/hge/resource.cpp +++ b/archive/hge/resource.cpp diff --git a/hge/sound.cpp b/archive/hge/sound.cpp index 9024652..9024652 100644 --- a/hge/sound.cpp +++ b/archive/hge/sound.cpp diff --git a/hge/system.cpp b/archive/hge/system.cpp index b32783b..b32783b 100644 --- a/hge/system.cpp +++ b/archive/hge/system.cpp diff --git a/hge/timer.cpp b/archive/hge/timer.cpp index 13711c7..13711c7 100644 --- a/hge/timer.cpp +++ b/archive/hge/timer.cpp diff --git a/hgehelp/hgeanim.cpp b/archive/hgehelp/hgeanim.cpp index 0e370db..0e370db 100644 --- a/hgehelp/hgeanim.cpp +++ b/archive/hgehelp/hgeanim.cpp diff --git a/hgehelp/hgecolor.cpp b/archive/hgehelp/hgecolor.cpp index 561a9cc..561a9cc 100644 --- a/hgehelp/hgecolor.cpp +++ b/archive/hgehelp/hgecolor.cpp diff --git a/hgehelp/hgedistort.cpp b/archive/hgehelp/hgedistort.cpp index c7dc821..c7dc821 100644 --- a/hgehelp/hgedistort.cpp +++ b/archive/hgehelp/hgedistort.cpp diff --git a/hgehelp/hgefont.cpp b/archive/hgehelp/hgefont.cpp index eb06393..eb06393 100644 --- a/hgehelp/hgefont.cpp +++ b/archive/hgehelp/hgefont.cpp diff --git a/hgehelp/hgegui.cpp b/archive/hgehelp/hgegui.cpp index 2faf24c..2faf24c 100644 --- a/hgehelp/hgegui.cpp +++ b/archive/hgehelp/hgegui.cpp diff --git a/hgehelp/hgeguictrls.cpp b/archive/hgehelp/hgeguictrls.cpp index 4319491..4319491 100644 --- a/hgehelp/hgeguictrls.cpp +++ b/archive/hgehelp/hgeguictrls.cpp diff --git a/hgehelp/hgeparticle.cpp b/archive/hgehelp/hgeparticle.cpp index d0d054d..d0d054d 100644 --- a/hgehelp/hgeparticle.cpp +++ b/archive/hgehelp/hgeparticle.cpp diff --git a/hgehelp/hgepmanager.cpp b/archive/hgehelp/hgepmanager.cpp index 16a0b1d..16a0b1d 100644 --- a/hgehelp/hgepmanager.cpp +++ b/archive/hgehelp/hgepmanager.cpp diff --git a/hgehelp/hgerect.cpp b/archive/hgehelp/hgerect.cpp index 303286c..303286c 100644 --- a/hgehelp/hgerect.cpp +++ b/archive/hgehelp/hgerect.cpp diff --git a/hgehelp/hgeresource.cpp b/archive/hgehelp/hgeresource.cpp index e681369..e681369 100644 --- a/hgehelp/hgeresource.cpp +++ b/archive/hgehelp/hgeresource.cpp diff --git a/hgehelp/hgesprite.cpp b/archive/hgehelp/hgesprite.cpp index 3ff926f..3ff926f 100644 --- a/hgehelp/hgesprite.cpp +++ b/archive/hgehelp/hgesprite.cpp diff --git a/hgehelp/hgestrings.cpp b/archive/hgehelp/hgestrings.cpp index 6eda71c..6eda71c 100644 --- a/hgehelp/hgestrings.cpp +++ b/archive/hgehelp/hgestrings.cpp diff --git a/hgehelp/hgevector.cpp b/archive/hgehelp/hgevector.cpp index 921f7b7..921f7b7 100644 --- a/hgehelp/hgevector.cpp +++ b/archive/hgehelp/hgevector.cpp diff --git a/hgehelp/parser.cpp b/archive/hgehelp/parser.cpp index 0386ef9..0386ef9 100644 --- a/hgehelp/parser.cpp +++ b/archive/hgehelp/parser.cpp diff --git a/hgehelp/parser.h b/archive/hgehelp/parser.h index c33ff11..c33ff11 100644 --- a/hgehelp/parser.h +++ b/archive/hgehelp/parser.h diff --git a/hgehelp/resources.cpp b/archive/hgehelp/resources.cpp index 33afcaa..33afcaa 100644 --- a/hgehelp/resources.cpp +++ b/archive/hgehelp/resources.cpp diff --git a/hgehelp/resources.h b/archive/hgehelp/resources.h index 8be8384..8be8384 100644 --- a/hgehelp/resources.h +++ b/archive/hgehelp/resources.h diff --git a/hgewin/ZLIB/adler32.c b/archive/hgewin/ZLIB/adler32.c index 65ad6a5..65ad6a5 100644 --- a/hgewin/ZLIB/adler32.c +++ b/archive/hgewin/ZLIB/adler32.c diff --git a/hgewin/ZLIB/crc32.c b/archive/hgewin/ZLIB/crc32.c index 91be372..91be372 100644 --- a/hgewin/ZLIB/crc32.c +++ b/archive/hgewin/ZLIB/crc32.c diff --git a/hgewin/ZLIB/crc32.h b/archive/hgewin/ZLIB/crc32.h index 8053b61..8053b61 100644 --- a/hgewin/ZLIB/crc32.h +++ b/archive/hgewin/ZLIB/crc32.h diff --git a/hgewin/ZLIB/crypt.h b/archive/hgewin/ZLIB/crypt.h index c01e587..c01e587 100644 --- a/hgewin/ZLIB/crypt.h +++ b/archive/hgewin/ZLIB/crypt.h diff --git a/hgewin/ZLIB/deflate.h b/archive/hgewin/ZLIB/deflate.h index cbf0d1e..cbf0d1e 100644 --- a/hgewin/ZLIB/deflate.h +++ b/archive/hgewin/ZLIB/deflate.h diff --git a/hgewin/ZLIB/inffast.c b/archive/hgewin/ZLIB/inffast.c index 2f1d60b..2f1d60b 100644 --- a/hgewin/ZLIB/inffast.c +++ b/archive/hgewin/ZLIB/inffast.c diff --git a/hgewin/ZLIB/inffast.h b/archive/hgewin/ZLIB/inffast.h index e5c1aa4..e5c1aa4 100644 --- a/hgewin/ZLIB/inffast.h +++ b/archive/hgewin/ZLIB/inffast.h diff --git a/hgewin/ZLIB/inffixed.h b/archive/hgewin/ZLIB/inffixed.h index 75ed4b5..75ed4b5 100644 --- a/hgewin/ZLIB/inffixed.h +++ b/archive/hgewin/ZLIB/inffixed.h diff --git a/hgewin/ZLIB/inflate.c b/archive/hgewin/ZLIB/inflate.c index a8431ab..a8431ab 100644 --- a/hgewin/ZLIB/inflate.c +++ b/archive/hgewin/ZLIB/inflate.c diff --git a/hgewin/ZLIB/inflate.h b/archive/hgewin/ZLIB/inflate.h index 95f4986..95f4986 100644 --- a/hgewin/ZLIB/inflate.h +++ b/archive/hgewin/ZLIB/inflate.h diff --git a/hgewin/ZLIB/inftrees.c b/archive/hgewin/ZLIB/inftrees.c index 11e9c52..11e9c52 100644 --- a/hgewin/ZLIB/inftrees.c +++ b/archive/hgewin/ZLIB/inftrees.c diff --git a/hgewin/ZLIB/inftrees.h b/archive/hgewin/ZLIB/inftrees.h index baa53a0..baa53a0 100644 --- a/hgewin/ZLIB/inftrees.h +++ b/archive/hgewin/ZLIB/inftrees.h diff --git a/hgewin/ZLIB/ioapi.c b/archive/hgewin/ZLIB/ioapi.c index 9ac1985..9ac1985 100644 --- a/hgewin/ZLIB/ioapi.c +++ b/archive/hgewin/ZLIB/ioapi.c diff --git a/hgewin/ZLIB/ioapi.h b/archive/hgewin/ZLIB/ioapi.h index b2ffb14..b2ffb14 100644 --- a/hgewin/ZLIB/ioapi.h +++ b/archive/hgewin/ZLIB/ioapi.h diff --git a/hgewin/ZLIB/trees.c b/archive/hgewin/ZLIB/trees.c index 56e9bb1..56e9bb1 100644 --- a/hgewin/ZLIB/trees.c +++ b/archive/hgewin/ZLIB/trees.c diff --git a/hgewin/ZLIB/trees.h b/archive/hgewin/ZLIB/trees.h index d35639d..d35639d 100644 --- a/hgewin/ZLIB/trees.h +++ b/archive/hgewin/ZLIB/trees.h diff --git a/hgewin/ZLIB/uncompr.c b/archive/hgewin/ZLIB/uncompr.c index ad98be3..ad98be3 100644 --- a/hgewin/ZLIB/uncompr.c +++ b/archive/hgewin/ZLIB/uncompr.c diff --git a/hgewin/ZLIB/unzip.c b/archive/hgewin/ZLIB/unzip.c index 868f035..868f035 100644 --- a/hgewin/ZLIB/unzip.c +++ b/archive/hgewin/ZLIB/unzip.c diff --git a/hgewin/ZLIB/unzip.h b/archive/hgewin/ZLIB/unzip.h index 2a9f26f..2a9f26f 100644 --- a/hgewin/ZLIB/unzip.h +++ b/archive/hgewin/ZLIB/unzip.h diff --git a/hgewin/ZLIB/zconf.h b/archive/hgewin/ZLIB/zconf.h index 02ce56c..02ce56c 100644 --- a/hgewin/ZLIB/zconf.h +++ b/archive/hgewin/ZLIB/zconf.h diff --git a/hgewin/ZLIB/zconf.in.h b/archive/hgewin/ZLIB/zconf.in.h index 91a0f73..91a0f73 100644 --- a/hgewin/ZLIB/zconf.in.h +++ b/archive/hgewin/ZLIB/zconf.in.h diff --git a/hgewin/ZLIB/zip.h b/archive/hgewin/ZLIB/zip.h index 944ed78..944ed78 100644 --- a/hgewin/ZLIB/zip.h +++ b/archive/hgewin/ZLIB/zip.h diff --git a/hgewin/ZLIB/zlib.h b/archive/hgewin/ZLIB/zlib.h index bfbba83..bfbba83 100644 --- a/hgewin/ZLIB/zlib.h +++ b/archive/hgewin/ZLIB/zlib.h diff --git a/hgewin/ZLIB/zutil.c b/archive/hgewin/ZLIB/zutil.c index 898ed34..898ed34 100644 --- a/hgewin/ZLIB/zutil.c +++ b/archive/hgewin/ZLIB/zutil.c diff --git a/hgewin/ZLIB/zutil.h b/archive/hgewin/ZLIB/zutil.h index 258fa88..258fa88 100644 --- a/hgewin/ZLIB/zutil.h +++ b/archive/hgewin/ZLIB/zutil.h diff --git a/hgewin/demo.cpp b/archive/hgewin/demo.cpp index a8a2ce3..a8a2ce3 100644 --- a/hgewin/demo.cpp +++ b/archive/hgewin/demo.cpp diff --git a/hgewin/graphics.cpp b/archive/hgewin/graphics.cpp index 43a5cc1..43a5cc1 100755 --- a/hgewin/graphics.cpp +++ b/archive/hgewin/graphics.cpp diff --git a/hgewin/hge_impl.h b/archive/hgewin/hge_impl.h index 244dafc..244dafc 100755 --- a/hgewin/hge_impl.h +++ b/archive/hgewin/hge_impl.h diff --git a/hgewin/ini.cpp b/archive/hgewin/ini.cpp index eef4354..eef4354 100755 --- a/hgewin/ini.cpp +++ b/archive/hgewin/ini.cpp diff --git a/hgewin/input.cpp b/archive/hgewin/input.cpp index 0610376..0610376 100755 --- a/hgewin/input.cpp +++ b/archive/hgewin/input.cpp diff --git a/hgewin/power.cpp b/archive/hgewin/power.cpp index dadcda9..dadcda9 100755 --- a/hgewin/power.cpp +++ b/archive/hgewin/power.cpp diff --git a/hgewin/random.cpp b/archive/hgewin/random.cpp index c3332f1..c3332f1 100755 --- a/hgewin/random.cpp +++ b/archive/hgewin/random.cpp diff --git a/hgewin/resource.cpp b/archive/hgewin/resource.cpp index 6921dc6..6921dc6 100755 --- a/hgewin/resource.cpp +++ b/archive/hgewin/resource.cpp diff --git a/hgewin/sound.cpp b/archive/hgewin/sound.cpp index 9024652..9024652 100644 --- a/hgewin/sound.cpp +++ b/archive/hgewin/sound.cpp diff --git a/hgewin/system.cpp b/archive/hgewin/system.cpp index 2cbd741..2cbd741 100755 --- a/hgewin/system.cpp +++ b/archive/hgewin/system.cpp diff --git a/hgewin/timer.cpp b/archive/hgewin/timer.cpp index 13711c7..13711c7 100755 --- a/hgewin/timer.cpp +++ b/archive/hgewin/timer.cpp diff --git a/include/hge.h b/archive/include/hge.h index 18d57b9..18d57b9 100644 --- a/include/hge.h +++ b/archive/include/hge.h diff --git a/include/hgeanim.h b/archive/include/hgeanim.h index 7c5f237..7c5f237 100644 --- a/include/hgeanim.h +++ b/archive/include/hgeanim.h diff --git a/include/hgecolor.h b/archive/include/hgecolor.h index 7cd4d82..7cd4d82 100644 --- a/include/hgecolor.h +++ b/archive/include/hgecolor.h diff --git a/include/hgedistort.h b/archive/include/hgedistort.h index 3c8f449..3c8f449 100644 --- a/include/hgedistort.h +++ b/archive/include/hgedistort.h diff --git a/include/hgefont.h b/archive/include/hgefont.h index 403d307..403d307 100644 --- a/include/hgefont.h +++ b/archive/include/hgefont.h diff --git a/include/hgegui.h b/archive/include/hgegui.h index 7e2144b..7e2144b 100644 --- a/include/hgegui.h +++ b/archive/include/hgegui.h diff --git a/include/hgeguictrls.h b/archive/include/hgeguictrls.h index 8a1addd..8a1addd 100644 --- a/include/hgeguictrls.h +++ b/archive/include/hgeguictrls.h diff --git a/include/hgeparticle.h b/archive/include/hgeparticle.h index fd1e622..fd1e622 100644 --- a/include/hgeparticle.h +++ b/archive/include/hgeparticle.h diff --git a/include/hgerect.h b/archive/include/hgerect.h index 9e26907..9e26907 100644 --- a/include/hgerect.h +++ b/archive/include/hgerect.h diff --git a/include/hgeresource.h b/archive/include/hgeresource.h index ace8f21..ace8f21 100644 --- a/include/hgeresource.h +++ b/archive/include/hgeresource.h diff --git a/include/hgesprite.h b/archive/include/hgesprite.h index e414c02..e414c02 100644 --- a/include/hgesprite.h +++ b/archive/include/hgesprite.h diff --git a/include/hgestrings.h b/archive/include/hgestrings.h index e02cbe9..e02cbe9 100644 --- a/include/hgestrings.h +++ b/archive/include/hgestrings.h diff --git a/include/hgevector.h b/archive/include/hgevector.h index b86bd01..b86bd01 100644 --- a/include/hgevector.h +++ b/archive/include/hgevector.h diff --git a/include/unix_compat.h b/archive/include/unix_compat.h index 56ec4b3..56ec4b3 100644 --- a/include/unix_compat.h +++ b/archive/include/unix_compat.h @@ -1,42 +0,0 @@ -#!/bin/bash -cd hge -############################################################################# -cd CxImage -echo Compiling CxImage... -g++ -c *.cpp -D_LINUX -ar rcs libCxImage.a *.o -rm *.o -cd .. -mv ./CxImage/libCxImage.a libCxImage.a -############################################################################# -cd ZLIB -echo Compiling zlib... -gcc -c *.c -ar rcs libz.a *.o -rm *.o -cd .. -mv ./ZLIB/libz.a libz.a -############################################################################# -echo Compiling libhge... -g++ -c *.cpp -I/usr/include/SDL/ -I../include -ar rcs libhge.a *.o -rm *.o -cd .. -mv ./hge/*.a ./ -############################################################################# -cd hgehelp -echo Compiling libhgehelp... -g++ -c *.cpp -I../include -ar rcs libhgehelp.a *.o -rm *.o -cd .. -mv ./hgehelp/libhgehelp.a libhgehelp.a -############################################################################# -echo Compiling the main executable... -g++ *.cpp -I/usr/include/freetype2 -I./include \ --lSDL -lvorbis -lvorbisfile -lopenal -ljpeg -lpng -lfreetype \ --Wl,libhgehelp.a,libhge.a,libCxImage.a,libz.a -o BulletLabRemixII -############################################################################# -rm *.a -strip BulletLabRemixII -cd ..
\ No newline at end of file |