-
Notifications
You must be signed in to change notification settings - Fork 0
/
gamedev.cpp
167 lines (149 loc) · 7.22 KB
/
gamedev.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
//
// game.cpp
//
//System Headers
#include <time.h>
#include <stdlib.h>
// Engine includes.
#include "Color.h"
#include "GameManager.h"
#include "GraphicsManager.h"
#include "LogManager.h"
#include "Position.h"
#include "ResourceManager.h"
#include "utility.h"
#include "WorldManager.h"
//Game Headers
#include "GameController.h"
void loadResources(void);
int main(int argc, char *argv[]) {
df::GraphicsManager &graphics_manager = df::GraphicsManager::getInstance();
df::LogManager &log_manager = df::LogManager::getInstance();
//Seed random
srand(time(NULL));
//Set the window properties
//Original:
//Pixels: 1024 x 768
//Chars: 80 x 24
//Char size: 12.8 x 32
//
//New: 497 x 915
//Chars: 71 x 61
//Char size: 7 x 15
graphics_manager.setHorizontalPixels(497);
graphics_manager.setHorizontal(71);
graphics_manager.setVerticalPixels(915);
graphics_manager.setVertical(61);
// Start up Game Manager.
df::GameManager &game_manager = df::GameManager::getInstance();
if (game_manager.startUp()) {
log_manager.writeLog("Error starting game manager!");
game_manager.shutDown();
return 0;
}
// Set world boundary to slightly overlap on the left, right, and bottom.
df::WorldManager &world_manager = df::WorldManager::getInstance();
df::Box boundary = world_manager.getBoundary();
df::Position corner(0, 0);
df::Box new_boundary(corner,
boundary.getHorizontal() + 58,
boundary.getVertical() + 30);
world_manager.setBoundary(new_boundary);
df::Box view = world_manager.getView();
world_manager.setViewPosition(df::Position(new_boundary.getHorizontal() / 2, view.getVertical() / 2));
// Set flush of logfile during development (when done, make false).
log_manager.setFlush(true);
// Load game resources.
loadResources();
// Show splash screen.
//df::splash();
graphics_manager.setBackgroundColor(df::YELLOW);
//Create Game Controller
new GameController();
//RUN GAME
game_manager.run();
// Shut everything down.
game_manager.shutDown();
return 0;
}
//loads sprites and other resources
void loadResources(void){
df::LogManager &log_manager = df::LogManager::getInstance();
df::ResourceManager &resource_manager = df::ResourceManager::getInstance();
// Load sprites
//Player
if (!resource_manager.loadSprite("sprites/player-tank-spr.txt", "playertank"))
log_manager.writeLog("Successfully loaded player-tank-spr.txt.");
if (!resource_manager.loadSprite("sprites/player-gun-shot-spr.txt", "playergunshot"))
log_manager.writeLog("Successfully loaded player-cannon-shot-spr.txt.");
if (!resource_manager.loadSprite("sprites/player-cannon-shot-spr.txt", "playercannonshot"))
log_manager.writeLog("Successfully loaded player-gun-shot-spr.txt.");
//Obstacles
if (!resource_manager.loadSprite("sprites/small-rock-spr.txt", "smallrock"))
log_manager.writeLog("Successfully loaded small-rock-spr.txt.");
if (!resource_manager.loadSprite("sprites/medium-rock-spr.txt", "mediumrock"))
log_manager.writeLog("Successfully loaded medium-rock-spr.txt.");
if (!resource_manager.loadSprite("sprites/large-rock-spr.txt", "largerock"))
log_manager.writeLog("Successfully loaded large-rock-spr.txt.");
if (!resource_manager.loadSprite("sprites/barb-wire-spr.txt", "barbwire"))
log_manager.writeLog("Successfully loaded barb-wire-spr.txt.");
if (!resource_manager.loadSprite("sprites/tank-trap-spr.txt", "tanktrap"))
log_manager.writeLog("Successfully loaded tank-trap-spr.txt.");
if (!resource_manager.loadSprite("sprites/dragon-tooth-spr.txt", "dragontooth"))
log_manager.writeLog("Successfully loaded dragon-tooth-spr.txt.");
if (!resource_manager.loadSprite("sprites/small-building-spr.txt", "smallbuilding"))
log_manager.writeLog("Successfully loaded small-building-spr.txt.");
if (!resource_manager.loadSprite("sprites/medium-building-spr.txt", "mediumbuilding"))
log_manager.writeLog("Successfully loaded medium-building-spr.txt.");
if (!resource_manager.loadSprite("sprites/large-building-spr.txt", "largebuilding"))
log_manager.writeLog("Successfully loaded large-building-spr.txt.");
//Visual Effects
if (!resource_manager.loadSprite("sprites/small-explosion-spr.txt", "smallexplosion"))
log_manager.writeLog("Successfully loaded small-explosion-spr.txt.");
//Enemies
if (!resource_manager.loadSprite("sprites/foot-soldier-spr.txt", "footsoldier"))
log_manager.writeLog("Successfully loaded foot-soldier-spr.txt.");
if (!resource_manager.loadSprite("sprites/rocket-soldier-spr.txt", "rocketsoldier"))
log_manager.writeLog("Successfully loaded rocket-soldier-spr.txt.");
if (!resource_manager.loadSprite("sprites/helicopter-spr.txt", "helicopter"))
log_manager.writeLog("Successfully loaded helicopter-spr.txt.");
if (!resource_manager.loadSprite("sprites/bomber-spr.txt", "bomber"))
log_manager.writeLog("Successfully loaded bomber-spr.txt.");
if (!resource_manager.loadSprite("sprites/enemy-tank-spr.txt", "enemytank"))
log_manager.writeLog("Successfully loaded enemy-tank-spr.txt.");
if (!resource_manager.loadSprite("sprites/jeep-spr.txt", "jeep"))
log_manager.writeLog("Successfully loaded jeep-spr.txt.");
if (!resource_manager.loadSprite("sprites/enemy-gun-shot-spr.txt", "enemygunshot"))
log_manager.writeLog("Successfully loaded enemy-gun-shot-spr.txt.");
if (!resource_manager.loadSprite("sprites/enemy-cannon-shot-spr.txt", "enemycannonshot"))
log_manager.writeLog("Successfully loaded enemy-cannon-shot-spr.txt.");
if (!resource_manager.loadSprite("sprites/enemy-rocket-shot-spr.txt", "enemyrocketshot"))
log_manager.writeLog("Successfully loaded enemy-rocket-shot-spr.txt.");
if (!resource_manager.loadSprite("sprites/enemy-bomb-shot-spr.txt", "enemybombshot"))
log_manager.writeLog("Successfully loaded enemy-bomb-shot-spr.txt.");
if (!resource_manager.loadSprite("sprites/landmine-spr.txt", "landmine"))
log_manager.writeLog("Successfully loaded landmine-spr.txt.");
if (!resource_manager.loadSprite("sprites/ho-chi-minh-spr.txt", "hochiminh"))
log_manager.writeLog("Successfully loaded ho-chi-minh-spr.txt.");
if (!resource_manager.loadSprite("sprites/nixon-spr.txt", "nixon"))
log_manager.writeLog("Successfully loaded khrushchev-spr.txt.");
if (!resource_manager.loadSprite("sprites/khrushchev-spr.txt", "khrushchev"))
log_manager.writeLog("Successfully loaded nixon-spr.txt.");
if (!resource_manager.loadSprite("sprites/nixon-power-cell-spr.txt", "nixonpowercell"))
log_manager.writeLog("Successfully loaded nixon-power-cell-spr.txt.");
//Enemy Placements
if (!resource_manager.loadSprite("sprites/mortar-spr.txt", "mortar"))
log_manager.writeLog("Successfully loaded mortar-spr.txt.");
//Miscellaneuos
if (!resource_manager.loadSprite("sprites/title-screen-spr.txt", "titlescreenimage"))
log_manager.writeLog("Successfully loaded title-screen-spr.txt.");
//Load sounds
if (!resource_manager.loadSound("sounds/gun-shot.wav", "gun-shot"))
log_manager.writeLog("Successfully loaded gun-shot.wav.");
if (!resource_manager.loadSound("sounds/gun-impact.wav", "gun-impact"))
log_manager.writeLog("Successfully loaded gun-impact.wav.");
if (!resource_manager.loadSound("sounds/cannon-shot.wav", "cannon-shot"))
log_manager.writeLog("Successfully loaded cannon-shot.wav.");
if (!resource_manager.loadSound("sounds/chopper-props.wav", "chopper-props"))
log_manager.writeLog("Successfully loaded chopper-props.wav.");
}