summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2011-05-18 20:51:48 +0000
committerLudovic Pouzenc <ludovic@pouzenc.fr>2011-05-18 20:51:48 +0000
commitea5e9410fb2262cece0ba6af67616e292bdaaa1a (patch)
treeba48a006fffae9e8a574a7b6b37b522e3dca3b74 /src
parenta78cf8caf05e0c8072bf8616585d0105fe5ab1e2 (diff)
download2010-netlemmings-ea5e9410fb2262cece0ba6af67616e292bdaaa1a.tar.gz
2010-netlemmings-ea5e9410fb2262cece0ba6af67616e292bdaaa1a.tar.bz2
2010-netlemmings-ea5e9410fb2262cece0ba6af67616e292bdaaa1a.zip
Ajout de quelques infos dans la doc, ajout de la procédure updateDriftOnEventReception() dans timing, et utilisantion sur le client netlem.c, ajout de qques commentaires
git-svn-id: file:///var/svn/2010-netlemmings/trunk@220 077b3477-7977-48bd-8428-443f22f7bfda
Diffstat (limited to 'src')
-rw-r--r--src/game.c2
-rw-r--r--src/include/timing.h1
-rw-r--r--src/netlem.c5
-rw-r--r--src/timing.c5
4 files changed, 11 insertions, 2 deletions
diff --git a/src/game.c b/src/game.c
index a51b015..ce56b0e 100644
--- a/src/game.c
+++ b/src/game.c
@@ -4,6 +4,8 @@
#include "game.h"
#include "utils.h"
+//TODO : faire de sorte que ce module gère les retours dans le passé (garder une situation "commitée" qui est daté du dernier évènement envoyé par le serveur) et bonds dans le futur (skip frames ou recalcul si évènement du passé reçu à l'instant)
+
void play(tick_t tick, gameObjectsState_t *objStates) {
if (tick%100==0) { } //printf("tick==%i\n",tick); }
diff --git a/src/include/timing.h b/src/include/timing.h
index 927a30a..238d11d 100644
--- a/src/include/timing.h
+++ b/src/include/timing.h
@@ -8,5 +8,6 @@
tick_t getGameCurrentTick(Uint32 startTime_ms);
int waitForNextTick(Uint32 timeBefore_ms, Uint32 drift_ms);
+Uint32 updateDriftOnEventReception(tick_t localCurrentTick, tick_t eventServerTick);
#endif /*TIME_H*/
diff --git a/src/netlem.c b/src/netlem.c
index 63741d5..beb994d 100644
--- a/src/netlem.c
+++ b/src/netlem.c
@@ -287,11 +287,12 @@ int networkReadProc(void *a) {
if (result != 0) {
logs(LOG_WARN, "networkReadProc(), receiveEvents() error");
changeState(eEnd);
- continue; //TODO : je doute que ça skipe vriament la syncrho du temps :s
+ continue;
}
// logs(LOG_DEBUG, "Got event");
- *(args->drift_ms)=( *(args->tick) - e.serverTick );
+ //FIXME : WTF dans cette gestion de temps ??? Ou est l'implémentation réelle telle que décrite dans archi.txt
+ *(args->drift_ms)=updateDriftOnEventReception(*(args->tick), e.serverTick );
*(args->lastServerTick)=e.serverTick;
// sprintf(logMsg, "serverTick==%i, tick==%i, drift_ms==%i\n", e.serverTick, *(args->tick), *(args->drift_ms));
// logs(LOG_DEBUG, logMsg);
diff --git a/src/timing.c b/src/timing.c
index 896b973..fa05df4 100644
--- a/src/timing.c
+++ b/src/timing.c
@@ -17,3 +17,8 @@ inline int waitForNextTick(Uint32 timeBefore_ms, Uint32 drift_ms) {
}
return 0;
}
+
+inline Uint32 updateDriftOnEventReception(tick_t localCurrentTick, tick_t eventServerTick) {
+ //FIXME : WTF dans cette gestion de temps ??? Ou est l'implémentation réelle telle que décrite dans archi.txt ??
+ return localCurrentTick - eventServerTick;
+}