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 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
|
/* $Id: help.c,v 1.14 2004-12-26 04:19:20 stpohle Exp $
* Display complex help text and information screen about the game
*/
#include "bomberclone.h"
#include "menu.h"
#include "player.h"
/*
* show the manual pages
*/
void help (int showpage) {
int page = showpage, menuselect = 2, y = 0;
char title[255];
_menu *menu;
menu_displaytext ("Please Wait", "Loading GFX Data");
if (page < 0 || page >= HP_max)
page = 0;
while (menuselect != -1 && menuselect != 1 && bman.state != GS_quit) {
if (page == HP_howto0) {
sprintf (title, "How To Play (%d/%d)", page + 1, HP_max);
menu = menu_new (title, 500, 400);
menu_create_text (menu, "help", 5, 55, 53, 20, COLOR_brown,
"The goal of the game is to be the last one, "
"who is alive. You can drop bombs which will explode after "
"a certain time and destroy everything in horizontal and vertical "
"direction. So you can remove stones or kill other players. But take care. "
"Don't kill yourself otherwise the game will be over for you. During the "
"game you will find diffrenent powerups to raise your skills. If you are "
"running faster than your opponent and you have many bombs, you can catch "
"him within lots of bombs and he has no chance to escape.");
menu_create_image (menu, "img", 450, 255, 0, gfx.players[0].menu_image, NULL);
menu_create_text (menu, "help", 5, 255, 45, 10, COLOR_brown,
"You will get points for every player you have killed. "
"If you win the game, you can earn additional points "
"depending on how many players played the game. ");
}
else if (page == HP_powerup0) {
sprintf (title, "Powerups (%d/%d)", page + 1, HP_max);
menu = menu_new (title, 500, 400);
y = 50;
menu_create_text (menu, "help", 5, y, 53, 10, COLOR_brown,
"In the game you will find some diffend kind of powerups. "
"There are the powerups who give you more power for the whole game "
"and the special powerups which will hold only for a certain time.");
y += 75;
menu_create_label (menu, "Permanent Powerups", -1, y, 2, COLOR_yellow);
y += (5 + font[2].size.y);
menu_create_image (menu, "bomb", 5, y, 0, gfx.menu_field[FT_bomb], NULL);
menu_create_text (menu, "help", 55, y, 45, 10, COLOR_brown,
"Give you another bomb to drop. Maximum number of bombs is %d.", MAX_BOMBS);
y += 40;
menu_create_image (menu, "fire", 5, y, 1, gfx.menu_field[FT_fire], NULL);
menu_create_text (menu, "help", 55, y, 45, 10, COLOR_brown,
"The range of your bombs will be increased. Maximum range is %d.", MAX_RANGE);
y += 40;
menu_create_image (menu, "shoe", 5, y, 1, gfx.menu_field[FT_shoe], NULL);
menu_create_text (menu, "help", 55, y, 45, 10, COLOR_brown,
"This will make your player run faster. The maximum speed will be %1.2f.", MAX_SPEED);
y += 40;
menu_create_text (menu, "help", 5, y, 53, 10, COLOR_brown,
"Depends how the game is set up, you'll lose "
"these powerups if you die. Other players can collect them. "
"In the deathmatch mode you can keep the powerups you collected, "
"but this depends on the Game if you drop them or not.");
y += 40;
}
else if (page == HP_powerup1) {
sprintf (title, "Powerups (%d/%d)", page + 1, HP_max);
menu = menu_new (title, 500, 400);
y = 45;
menu_create_label (menu, "Special Powerups", -1, y, 2, COLOR_yellow);
y += (5 + font[2].size.y);
menu_create_image (menu, "kick", 5, y, 1, gfx.menu_field[FT_sp_kick], NULL);
menu_create_text (menu, "help", 55, y, 48, 10, COLOR_brown,
"Allowes you to kick some bombs around the level. This will hold "
"just a short time of %d seconds. The maximum distance you can "
"kick the bombs is %d fields.", SPECIAL_KICK_TIME, SPECIAL_KICK_MAXDIST);
y += 70;
menu_create_image (menu, "push", 5, y, 1, gfx.menu_field[FT_sp_push], NULL);
menu_create_text (menu, "help", 55, y, 48, 10, COLOR_brown,
"Push bombs one field, as long as nothing is behind this bomb.");
y += 40;
menu_create_image (menu, "droprow", 5, y, 1, gfx.menu_field[FT_sp_row], NULL);
menu_create_text (menu, "help", 55, y, 48, 10, COLOR_brown,
"You can drop a row of that many bombs you have still left to drop.");
y += 40;
menu_create_image (menu, "dropliquid", 5, y, 1, gfx.menu_field[FT_sp_liquid], NULL);
menu_create_text (menu, "help", 55, y, 48, 10, COLOR_brown,
"The bomb you push now won't stop moving until they explode.");
y += 40;
menu_create_image (menu, "dropliquid", 5, y, 1, gfx.menu_field[FT_sp_moved], NULL);
menu_create_text (menu, "help", 55, y, 45, 10, COLOR_brown,
"The bomb you push will stop moving on the next border or bomb.");
y += 40;
menu_create_image (menu, "dropltrigger", 5, y, 1, gfx.menu_field[FT_sp_trigger], NULL);
menu_create_text (menu, "help", 55, y, 45, 10, COLOR_brown,
"You will be able to drop triggered bombs. Use "
"the special key to let all your bombs explode. "
"at the time where you want it.");
y += 40;
}
else if (page == HP_powerup2) {
sprintf (title, "Powerups (%d/%d)", page + 1, HP_max);
menu = menu_new (title, 500, 400);
y = 45;
menu_create_label (menu, "Death Item", -1, y, 2, COLOR_yellow);
y += (5 + font[2].size.y);
menu_create_text (menu, "help", 5, y, 53, 10, COLOR_brown,
"In the game you will find another type of item to collect. "
"This item is not a powerup at all. If you collect it you will "
"get a random illness. This illness will hold for %dseconds. "
"If you have contact to another player the other player will "
"get all the illnesses you have too.", ILL_TIMEOUT);
y += 110;
menu_create_image (menu, "pwdeath", 12, y+8, 1, gfx.menu_field[FT_death], NULL);
menu_create_text (menu, "help", 55, y, 45, 10, COLOR_brown,
"This will make your player ill. We have at the moment %d different "
"types of illnesses for you to collect. To make the game more", PI_max);
y += 3*font[0].size.y;
menu_create_text (menu, "help", 5, y, 53, 10, COLOR_brown,
"interesting we won't put here a list of all types there are.");
}
else if (page == HP_keyboard0) {
sprintf (title, "Keyboard (%d/%d)", page + 1, HP_max);
menu = menu_new (title, 500, 400);
y = 50;
menu_create_label (menu, "During a Game", -1, y, 2, COLOR_yellow);
y += font[2].size.y;
menu_create_image (menu, "img", 450, 100, 0, gfx.players[7].menu_image, NULL);
menu_create_text (menu, "help", 5, y, 53, 10, COLOR_brown,
"Arrow Keys - Moving of the Player\n"
"STRG/CTRL - Dropping bombs\n"
"Shift - Special Use Key\n"
"F4 - Start the Game (only Server)\n"
"F8 - Fullscreen (not in Windows)\n"
"Return - Send Entered Text Message\n"
"ESC - Exit Game\n");
y += 7*font[0].size.y;
menu_create_label (menu, "Player Selection", -1, y, 2, COLOR_yellow);
y += font[2].size.y;
menu_create_text (menu, "help", 5, y, 53, 10, COLOR_brown,
"Left/Right - Select and Deselect a Player\n"
"F1 - Mini Help Screen\n"
"F2 - Player Screen\n"
"F3 - Map and Game Settings\n"
"F4 - Start the Game if at last 2 Players\n"
" are selected. (only Server)\n"
"ESC - Exit Game\n");
}
else if (page == HP_credit0) {
sprintf (title, "About BomberClone (%d/%d)", page + 1, HP_max);
menu = menu_new (title, 500, 400);
menu_create_image (menu, "img", 15, 60, 0, gfx.players[4].menu_image, NULL);
menu_create_text (menu, "help", 75, 50, 45, 10, COLOR_brown,
"If you have any problems or questions with the game you can send your questions "
"to the mailinglist or directly to me. Bugfixes should be send to the SourceForge "
"Projects page about BomberClone.");
menu_create_label (menu, "WWW",-1, 140, 2, COLOR_yellow);
menu_create_text (menu, "help", -1, 165, 53, 10, COLOR_brown, "http://www.bomberclone.de");
menu_create_label (menu, "EMail",-1, 185, 2, COLOR_yellow);
menu_create_text (menu, "help", -1, 210, 53, 10, COLOR_brown, "steffen@bomberclone.de");
menu_create_label (menu, "Project Page",-1, 230, 2, COLOR_yellow);
menu_create_text (menu, "help", -1, 255, 53, 10, COLOR_brown, "http://sourceforge.net/projects/bomberclone");
}
else if (page == HP_credit1) {
sprintf (title, "People (%d/%d)", page + 1, HP_max);
menu = menu_new (title, 500, 400);
menu_create_image (menu, "img", 250, 100, 0, gfx.players[6].menu_image, NULL);
y = 50;
menu_create_label (menu, "Coding:", 5, y, 2, COLOR_yellow);
y += font[2].size.y;
menu_create_text (menu, "help", 50, y, 53, 10, COLOR_brown,
" Steffen Pohle\n"
"Patrick Wilczek\n");
y = 100;
menu_create_label (menu, "GFX:", 425, y, 2, COLOR_yellow);
y += font[2].size.y;
menu_create_text (menu, "help", 325, y, 53, 10, COLOR_brown,
"TekkRat\n"
"Martijn de Boer\n"
"Steffen Pohle\n"
"Patrick Wilczek\n");
y = 140;
menu_create_label (menu, "Sound/Music:", 5, y, 2, COLOR_yellow);
y += font[2].size.y;
menu_create_text (menu, "help", 50, y, 53, 10, COLOR_brown,
"Henrik_Enqvist\n"
"Cerror\n"
"Martijn de Boer\n");
y = 240;
menu_create_label (menu, "Thanks To:", -1, y, 2, COLOR_yellow);
y += font[2].size.y;
menu_create_text (menu, "help", -1, y, 53, 10, COLOR_brown,
"kitutou(coding/fixing), thaphool(tilesets), ob1kenewb(coding/fixing), "
"TeKkraT(website,gfx), caccola(tilesets), Digital_D(music), "
"dcdillon(coding), Psycho(music),\nNiklas Sj\xf6sv\xe4rd(music)");
}
else break;
if (page > 0) menu_create_button (menu, "Previous Page", 20, 370, 150, 0);
else if (menuselect == 0)
menuselect = 2;
menu_create_button (menu, "Main Menu", -1, 370, 150, 1);
if (page < HP_max-1) menu_create_button (menu, "Next Page", 350, 370, 150, 2);
menu_focus_id (menu, menuselect);
menuselect = menu_loop (menu);
if (menuselect == 0 && page > 0)
page--;
if (menuselect == 2 && page < HP_max - 1)
page++;
menu_delete (menu);
}
};
|