summaryrefslogtreecommitdiff
path: root/src/screen_world.c
diff options
context:
space:
mode:
authororoborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-06-12 16:36:13 +0000
committeroroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-06-12 16:36:13 +0000
commit9751218f594526982877332d6ca0fa90b67bbb7b (patch)
tree2acbc70e3d8432bb80ef70470bda75ba93bc2593 /src/screen_world.c
parent4919e623c6695a80aaf96187253756dcbb72bf87 (diff)
- prva cast prepisu kodu pre pozuivanie space_t a space_t API, ktore je optimalizovany pre ukladanie informacii o
objektoch vo velkych mapach. POZOR: nie je vhodne kompilovat ako gameserver ( pre istotu to ani nejde ) // este to msusim doorbit :) git-svn-id: http://opensvn.csie.org/tuxanci_ng@63 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/screen_world.c')
-rw-r--r--src/screen_world.c57
1 files changed, 34 insertions, 23 deletions
diff --git a/src/screen_world.c b/src/screen_world.c
index de2d591..077153f 100644
--- a/src/screen_world.c
+++ b/src/screen_world.c
@@ -43,6 +43,9 @@ static my_time_t lastServerLag;
static bool_t isScreenWorldInit = FALSE;
static bool_t isEndWorld;
+static tux_t *tuxWithControlRightKeyboard;
+static tux_t *tuxWithControlLeftKeyboard;
+
bool_t isScreenWorldInicialized()
{
return isScreenWorldInit;
@@ -65,7 +68,6 @@ void setWorldArena(int id)
{
arena = getArena(id);
playMusic(arena->music, MUSIC_GROUP_USER);
- setCurrentArena(arena);
}
void setMaxCountRound(int n)
@@ -118,29 +120,32 @@ void prepareArena()
{
case NET_GAME_TYPE_NONE :
setWorldArena( getChoiceArenaId() );
- addNewItem(arena->listItem, ID_UNKNOWN);
+ addNewItem(arena->spaceItem, ID_UNKNOWN);
getSettingCountRound(&max_count);
tux = newTux();
tux->control = TUX_CONTROL_KEYBOARD_RIGHT;
+ tuxWithControlRightKeyboard = tux;
getSettingNameRight(tux->name);
- addList(arena->listTux, tux);
+ addObjectToSpace(arena->spaceTux, tux);
tux = newTux();
tux->control = TUX_CONTROL_KEYBOARD_LEFT;
+ tuxWithControlLeftKeyboard = tux;
getSettingNameLeft(tux->name);
- addList(arena->listTux, tux);
+ addObjectToSpace(arena->spaceTux, tux);
break;
case NET_GAME_TYPE_SERVER :
setWorldArena( getChoiceArenaId() );
- addNewItem(arena->listItem, ID_UNKNOWN);
+ addNewItem(arena->spaceItem, ID_UNKNOWN);
getSettingCountRound(&max_count);
tux = newTux();
tux->control = TUX_CONTROL_KEYBOARD_RIGHT;
+ tuxWithControlRightKeyboard = tux;
getSettingNameRight(tux->name);
- addList(arena->listTux, tux);
+ addObjectToSpace(arena->spaceTux, tux);
break;
case NET_GAME_TYPE_CLIENT :
@@ -172,10 +177,9 @@ void drawWorld()
if( arena != NULL )
{
drawArena(arena);
- drawPanel(arena->listTux);
+ drawPanel(arena->spaceTux->list);
}
- drawModule();
drawTerm();
}
@@ -393,25 +397,32 @@ static void eventEnd()
tux_t* getControlTux(int control_type)
{
- arena_t *arena;
- tux_t *thisTux;
- int i;
-
- arena = getCurrentArena();
-
- for( i = 0 ; i < arena->listTux->count ; i++ )
+ switch(control_type)
{
- thisTux = (tux_t *)(arena->listTux->list[i]);
-
- if( thisTux->control == control_type )
- {
- return thisTux;
- }
+ 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 );
@@ -479,9 +490,9 @@ static void setAnalyze()
restartAnalyze();
- for( i = 0 ; i < arena->listTux->count ; i++ )
+ for( i = 0 ; i < arena->spaceTux->list->count ; i++ )
{
- tux = (tux_t *)(arena->listTux->list[i]);
+ tux = (tux_t *)(arena->spaceTux->list->list[i]);
addAnalyze(tux->name, tux->score);
}