Chuzzle Deluxe
Chuzzle Deluxe |
---|
Developer: Raptisoft Games This game has uncompiled source code. |
Match little fuzzy balls by sliding them across the screen. If you tap on them for a little bit with the mouse, they would sneeze if small or burp if big. Shaking them around rapidly would make them dizzy.
Contents
Uncompiled Source Code
Like many Mac distributions of games from PopCap, this one left over a few source code files in the sounds directory. The date of the said source files is November 28, 2007.
buyhandler.h:
#pragma once #include "stdafx.h" #include "object.h" #include "gadget.h" #include "button.h" #include "Hyperlink.h" #include "Editbox.h" #include "Oscillator.h" namespace ECommerce { class Purchaser; class BuyHandler_Timebox; class BuyHandler_RegisterDialog; class BuyHandler_CountdownBox; class BuyHandler_ExpireBox; class BuyHandler : public Object { public: BuyHandler(void); virtual ~BuyHandler(void); void Cleanup(); bool IsRegistered(); inline bool IsPurchased() {return IsRegistered();} inline bool IsExpired() {if (IsRegistered()) return false;return GetTimeRemaining()<=0;} int GetTimeRemaining(); String GetTimeRemainingString(); void Load(); void Save(); bool mFirstUpdate; virtual void Update(); // // User interface, to help out with making it all work. // void UseESellerate(); void StartFreePlayClock(); void StopFreePlayClock(); void ShowTimebox(float theYPos); void ShowRegisterbox(); void ShowCountdownbox(); void CloseRegisterbox(); void ShowExpirebox(); inline void SetCountdownBoxPosition(Point thePos) {mCountdownBoxPos=thePos;} public: int mFreePlayTimer; int mSaveCounter; bool mTimerStarted; bool mIsPurchased; bool mReopenTimeBox; float mTimeBoxPos; float mTimeBoxFade; bool mCanShowCountdownbox; BuyHandler_Timebox *mTimeBox; BuyHandler_RegisterDialog *mRegisterBox; BuyHandler_CountdownBox *mCountdownBox; BuyHandler_ExpireBox *mExpireBox; Point mCountdownBoxPos; Purchaser *mPurchaser; }; class BuyHandler_Timebox : public Gadget { public: BuyHandler_Timebox(); virtual ~BuyHandler_Timebox(void); virtual void Initialize(); virtual void Update(); virtual void Draw(); virtual void Notify(void *theData); public: TextureSplatter mSplat; Sprite mBackground[2]; Font mFont; Button mBuyButton; }; class BuyHandler_RegisterDialog : public Gadget { public: BuyHandler_RegisterDialog(); virtual ~BuyHandler_RegisterDialog(); virtual void Initialize(); virtual void Update(); virtual void Draw(); virtual void Notify(void *theData); TextureSplatter mSplat; Sprite mBackground; Font mFont; Hyperlink mLink; EditBox mNameBox; EditBox mSerialBox; SpriteStrip mUnlock; SpriteStrip mCancel; Button mUnlockButton; Button mCancelButton; }; class BuyHandler_MessageBox : public Gadget { public: BuyHandler_MessageBox(String theCaption, String theText); virtual ~BuyHandler_MessageBox(); virtual void Draw(); virtual void Go(); virtual void Notify(void *theData); public: TextureSplatter mSplat; Sprite mBackground; SpriteStrip mOkay; Font mFont; String mCaption; String mText; Button mOkayButton; }; class BuyHandler_CountdownBox : public Gadget { public: BuyHandler_CountdownBox(Point thePos); virtual ~BuyHandler_CountdownBox(); virtual void Update(); virtual void Draw(); public: TextureSplatter mSplat; Sprite mBackground; Font mFont; Oscillator mBlink; }; class BuyHandler_ExpireBox : public Gadget { public: BuyHandler_ExpireBox(); virtual ~BuyHandler_ExpireBox(); virtual void Draw(); virtual void Go(); virtual void Update(); virtual void Notify(void *theData); public: TextureSplatter mSplat; Sprite mBackground; Tile mExpired; SpriteStrip mBuyNowButton; SpriteStrip mExitButton; Font mFont; Button mBuyNow; Button mExit; String mCaption; float mFade; BuyHandler_RegisterDialog *mRegisterBox; }; } extern ECommerce::BuyHandler gBuy;
CursorHandler.h
#include "stdafx.h" #pragma once namespace Sys { class CursorManager { // // CursorManager is a lot simpler on Mac-- it doesn't run in another thread. It just draws // at the end of the render loop. // public: CursorManager(void); virtual ~CursorManager(void); void Initialize(); void Draw(); void Load(String theFilename); public: SpriteStrip mCursor; // // The current cursor in use (this gets set by App) // int mCurrentCursor; }; }
OSX_Utils.h
/* * OSX_Utils.h * Chuzzle * * Created by John Raptis on 10/10/07. * Copyright 2007 __MyCompanyName__. All rights reserved. * */ void OSX_SetCursor(int theCursor); void OSX_HideCursor(); void OSX_ShowCursor(); void OSX_GetMousePosition(int *theX, int *theY); bool OSX_IsRightButtonDown(); // // These functions help us know if a user switch has // happened! // void OSX_SwitchEventsRegister(); bool OSX_ShouldResetVideo(); void OSX_SetShouldResetVideo(bool theState);
The only file with a different header.
Debugging Functions
*** BEGIN RAPTISOFT SESSION *** *** END RAPTISOFT SESSION ***
In the Japanese or older releases of the game there's a file called DEBUG.TXT that contains Raptisoft sessions likely used for debugging.
Development Strings
SWAPS: %d FPS: %s Update: %d%% Cheats Enabled %s %s RaptisoftAppWindow MAINICON EXTENDED_INFO DDRAW OS RESOLUTION %d x %d : %d SAFEMODE FULLSCREEN false RUNTIME %.2d:%.2d:%.2d VERSION PRODUCT %s_PLAYS MillionDollars %s\raptinfo.dat PlaysRemaining Raptisoft\%s *** BEGIN RAPTISOFT SESSION *** PNF Raptisoft Utility *** END RAPTISOFT SESSION *** http://www.popcap.com/win32updatecheck2.php?prod=%s&ver=%s Audio::MusicVolume Audio::SoundVolume HWTEST::FailReason HWTEST::CardGUID HWTEST::HWTesterVersion SetRenderState(D3DRENDERSTATE_AMBIENTMATERIALSOURCE) SetRenderState(D3DRENDERSTATE_DIFFUSEMATERIALSOURCE) SetRenderState(D3DRENDERSTATE_COLORVERTEX SetRenderState(D3DRENDERSTATE_DESTBLEND SetRenderState(D3DRENDERSTATE_SRCBLEND) SetRenderState(D3DRENDERSTATE_CLIPPING) SetRenderState(D3DRENDERSTATE_SHADEMODE) SetRenderState(D3DRENDERSTATE_DITHERENABLE) SetTextureStageState(D3DDTSS_MINFILTER) SetTextureStageState(D3DDTSS_MAGFILTER) VertexBuffer->Unlock VertexBuffer->Lock CreateVertexBuffer CreateSurface(TextureSurface) DCreateDevice(IID_IDirect3DHALDevice) CreateSurface(Primary) SetCooperativeLevel QueryInterface(IID_IDirect3D7) GetAvailableVidMem returned %s
Errors
Music Initialization Error: %s Couldn't initialize 3D support. Some other mystery problem! BASS_Init has not been successfully called. There is insufficent memory. The file could not be opened. The file's format is not recognised/supported. Jukebox Load Error Song file missing or corrupt from jukebox: %s Music Interface Error The BASS music interface could not initialize because: [%s] Music will not play during the game. The device has no 3D support. The device number specified is invalid. BASS has already been initialized. There is no available device driver... the device may already be in use. The specified format is not supported by the device. Could not create software render surface: %s 32-Bit (ARGB) texture format not supported Large textures not supported 24-bit rendering not supported Low video memory Not enought video memory "%s" is an unsupported card
File Names and Paths
c:\GameSrc\cpp\Raptisoft\Chuzzle\Release\Chuzzle.pdb cached\cacheinfo.cfg HardwareTestResults\InitialPrimarySurface.bmp HardwareTestResults\InitialTextureSurface.bmp App.cpp Audio.cpp CursorManager.cpp DEBUG.TXT Font.cpp Music.cpp ProfileManager.cpp Registry.cpp ObjectManager.cpp
Debugging Material
To do: Explore the exe for more references. Windows is possibly dummied as there's more strings for "Cheat" in Mac. What do they relate to? |
Swaps Display
A simple display is present in the executable. Setting the byte at the memory offset to 1 will show it.
Version | Offset |
---|---|
1.0.10 (PopCap.com, Final) | 00470D82 |
Edit Mode
Possibly a UI for editing a mindbender is present in the executable. Setting the byte at the memory offset to 1 will show it.
Version | Offset |
---|---|
1.0.10 (PopCap.com, Final) | 00436F37 |
Crash Debugger
If the game crashes, a message will appear to alert the player of what happened. It will tell the player to send an error report to Raptisoft, which includes:
- The exact path to the game's executable, where the crash occurred in the first place.
- Where the game crashed
- The name of the game
- The version of the game
- The duration of the game's session
- Whether the game was in full screen or not
- Whether the game was in safe mode or not
- The resolution the game was playing at
- The operating system the player is using
- The version of DirectDraw the player is using
- Pages missing developer references
- Games developed by Raptisoft Games
- Pages missing publisher references
- Games published by PopCap Games
- Windows games
- Mac OS X games
- Pages missing date references
- Games released in 2005
- Games released in May
- Games released on May 12
- Games with uncompiled source code
- Games with hidden development-related text
- Games with debugging functions
- To do
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Cleanup > To do
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with uncompiled source code
Games > Games by developer > Games developed by Raptisoft Games
Games > Games by platform > Mac OS X games
Games > Games by platform > Windows games
Games > Games by publisher > Games published by Electronic Arts > Games published by PopCap Games
Games > Games by release date > Games released in 2005
Games > Games by release date > Games released in May
Games > Games by release date > Games released in May > Games released on May 12