The Paper - Page 6 - Importing the Project
The Workflow of C++ Game-Development on a Series 60 Platform device
Andreas Jakl, Revision 1.0, July 2004
3.2 Importing the project
The following chapters describe how you can import the game project into your installation of the Symbian OS SDK for Series 60 and presents several workflow tactics.
3.2.1 Structure of the game
The Journey has been designed with an object oriented approach. Building on the framework provided by the AppWizard , several classes have been added to take care of different tasks. The basic concept is the same as described in chapter 2.4.1.
The game uses two different views, one for the menu and another one for the game itself. While this separation is a bit more work to implement, it has many advantages. The better organization of data and variables is an especially important benefit for applications with a more complex graphical menu.
The following chapters describe the classes specific to this application and provide a fundamental understanding of how the game works.
Some functionality needs to be available in multiple areas of the application, including methods to load bitmaps and to get the drive letter. This is implemented by using distinct namespaces. The file Bitmapmethods.cpp , provided by Nokia, encapsulates many functions which help with the handling of bitmaps. JourneyFunctions.cpp contains the function to add the drive and path of the application to a filename so that functions work no matter where the application has been installed.
The menu view and control
The classes CJourneyVMenu and CJourneyCMenu make up the routines that provide the intro picture and partly handle the menu required to start the game.
When the menu is being displayed, the game checks if a saved game file exists. If one does not, the Continue Game option is dimmed and not available.
The game view and control
While the view class is responsible for handling key presses, the control owns the text box and handles the drawing of the user interface.
This class is responsible for the game logic. It handles the text and pictures that are displayed. It also contains the timer functionality which is activated when the game waits for the user to move to another cell-id. Furthermore, it is responsible for loading and saving the game progress file, details can be read in chapter 4.3.
Location servicing class
The CJourneyLocation class takes care of getting and managing cell ids. The game uses a concept of defined areas, which are cell ids that have a special meaning to the game, such as the Detective bureau or the Bar . Building on that, the class provides functionality to wait for and check if the user has returned to an area, and to wait until he gets to a new cell-id, which can be defined as the next area or as no special area ( Streets ) if the locations should be farther apart.
The data structure containing game information and the story is prepared by this class and is accessed by the game engine. It mainly associates the text resource ids from the localized language files and the bitmap ids with the iTalkInfos array.
3.2.2 Additional dependencies
As has been outlined previously, getting the network information that contains the cell id works fine on Series 60 phones. However, the header file with the definitions of the required functions is only part of the public SDK for the Nokia Communicator 92009. The file etelbgsm.h has to be extracted from it and put into the epoc32\Include\ folder of your Symbian OS SDK for Series 60 installation . The Nokia 9200 runs Symbian OS v6.0 and Series 80, but the file is compatible with Series 60. While this header enables many other functions, only the code to get the current network info is needed here.