summaryrefslogtreecommitdiff
path: root/src/screen/world.c
diff options
context:
space:
mode:
authorTomas Chvatal <scarabeus@gentoo.org>2009-02-07 17:52:36 +0100
committerTomas Chvatal <scarabeus@gentoo.org>2009-02-07 17:52:36 +0100
commitdc1bd4d1dcf8713bc5be0e9a154d44b43f71ddf8 (patch)
treeb0372c2abc47ac869f654acc786131740ee146a9 /src/screen/world.c
parenteecde9b1f70397367f3f0dea4c47f27064f13fc0 (diff)
Revert "Revert "Revert "First pass renaming sreen and widgets."""
This reverts commit 87821f04c9565450d8e724be76993ae5ea2c20c4.
Diffstat (limited to 'src/screen/world.c')
-rw-r--r--src/screen/world.c609
1 files changed, 0 insertions, 609 deletions
diff --git a/src/screen/world.c b/src/screen/world.c
deleted file mode 100644
index 5fa3ecd..0000000
--- a/src/screen/world.c
+++ /dev/null
@@ -1,609 +0,0 @@
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "main.h"
-#include "list.h"
-#include "tux.h"
-#include "item.h"
-#include "shot.h"
-#include "gun.h"
-#include "myTimer.h"
-#include "net_multiplayer.h"
-#include "arena.h"
-#include "arenaFile.h"
-#include "proto.h"
-#include "modules.h"
-#include "idManager.h"
-#include "serverSendMsg.h"
-
-#include "interface.h"
-#include "layer.h"
-#include "image.h"
-#include "font.h"
-
-#include "hotKey.h"
-#include "panel.h"
-#include "radar.h"
-#include "chat.h"
-#include "pauza.h"
-#include "term.h"
-#include "saveDialog.h"
-#include "saveLoad.h"
-
-#ifndef NO_SOUND
-# include "music.h"
-# include "sound.h"
-#endif
-
-#include "screen.h"
-#include "world.h"
-#include "analyze.h"
-#include "setting.h"
-#include "gameType.h"
-#include "settingKeys.h"
-#include "choiceArena.h"
-#include "table.h"
-
-
-static arena_t *arena;
-static bool_t isScreenWorldInit = FALSE;
-static bool_t isEndWorld;
-
-static tux_t *tuxWithControlRightKeyboard;
-static tux_t *tuxWithControlLeftKeyboard;
-
-bool_t isScreenWorldInicialized()
-{
- return isScreenWorldInit;
-}
-
-void setGameType()
-{
- int ret = 0;
-
- ret = initNetMuliplayer(getSettingGameType(), getSettingIP(),
- getSettingPort(), getSettingProto());
-
- if (ret != 0) {
- fprintf(stderr, _("Network initialization error!\n"));
- setWorldEnd();
- }
-}
-
-void setWorldArena(arenaFile_t * arenaFile)
-{
- arena = getArena(arenaFile);
-
-#ifndef NO_SOUND
- playMusic(arena->music, MUSIC_GROUP_USER);
-#endif
-}
-
-void setWorldEnd()
-{
- isEndWorld = TRUE;
-}
-
-static void timer_endArena()
-{
- if (getNetTypeGame() != NET_GAME_TYPE_CLIENT) {
- setWorldEnd();
- return;
- }
-}
-
-void countRoundInc()
-{
- if (arena->max_countRound == WORLD_COUNT_ROUND_UNLIMITED ||
- arena->countRound >= arena->max_countRound) {
- return;
- }
-
- arena->countRound++;
- //printf("count %d/%d\n", count, max_count);
-
- if (arena->countRound >= arena->max_countRound) {
- //printf("count %d ending\n", count);
-#ifndef NO_SOUND
- playSound("end", SOUND_GROUP_BASE);
-#endif
- addTaskToTimer(getCurrentArena()->listTimer, TIMER_ONE, timer_endArena, NULL, TIMER_END_ARENA);
- }
-}
-
-void prepareArena()
-{
- tux_t *tux;
- char name[STR_NAME_SIZE];
-
- //printf("getSettingAI = %s\n", getSettingAI());
- setCurrentArena(NULL);
- tuxWithControlRightKeyboard = NULL;
- tuxWithControlLeftKeyboard = NULL;
-
- if (getGemeTypeLoadSession() != NULL) {
- loadArena(getGemeTypeLoadSession());
- return;
- }
-
- switch (getNetTypeGame()) {
- case NET_GAME_TYPE_NONE:
- setWorldArena(getChoiceArena());
- addNewItem(arena->spaceItem, ID_UNKNOWN);
- getSettingCountRound(&arena->max_countRound);
-
- tux = newTux();
- tux->control = TUX_CONTROL_KEYBOARD_RIGHT;
- tuxWithControlRightKeyboard = tux;
- getSettingNameRight(name);
- tuxSetName(tux, name);
- addObjectToSpace(arena->spaceTux, tux);
-
- tux = newTux();
- tux->control = TUX_CONTROL_KEYBOARD_LEFT;
- tuxWithControlLeftKeyboard = tux;
- getSettingNameLeft(name);
- tuxSetName(tux, name);
- addObjectToSpace(arena->spaceTux, tux);
-
- if (isSettingAI()) {
- tux->control = TUX_CONTROL_AI;
-
- if (loadModule("libmodAI") != 0) {
- tux->control = TUX_CONTROL_KEYBOARD_LEFT;
- }
- }
- //printf("getGemeTypeLoadSession = %s\n", getGemeTypeLoadSession());
-
- break;
-
- case NET_GAME_TYPE_SERVER:
- setWorldArena(getChoiceArena());
- addNewItem(arena->spaceItem, ID_UNKNOWN);
- getSettingCountRound(&arena->max_countRound);
-
- tux = newTux();
- tux->control = TUX_CONTROL_KEYBOARD_RIGHT;
- tuxWithControlRightKeyboard = tux;
- getSettingNameRight(name);
- tuxSetName(tux, name);
- addObjectToSpace(arena->spaceTux, tux);
- break;
-
- case NET_GAME_TYPE_CLIENT:
- break;
- }
-}
-
-void drawWorld()
-{
- if (arena != NULL) {
- drawArena(arena);
- drawPanel(tuxWithControlRightKeyboard, tuxWithControlLeftKeyboard);
-
- if (arena->w > WINDOW_SIZE_X || arena->h > WINDOW_SIZE_Y) {
- drawRadar(arena);
- }
- }
-
- drawChat();
- drawPauza();
- drawTerm();
- drawSaveDialog();
-}
-
-static void netAction(tux_t * tux, int action)
-{
- if (getSettingGameType() == NET_GAME_TYPE_SERVER) {
- proto_send_event_server(PROTO_SEND_ALL_SEES_TUX, NULL, tux, action);
- }
-
- if (getSettingGameType() == NET_GAME_TYPE_CLIENT) {
- proto_send_event_client(action);
- }
-}
-
-static void control_keyboard_right(tux_t * tux)
-{
- static int lastKey = 0;
- int countKey;
- Uint8 *mapa;
- mapa = SDL_GetKeyState(NULL);
-
- assert(tux != NULL);
- assert(mapa != NULL);
-
- countKey = 0;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_MOVE_UP)] == SDL_PRESSED)
- countKey++;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_MOVE_RIGHT)] == SDL_PRESSED)
- countKey++;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_MOVE_LEFT)] == SDL_PRESSED)
- countKey++;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_MOVE_DOWN)] == SDL_PRESSED)
- countKey++;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_SWITCH_WEAPON)] == SDL_PRESSED
- && tux->isCanSwitchGun == TRUE) {
- netAction(tux, TUX_SWITCH_GUN);
- actionTux(tux, TUX_SWITCH_GUN);
- return;
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_SHOOT)] == SDL_PRESSED
- && tux->isCanShot == TRUE) {
- netAction(tux, TUX_SHOT);
- actionTux(tux, TUX_SHOT);
- return;
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_MOVE_UP)] == SDL_PRESSED) {
- if (countKey > 1 && lastKey == getKey(KEY_TUX_RIGHT_MOVE_UP))
- goto tuUp;
-
- if (countKey == 1)
- lastKey = getKey(KEY_TUX_RIGHT_MOVE_UP);
- netAction(tux, TUX_UP);
- actionTux(tux, TUX_UP);
- return;
-
- tuUp:;
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_MOVE_RIGHT)] == SDL_PRESSED) {
- if (countKey > 1 && lastKey == getKey(KEY_TUX_RIGHT_MOVE_RIGHT))
- goto tuRight;
-
- if (countKey == 1)
- lastKey = getKey(KEY_TUX_RIGHT_MOVE_RIGHT);
- netAction(tux, TUX_RIGHT);
- actionTux(tux, TUX_RIGHT);
- return;
-
- tuRight:;
-
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_MOVE_LEFT)] == SDL_PRESSED) {
- if (countKey > 1 && lastKey == getKey(KEY_TUX_RIGHT_MOVE_LEFT))
- goto tuLeft;
-
- if (countKey == 1)
- lastKey = getKey(KEY_TUX_RIGHT_MOVE_LEFT);
- netAction(tux, TUX_LEFT);
- actionTux(tux, TUX_LEFT);
- return;
-
- tuLeft:;
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_RIGHT_MOVE_DOWN)] == SDL_PRESSED) {
- if (countKey > 1 && lastKey == getKey(KEY_TUX_RIGHT_MOVE_DOWN))
- goto tuDown;
-
- if (countKey == 1)
- lastKey = getKey(KEY_TUX_RIGHT_MOVE_DOWN);
- netAction(tux, TUX_DOWN);
- actionTux(tux, TUX_DOWN);
- return;
-
- tuDown:;
- }
-}
-
-static void control_keyboard_left(tux_t * tux)
-{
- static int lastKey = 0;
- int countKey;
- Uint8 *mapa;
- mapa = SDL_GetKeyState(NULL);
-
- assert(tux != NULL);
- assert(mapa != NULL);
-
- countKey = 0;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_MOVE_UP)] == SDL_PRESSED)
- countKey++;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_MOVE_RIGHT)] == SDL_PRESSED)
- countKey++;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_MOVE_LEFT)] == SDL_PRESSED)
- countKey++;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_MOVE_DOWN)] == SDL_PRESSED)
- countKey++;
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_SWITCH_WEAPON)] == SDL_PRESSED) {
- if (tux->isCanSwitchGun == TRUE) {
- actionTux(tux, TUX_SWITCH_GUN);
- return;
- }
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_SHOOT)] == SDL_PRESSED
- && tux->isCanShot == TRUE) {
- actionTux(tux, TUX_SHOT);
- return;
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_MOVE_UP)] == SDL_PRESSED) {
- if (countKey > 1 && lastKey == getKey(KEY_TUX_LEFT_MOVE_UP))
- goto tuUp;
-
- if (countKey == 1)
- lastKey = getKey(KEY_TUX_LEFT_MOVE_UP);
- actionTux(tux, TUX_UP);
- return;
-
- tuUp:;
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_MOVE_RIGHT)] == SDL_PRESSED) {
- if (countKey > 1 && lastKey == getKey(KEY_TUX_LEFT_MOVE_RIGHT))
- goto tuRight;
-
- if (countKey == 1)
- lastKey = getKey(KEY_TUX_LEFT_MOVE_RIGHT);
- actionTux(tux, TUX_RIGHT);
- return;
-
- tuRight:;
-
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_MOVE_LEFT)] == SDL_PRESSED) {
- if (countKey > 1 && lastKey == getKey(KEY_TUX_LEFT_MOVE_LEFT))
- goto tuLeft;
-
- if (countKey == 1)
- lastKey = getKey(KEY_TUX_LEFT_MOVE_LEFT);
- actionTux(tux, TUX_LEFT);
- return;
-
- tuLeft:;
- }
-
- if (mapa[(SDLKey) getKey(KEY_TUX_LEFT_MOVE_DOWN)] == SDL_PRESSED) {
- if (countKey > 1 && lastKey == getKey(KEY_TUX_LEFT_MOVE_DOWN))
- goto tuDown;
-
- if (countKey == 1)
- lastKey = getKey(KEY_TUX_LEFT_MOVE_DOWN);
- actionTux(tux, TUX_DOWN);
- return;
-
- tuDown:;
- }
-}
-
-static void eventEnd()
-{
- if (isEndWorld == TRUE) {
- setScreen("analyze");
- return;
- }
-}
-
-tux_t *getControlTux(int control_type)
-{
- switch (control_type) {
- case TUX_CONTROL_KEYBOARD_RIGHT:
- return tuxWithControlRightKeyboard;
- break;
- case TUX_CONTROL_KEYBOARD_LEFT:
- return tuxWithControlLeftKeyboard;
- break;
- }
-
- return NULL;
-}
-
-void setControlTux(tux_t * tux, int control_type)
-{
- switch (control_type) {
- case TUX_CONTROL_KEYBOARD_RIGHT:
- tuxWithControlRightKeyboard = tux;
- break;
- case TUX_CONTROL_KEYBOARD_LEFT:
- tuxWithControlLeftKeyboard = tux;
- break;
- }
-}
-
-void tuxControl(tux_t * p)
-{
- assert(p != NULL);
-
- if (p->status != TUX_STATUS_ALIVE) {
- return;
- }
-
- switch (p->control) {
- case TUX_CONTROL_NONE:
- assert(!_("Tux has not defined controls!"));
- break;
-
- case TUX_CONTROL_KEYBOARD_LEFT:
- if (isChatActive() == FALSE) {
- control_keyboard_left(p);
- }
- break;
-
- case TUX_CONTROL_KEYBOARD_RIGHT:
- if (isChatActive() == FALSE) {
- control_keyboard_right(p);
- }
- break;
- }
-}
-
-void eventWorld()
-{
- tux_t *thisTux;
-
- if (arena == NULL) {
- eventNetMultiplayer();
- eventEnd();
- return;
- }
-
- eventNetMultiplayer();
-
- if (isPauzeActive() == FALSE && isSaveDialogActive() == FALSE) {
- eventArena(arena);
- //eventModule();
- }
-
- thisTux = getControlTux(TUX_CONTROL_KEYBOARD_RIGHT);
-
- addToRadar(thisTux->id, thisTux->x, thisTux->y, RADAR_TYPE_YOU);
-
- thisTux = getControlTux(TUX_CONTROL_KEYBOARD_LEFT);
-
- if (thisTux != NULL) {
- addToRadar(thisTux->id, thisTux->x, thisTux->y, RADAR_TYPE_TUX);
- }
-
- eventEnd();
- eventChat();
- eventPauza();
- eventTerm();
- eventSaveDialog();
-
-}
-
-static void hotkey_escape()
-{
- setWorldEnd();
-}
-
-void startWorld()
-{
- arena = NULL;
- isEndWorld = FALSE;
-
- registerHotKey(SDLK_ESCAPE, hotkey_escape);
- initArena();
- initListID();
- initRadar();
- initPauza();
- initTerm();
- initSaveDialog();
-
- initModule();
- setGameType();
- initChat();
- prepareArena();
-}
-
-static void action_analyze(space_t * space, tux_t * tux, void *p)
-{
- addAnalyze(tux->name, tux->score);
-}
-
-static void setAnalyze()
-{
- restartAnalyze();
-
- actionSpace(arena->spaceTux, action_analyze, NULL);
-
- endAnalyze();
-}
-
-static void setTable()
-{
- tux_t *tuxRight;
- tux_t *tuxLeft;
-
- if (getSettingGameType() != NET_GAME_TYPE_NONE) {
- return;
- }
-
- tuxRight = getControlTux(TUX_CONTROL_KEYBOARD_RIGHT);
- tuxLeft = getControlTux(TUX_CONTROL_KEYBOARD_LEFT);
-
- if (tuxRight->score > tuxLeft->score) {
- addPlayerInHighScore(tuxRight->name, tuxRight->score);
- }
-
- if (tuxLeft->score > tuxRight->score) {
- addPlayerInHighScore(tuxLeft->name, tuxLeft->score);
- }
-}
-
-void stoptWorld()
-{
- if (arena != NULL) {
- setTable();
- setAnalyze();
- }
-
- unregisterHotKey(SDLK_ESCAPE);
- quitArena();
-
- quitNetMultiplayer();
-
- if (arena != NULL) {
- destroyArena(arena);
- }
-
- quitRadar();
- quitPauza();
- quitTerm();
- quitSaveDialog();
-
-
-#ifndef NO_SOUND
- stopMusic();
-#endif
- delAllImageInGroup(IMAGE_GROUP_USER);
-
-#ifndef NO_SOUND
- delAllMusicInGroup(MUSIC_GROUP_USER);
-#endif
- quitModule();
- quitChat();
- quitListID();
-}
-
-void initWorld()
-{
- assert(isImageInicialized() == TRUE);
- assert(isTuxInicialized() == TRUE);
- assert(isShotInicialized() == TRUE);
- assert(isPanelInicialized() == TRUE);
- assert(isScreenInicialized() == TRUE);
-
- registerScreen(newScreen
- ("world", startWorld, eventWorld, drawWorld, stoptWorld));
-
-#ifndef NO_SOUND
- addSound("dead.ogg", "dead", SOUND_GROUP_BASE);
- addSound("explozion.ogg", "explozion", SOUND_GROUP_BASE);
- addSound("gun_lasser.ogg", "gun_lasser", SOUND_GROUP_BASE);
- addSound("gun_revolver.ogg", "gun_revolver", SOUND_GROUP_BASE);
- addSound("gun_scatter.ogg", "gun_scatter", SOUND_GROUP_BASE);
- addSound("gun_tommy.ogg", "gun_tommy", SOUND_GROUP_BASE);
- addSound("put_mine.ogg", "put_mine", SOUND_GROUP_BASE);
- addSound("teleport.ogg", "teleport", SOUND_GROUP_BASE);
- addSound("item_bonus.ogg", "item_bonus", SOUND_GROUP_BASE);
- addSound("item_gun.ogg", "item_gun", SOUND_GROUP_BASE);
- addSound("switch_gun.ogg", "switch_gun", SOUND_GROUP_BASE);
- addSound("end.ogg", "end", SOUND_GROUP_BASE);
-#endif
-
- isScreenWorldInit = TRUE;
-}
-
-void quitWorld()
-{
- DEBUG_MSG(_("Quitting screen world\n"));
- isScreenWorldInit = FALSE;
-}