source: GTP/trunk/App/Games/Jungle_Rumble/src/GameScene.h @ 1403

Revision 1403, 4.4 KB checked in by giegl, 18 years ago (diff)

GTPD - Jungle Rumble - GLOBAL_player_freezeQ WIP

Line 
1#pragma once
2#include "scene.h"
3#include <string>
4#include <list>
5#include <vector>
6#include "UserContactReport.h"
7#include "UserTriggerReport.h"
8#include "UserNotify.h"
9#include "fmod.h"
10#include "Bullet.h"
11#include "Weapon.h"
12
13#define SPTR boost::shared_ptr
14
15class UserPlayer;
16class Terrain;
17class HUD;
18class Ocean;
19class SkyBox;
20class Player;
21class Goodie;
22class SoundNode;
23
24class GameScene :
25        public Scene
26{
27public:
28        GameScene(void);
29        ~GameScene(void);
30
31        virtual void initScene(GameManager &_manager);
32        void loadGame(std::string filename);
33        virtual void clearScene();
34        void setMaxEnemyCount(int maxEnemyCount);
35
36        virtual void renderScene(float fElapsedTime);
37
38        Terrain* getTerrain();
39        HUD* getHUD();
40        SkyBox *skybox;
41
42        //Factory Stuff
43        static const int NODE_TERRAIN                   = 128;
44        static const int NODE_USERPLAYER                = 256;
45        static const int NODE_AIPLAYER                  = 512;
46        static const int NODE_SIMPLEWEAPON              = 1024;
47        static const int NODE_SIMPLEBULLET              = 2048;
48        static const int NODE_SKYBOX                    = 4096;
49        static const int NODE_GOODIE                    = 8192;
50        static const int NODE_UNIVERSALWEAPON   = 16384;
51        static const int NODE_OCEAN                             = 32768;
52        static const int NODE_HUD                               = 65536;
53        virtual Node* createNode(int type);
54        virtual Node* createNode(int type, Node &father);
55        virtual Node* createNode(int type, bool addDefaultRenderer);
56        virtual Node* createNode(int type, Node &father, bool addDefaultRenderer);
57        virtual Node* createNode(int type, Node &father, bool addDefaultRenderer, bool isReference);
58
59        //Game Related
60        std::list<SPTR<Node> > playerList;
61        std::list<SPTR<Node> > goodieList;
62        std::list<SPTR<Node> > bulletList;
63        std::list<SPTR<Node> >* getPlayerList();
64        std::list<SPTR<Node> >* getGoodieList();
65
66        UserPlayer *player;
67
68        //PhysicStuff
69        void connectMaterialIds(int physicId, int xmlId);
70        int getPhysicMaterialId(int xmlId);
71        std::vector<int> materialXMLVector;
72        std::vector<int> materialPhysicVector;
73
74        //GoodieStuff
75        float getRandomTime(float timeBase, float timeVariation);
76
77        static const int TRIGGER_IMPACTPLAYER   = 100;
78        static const int TRIGGER_IMPACTTERRAIN  = 101;
79        static const int TRIGGER_IMPACTGOODIE   = 102;
80        static const int TRIGGER_IMPACTOTHER    = 103;
81        static const int TRIGGER_GOODIECATCH    = 104;
82        static const int TRIGGER_IMPACTFIRE             = 105;
83        static const int TRIGGER_IMPACTICE              = 106;
84        static const int TRIGGER_CREATEPLAYER   = 107;
85        static const int TRIGGER_CREATEMOREPLAYER= 108;
86
87        virtual void cleanUpScene();
88        Bullet* cloneBulletFromReference(int type);
89        Weapon* cloneWeaponFromReference(int type);
90
91        float getTerrainHeight(Vector v);
92        bool showFPS;
93
94        //Reingehacktes zeug...rauslöschen
95        /*void toggleRaytraceRenderer();
96        Node* glasNode;
97        bool usingRaytracer;
98        Renderer* simpleRenderer;
99        Renderer* raytraceRenderer;*/
100
101        void setChallengeDescription(std::string _description, float _descDuration);
102        bool aiPlayerFireEnable;
103       
104
105        friend class GameSceneLoader;
106
107        bool alreadyUsed;
108        void reduceHealthOnPlayers(Bullet* bullet);
109
110        bool preparepaused;
111        bool currentlypaused;
112
113        void hasWon();
114protected:
115        SoundNode* sadSound;
116        SoundNode* happySound;
117       
118        bool resultVisible;
119
120        bool won;
121        bool descSet;
122        std::string description;
123        std::string enemyModel;                 //Filename of the enemy for the AIPlayer creation!
124        float descDuration;
125
126        bool recalcTransformations;             //To Froze Screen when loosing
127
128        Terrain *terrain;
129        HUD *hud;
130        Ocean *ocean;
131
132        int cameraFixedCount;
133        int maxEnemyCount;
134       
135        Vector lookAtPoint;
136        Vector viewPoint;
137        Vector dLookAtPoint;
138        Vector dViewPoint;
139
140        Object3d *obj;
141        float cnt;
142
143        //Scene Description
144        std::string gameName;
145        float gameDuration;
146        int gameMode;
147
148        //Reference Lists
149        std::vector<SPTR<Node> > refWeaponVector;                       //List of all Weapons
150        std::vector<SPTR<Node> > refBulletVector;                       //List of all Bullets
151
152        void updateGameFirst();
153        void updateGameSecond();
154
155        virtual void executeTrigger(SPTR<Trigger> trigger);
156
157        UserContactReport userContactReport;
158        UserTriggerReport userTriggerReport;
159        UserNotify                userNotify;
160
161        //Backgroundmusic Stuff
162        /*FSOUND_STREAM *bgMusicStream;
163        int bgSoundChannel;
164        float bgSoundVolume;
165
166        void setBackgroundSound(std::string filename);
167        void setBackgroundSoundVolume(float vol);
168        void playBackgroundSound();*/
169        //virtual void updateSoundNodeVolume();
170
171        //fly around cam:
172        bool flyCamEnabled;
173
174        void initWin();
175        void initLose();
176        float resultShowingTimer;
177
178        bool ignoreKeys;
179};
Note: See TracBrowser for help on using the repository browser.