summaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authororoborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-07-17 13:12:28 +0000
committeroroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-07-17 13:12:28 +0000
commit727e15323c6f1a902495d9b155ddbdbfa95f2f46 (patch)
tree41d64011a95c659d7353f7f2a5cd86c1494261a5 /src/base
parent7efb51e2cb64a417d9d18ba0064c84abad265dad (diff)
- maximalny pocet ID je 1 000 000
- maximalny pocet item sa nastavuje v configu MAX_ITEM ( parameter --max-item ) git-svn-id: http://opensvn.csie.org/tuxanci_ng@152 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/base')
-rw-r--r--src/base/arenaFile.c5
-rw-r--r--src/base/idManager.c6
-rw-r--r--src/base/idManager.h2
-rw-r--r--src/base/item.c8
-rw-r--r--src/base/proto.c1
-rw-r--r--src/base/shot.c10
6 files changed, 19 insertions, 13 deletions
diff --git a/src/base/arenaFile.c b/src/base/arenaFile.c
index f64cc1c..06aaa50 100644
--- a/src/base/arenaFile.c
+++ b/src/base/arenaFile.c
@@ -238,8 +238,9 @@ void initArenaFile()
isArenaFileInit = TRUE;
listArenaFile = newList();
+
p = loadDirector(PATH_ARENA);
- printf ("Pocet aren: %d\n", p->list->count);
+
for( i = 0 ; i < p->list->count ; i++ )
{
char *line;
@@ -259,6 +260,8 @@ void initArenaFile()
}
}
+ printf("pocet aren: %d\n", listArenaFile->count);
+
destroyDirector(p);
}
diff --git a/src/base/idManager.c b/src/base/idManager.c
index ee77239..b4217ae 100644
--- a/src/base/idManager.c
+++ b/src/base/idManager.c
@@ -68,6 +68,11 @@ static int findNewID()
assert( listID != NULL );
+ if( listID->count >= MAX_ID-1 )
+ {
+ assert( ! "ziaden ID uz nie je volny !" );
+ }
+
do{
ret = random() % MAX_ID;
@@ -138,6 +143,7 @@ void delID(int id)
if( this->count <= 0 )
{
delListItem(listID, index, free);
+ //printf("listID->count = %d\n", listID->count);
}
return;
diff --git a/src/base/idManager.h b/src/base/idManager.h
index cdd51e9..c80ff7c 100644
--- a/src/base/idManager.h
+++ b/src/base/idManager.h
@@ -4,7 +4,7 @@
#define ID_MANAGER_H
-#define MAX_ID 1000
+#define MAX_ID 1000000
#define ID_UNKNOWN -1
#ifdef __WIN32__
diff --git a/src/base/item.c b/src/base/item.c
index d5ca081..ef83066 100644
--- a/src/base/item.c
+++ b/src/base/item.c
@@ -29,6 +29,7 @@
#ifdef PUBLIC_SERVER
#include "publicServer.h"
+#include "publicServer.h"
#endif
#ifndef PUBLIC_SERVER
@@ -173,6 +174,13 @@ void addNewItem(space_t *spaceItem, int author_id)
int new_x, new_y;
int type;
+#ifdef PUBLIC_SERVER
+ if( spaceItem->list->count >= atoi( getSetting("MAX_ITEM", "--max-item", "100") ) )
+ {
+ return;
+ }
+#endif
+
#ifndef PUBLIC_SERVER
if( isSettingAnyItem() == FALSE ||
getNetTypeGame() == NET_GAME_TYPE_CLIENT )
diff --git a/src/base/proto.c b/src/base/proto.c
index 1de5ad4..6d4c2f2 100644
--- a/src/base/proto.c
+++ b/src/base/proto.c
@@ -676,7 +676,6 @@ void proto_recv_shot_client(char *msg)
sscanf(msg, "%s %d %d %d %d %d %d %d %d %d",
cmd, &shot_id, &x, &y, &px, &py, &position, &gun, &author_id, &isCanKillAuthor);
-
if( ( shot = getObjectFromSpaceWithID(getCurrentArena()->spaceShot, shot_id) ) != NULL )
{
delObjectFromSpaceWithObject(getCurrentArena()->spaceShot, shot, destroyShot);
diff --git a/src/base/shot.c b/src/base/shot.c
index 1b657c2..c631a26 100644
--- a/src/base/shot.c
+++ b/src/base/shot.c
@@ -70,11 +70,6 @@ shot_t* newShot(int x,int y, int px, int py, int gun, int author_id)
new->gun = gun;
new->author_id = author_id;
- if( author_id != ID_UNKNOWN )
- {
- incID(author_id);
- }
-
new->position = POSITION_UNKNOWN;
author = getObjectFromSpaceWithID(getCurrentArena()->spaceTux, author_id);
@@ -363,11 +358,6 @@ void destroyShot(shot_t *p)
delID(p->id);
- if( p->author_id != ID_UNKNOWN )
- {
- delID(p->author_id);
- }
-
free(p);
}