shithub: candycrisis

Download patch

ref: 1ae6334bfaeb53c301a553e45733ad2a50b74689
parent: 13aedf6a9faab2fe48c45278cd8280c76ec3816b
author: CandyCrisis <>
date: Sun Nov 6 14:41:51 EST 2005

Candy Crisis 1.0 for Windows source code release on SourceForge

--- /dev/null
+++ b/CandyCrisisReadMe.rtf
@@ -1,0 +1,60 @@
+{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230
+{\fonttbl\f0\fnil\fcharset77 Verdana-BoldItalic;\f1\fnil\fcharset77 Verdana;\f2\fnil\fcharset77 Verdana-Italic;
+}
+{\colortbl;\red255\green255\blue255;}
+\vieww12000\viewh15840\viewkind0
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\qc
+
+\f0\i\b\fs72 \cf0 Candy Crisis
+\f1\i0\b0\fs24 \
+
+\f2\i by John Stiles\
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ql\qnatural
+
+\f1\i0 \cf0 \
+
+\fs36 - 
+\f0\i\b about the game...
+\f1\i0\b0\fs24 \
+\
+Recently, a mad scientist at a candy factory unveiled his greatest creation: a batch of living candy, brought to life through the miracles of genetic mutation. Unfortunately, his formula had a fatal flaw--the living candy uncontrollably multiplies by the thousands! Within minutes, the plant began to overflow with the genetically altered candy. Luckily, a quick-thinking researcher discovered how to fend off the rapidly multiplying creatures. The mutated candy became extremely reactive when grouped together--and when four of the same color touched, they instantly vaporized!  \
+\
+
+\f2\i Candy Crisis
+\f1\i0  is an exciting combination of pure action and puzzle gaming. The graphics are unparalleled for a puzzle game, with realistic special effects like particle effects, dynamic shadows and lighting, transparency, and even reflective candy. The game itself features twelve unique stages, complete with its own character and individual technique. In One Player mode, these dynamic computer opponents can react to your style of gameplay and quickly learn to adjust their tactics to match yours. In Two Player mode, you can pair off against a friend, and even specify a handicap so that both players are evenly matched. And if you want to practice, then  Solitaire Crisis mode allows you to play without having to compete against an opponent. A tutorial is included with the game as well, so even puzzle novices can become 
+\f2\i Candy Crisis
+\f1\i0  champions in no time.  \
+\
+
+\f0\i\b\fs36 - how to play...
+\f1\i0\b0\fs24 \
+\
+When you begin the game, candies start falling from the sky, two at a time. Use the arrow keys to maneuver them left and right. Pressing the up arrow will cause the candies to rotate around each other, and pressing the down arrow will cause the candy to drop faster. \
+\
+Candies of identical color will stick together when they are next to each other. When four candies of the same color are touching, they will vaporize! \
+\
+The object of the game is to keep the candy from overflowing the top of your board. To achieve this goal, you need to continually vaporize candy! In One Player mode, you compete against the computer for survival--your board is on the left side of the screen, and the computer's is on the right. In Solitaire Crisis, you don't have an opponent; you only need to keep the candy from stacking up to the top of the screen.\
+\
+For more gameplay details, please read the 
+\f2\i Candy Crisis
+\f1\i0  in-game tutorial. \
+
+\f2\i \
+
+\f0\b\fs36 - about the project...\
+
+\f2\b0\fs24 \
+Candy Crisis
+\f1\i0  is free! Visit the Candy Crisis web site at 
+\f2\i http://candycrisis.sourceforge.net/
+\f1\i0  . Source code is available under the GPL license at 
+\f2\i http://sourceforge.net/projects/candycrisis/
+\f1\i0  . \
+\
+If you like the game and want to make a contribution, donations are accepted on the Candy Crisis web site. You are under no obligation to donate, but if you enjoy the game, I would certainly appreciate the support. A percentage of your donation will be used to support the open-source community at SourceForge.net, as well.\
+
+\f2\i \
+
+\f1\i0 Thanks for playing Candy Crisis!\
+}
\ No newline at end of file
--- /dev/null
+++ b/Inno.iss
@@ -1,0 +1,39 @@
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+[Setup]
+AppName=Candy Crisis
+AppVerName=Candy Crisis 1.0
+AppPublisher=John Stiles
+AppPublisherURL=http://candycrisis.sourceforge.net/
+AppSupportURL=http://candycrisis.sourceforge.net/
+AppUpdatesURL=http://candycrisis.sourceforge.net/
+DefaultDirName={pf}\Candy Crisis
+DefaultGroupName=Candy Crisis
+DisableProgramGroupPage=yes
+AlwaysCreateUninstallIcon=yes
+; uncomment the following line if you want your installation to run on NT 3.51 too.
+; MinVersion=4,3.51
+
+[Tasks]
+Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; MinVersion: 4,4
+
+[Files]
+Source: "C:\Dev\CandyCrisis\CandyCrisis.exe"; DestDir: "{app}"; CopyMode: alwaysoverwrite
+Source: "C:\Dev\CandyCrisis\CandyCrisisResources\*.*"; DestDir: "{app}\CandyCrisisResources"; CopyMode: alwaysoverwrite
+Source: "C:\Dev\CandyCrisis\fmod.dll"; DestDir: "{app}"; CopyMode: alwaysoverwrite
+Source: "C:\Dev\CandyCrisis\jpeg.dll"; DestDir: "{app}"; CopyMode: alwaysoverwrite
+Source: "C:\Dev\CandyCrisis\libpng1.dll"; DestDir: "{app}"; CopyMode: alwaysoverwrite
+Source: "C:\Dev\CandyCrisis\SDL.dll"; DestDir: "{app}"; CopyMode: alwaysoverwrite
+Source: "C:\Dev\CandyCrisis\SDL_image.dll"; DestDir: "{app}"; CopyMode: alwaysoverwrite
+Source: "C:\Dev\CandyCrisis\zlib.dll"; DestDir: "{app}"; CopyMode: alwaysoverwrite
+Source: "C:\Dev\CandyCrisis\CandyCrisisReadMe.rtf"; DestDir: "{app}"; CopyMode: alwaysoverwrite
+
+[Icons]
+Name: "{group}\Candy Crisis"; Filename: "{app}\CandyCrisis.exe"
+Name: "{group}\Read Me"; Filename: "{app}\CandyCrisisReadMe.rtf"
+Name: "{userdesktop}\Candy Crisis"; Filename: "{app}\CandyCrisis.exe"; MinVersion: 4,4; Tasks: desktopicon
+
+[Run]
+Filename: "{app}\CandyCrisis.exe"; Description: "Play Candy Crisis"; Flags: nowait postinstall skipifsilent
+
--- /dev/null
+++ b/_README_.txt
@@ -1,0 +1,53 @@
+- CANDY CRISIS NOTES -
+
+- This project was originally developed using an open-source IDE called "DevCpp". It is 
+  technically a front-end on gcc. DevCpp is not very elegant and it isn't always 100% 
+  stable either, but it is free, open-source and much better than having no project manager 
+  at all. After getting used to it, you can get a lot of work done in the environment and 
+  (IMO) for a small project it was a better choice than spending $1000 on a license for 
+  Dev Studio. If you already have Dev Studio, on the other hand, I'd recommend making new
+  project files with Dev Studio and using that. It's a much more polished environment.
+
+- When I worked, I put the code in a directory called "C:\Dev\" and had the IDE in a
+  directory "C:\DevCpp\". If you move the code elsewhere, you will probably need to
+  fix up all the project files. If you have Dev Studio and make your own project files,
+  this is a non-issue.
+
+- The installer was built with "Inno Setup" (www.innosetup.com), a surprisingly 
+  functional yet free installer product. I last used Inno Setup in 2002, so the 
+  existing "ISS" files may need to be redone to work with the latest Inno version.
+
+- There is a makefile in the Source folder. At one point, with the assistance of a
+  Linux-savvy coworker, this makefile could build a Linux version of the game. At
+  this point I am not sure how much work is needed (if any) to get this makefile
+  working again.
+
+
+Here are the steps I took to make a final/shippable version of the game during its
+development:
+
+- Delete CandyCrisis.exe and rebuild the app fresh with DevCpp. (Deleting it is just
+  paranoia, but probably best practice.)
+- Compress the EXE with upx. (This makes the setup EXE marginally smaller, plus it is  
+  a simple way to slightly obfuscate the code to thwart the casual observer.) All you
+  need to do is drag CandyCrisis.exe onto the upx shortcut.
+- Delete CandyCrisisResources\Preferences.txt and then run the game so that it is
+  regenerated in a "virgin" state, with the default high scores and preferences set.
+- Compile Inno.ins with Inno Setup Compiler.
+
+
+Good luck! I think this source code can be used as a good example of how to convert an
+old-school Mac game to work cross-platform using open-source libraries such as SDL.
+The resources were all hand-converted to formats which could be read on any platform;
+for example, PICTS became JPG/PNG, MOD resources became MOD files and 'snd ' resources
+became WAV files.
+
+Please, please don't judge my coding ability from this source! The original code was
+largely written in my late-high-school/early-college years. My programming ability 
+and style has matured and changed greatly since then. I think the final product came 
+out really well, but I'll be the first to admit that this code uses many ugly tricks
+and isn't a great example of how to write clean code. Its evolution from Mac OS 7, to 
+OS X, and then to SDL and Windows, has also served to complicate the code a bit.
+
+
+Questions? <johnstiles@warpmail.net>
\ No newline at end of file