mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
WIP multiplayer changes, still completely broken.
git-svn-id: https://svn.eduke32.com/eduke32@2664 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
5941bf013c
commit
1c1da97378
13 changed files with 679 additions and 1730 deletions
|
@ -36,7 +36,7 @@ else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OURCFLAGS=$(BASECFLAGS) \
|
OURCFLAGS=$(BASECFLAGS) \
|
||||||
-I$(INC) -I$(EINC) -I$(SRC)/jmact -I$(JAUDIOLIBDIR)/include -I$(ENETDIR)/include
|
-I$(INC) -I$(EINC) -I$(SRC)/jmact -I$(JAUDIOLIBDIR)/include -I$(ENETDIR)/include -I$(SRC)/xdelta3
|
||||||
|
|
||||||
OURCXXFLAGS=$(BASECXXFLAGS)
|
OURCXXFLAGS=$(BASECXXFLAGS)
|
||||||
OURCONLYFLAGS=$(BASECONLYFLAGS)
|
OURCONLYFLAGS=$(BASECONLYFLAGS)
|
||||||
|
@ -122,6 +122,7 @@ GAMEOBJS=$(OBJ)/game.$o \
|
||||||
$(OBJ)/osdcmds.$o \
|
$(OBJ)/osdcmds.$o \
|
||||||
$(OBJ)/grpscan.$o \
|
$(OBJ)/grpscan.$o \
|
||||||
$(OBJ)/sounds.$o \
|
$(OBJ)/sounds.$o \
|
||||||
|
$(OBJ)/xdelta3/xdelta3.$o \
|
||||||
$(JMACTOBJ)
|
$(JMACTOBJ)
|
||||||
|
|
||||||
EDITOROBJS=$(OBJ)/astub.$o \
|
EDITOROBJS=$(OBJ)/astub.$o \
|
||||||
|
@ -458,7 +459,7 @@ $(RSRC)/editor_banner.c: $(RSRC)/build.bmp
|
||||||
# PHONIES
|
# PHONIES
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm -f $(OBJ)/* eduke32$(EXESUFFIX) eduke32$(EXESUFFIX).memmap mapster32$(EXESUFFIX) mapster32$(EXESUFFIX).memmap core* duke3d_w32$(EXESUFFIX) && $(MAKE) -C $(JAUDIOLIBDIR) clean && $(MAKE) -C $(ENETDIR) clean
|
-rm -rf $(OBJ)/* eduke32$(EXESUFFIX) eduke32$(EXESUFFIX).memmap mapster32$(EXESUFFIX) mapster32$(EXESUFFIX).memmap core* duke3d_w32$(EXESUFFIX) && $(MAKE) -C $(JAUDIOLIBDIR) clean && $(MAKE) -C $(ENETDIR) clean
|
||||||
ifeq ($(PLATFORM),DARWIN)
|
ifeq ($(PLATFORM),DARWIN)
|
||||||
-rm -rf EDuke32.app Mapster32.app
|
-rm -rf EDuke32.app Mapster32.app
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -52,9 +52,8 @@ $(OBJ)/config.$o: $(SRC)/config.c $(duke3d_h) $(SRC)/jmact/scriplib.h $(INC)/_fu
|
||||||
$(OBJ)/winbits.$o: $(SRC)/winbits.c
|
$(OBJ)/winbits.$o: $(SRC)/winbits.c
|
||||||
$(OBJ)/osdfuncs.$o: $(SRC)/names.h $(EINC)/build.h $(EINC)/osd.h
|
$(OBJ)/osdfuncs.$o: $(SRC)/names.h $(EINC)/build.h $(EINC)/osd.h
|
||||||
$(OBJ)/osdcmds.$o: $(SRC)/osdcmds.c $(INC)/osdcmds.h $(EINC)/osd.h $(duke3d_h)
|
$(OBJ)/osdcmds.$o: $(SRC)/osdcmds.c $(INC)/osdcmds.h $(EINC)/osd.h $(duke3d_h)
|
||||||
|
$(OBJ)/xdelta3/xdelta3.$o: $(SRC)/xdelta3/xdelta3.c $(SRC)/xdelta3/xdelta3.h
|
||||||
$(OBJ)/animvpx.$o: $(SRC)/animvpx.c $(SRC)/animvpx.h $(duke3d_h) $(EINC)/glbuild.h
|
$(OBJ)/animvpx.$o: $(SRC)/animvpx.c $(SRC)/animvpx.h $(duke3d_h) $(EINC)/glbuild.h
|
||||||
|
|
||||||
$(OBJ)/lunatic/lunatic.$o: $(SRC)/lunatic/lunatic.c $(SRC)/lunatic/lunatic.h $(EINC)/cache1d.h $(EINC)/osd.h
|
$(OBJ)/lunatic/lunatic.$o: $(SRC)/lunatic/lunatic.c $(SRC)/lunatic/lunatic.h $(EINC)/cache1d.h $(EINC)/osd.h
|
||||||
|
|
||||||
# editor objects
|
# editor objects
|
||||||
|
@ -113,20 +112,6 @@ $(OBJ)/mouse.$o: $(SRC)/jmact/mouse.c $(SRC)/jmact/mouse.h $(EINC)/baselayer.h
|
||||||
$(OBJ)/mathutil.$o: $(SRC)/jmact/mathutil.c $(EINC)/compat.h $(EINC)/pragmas.h
|
$(OBJ)/mathutil.$o: $(SRC)/jmact/mathutil.c $(EINC)/compat.h $(EINC)/pragmas.h
|
||||||
$(OBJ)/scriplib.$o: $(SRC)/jmact/scriplib.c $(SRC)/jmact/scriplib.h $(SRC)/jmact/_scrplib.h $(EINC)/compat.h
|
$(OBJ)/scriplib.$o: $(SRC)/jmact/scriplib.c $(SRC)/jmact/scriplib.h $(SRC)/jmact/_scrplib.h $(EINC)/compat.h
|
||||||
|
|
||||||
# jAudioLib objects
|
|
||||||
|
|
||||||
$(OBJ)/mv_mix.$o: $(SRC)/jaudiolib/mv_mix.nasm
|
|
||||||
$(OBJ)/mv_mix16.$o: $(SRC)/jaudiolib/mv_mix16.nasm
|
|
||||||
$(OBJ)/mvreverb.$o: $(SRC)/jaudiolib/mvreverb.nasm
|
|
||||||
$(OBJ)/mv_mix-c.$o: $(SRC)/jaudiolib/mv_mix-c.c
|
|
||||||
$(OBJ)/mvreverb-c.$o: $(SRC)/jaudiolib/mvreverb-c.c
|
|
||||||
$(OBJ)/pitch.$o: $(SRC)/jaudiolib/pitch.c $(SRC)/jaudiolib/pitch.h
|
|
||||||
$(OBJ)/multivoc.$o: $(SRC)/jaudiolib/multivoc.c $(SRC)/jaudiolib/linklist.h $(SRC)/jaudiolib/pitch.h $(SRC)/jaudiolib/multivoc.h $(SRC)/jaudiolib/_multivc.h
|
|
||||||
$(OBJ)/fx_man.$o: $(SRC)/jaudiolib/fx_man.c $(SRC)/jaudiolib/multivoc.h $(SRC)/jaudiolib/ll_man.h $(JAUDIOLIBDIR)/include/fx_man.h
|
|
||||||
$(OBJ)/dsoundout.$o: $(SRC)/jaudiolib/dsoundout.c $(SRC)/jaudiolib/dsoundout.h
|
|
||||||
$(OBJ)/openal.$o: $(SRC)/jaudiolib/openal.c $(SRC)/jaudiolib/openal.h
|
|
||||||
$(OBJ)/dsl.$o: $(SRC)/jaudiolib/dsl.c $(SRC)/jaudiolib/dsl.h $(EINC)/compat.h
|
|
||||||
|
|
||||||
$(OBJ)/midi.$o: $(SRC)/midi.c $(SRC)/_midi.h $(SRC)/midi.h $(JAUDIOLIBDIR)/include/music.h
|
$(OBJ)/midi.$o: $(SRC)/midi.c $(SRC)/_midi.h $(SRC)/midi.h $(JAUDIOLIBDIR)/include/music.h
|
||||||
$(OBJ)/mpu401.$o: $(SRC)/mpu401.c $(SRC)/mpu401.h $(JAUDIOLIBDIR)/include/music.h
|
$(OBJ)/mpu401.$o: $(SRC)/mpu401.c $(SRC)/mpu401.h $(JAUDIOLIBDIR)/include/music.h
|
||||||
$(OBJ)/music.$o: $(SRC)/music.c $(SRC)/midi.h $(SRC)/mpu401.h $(JAUDIOLIBDIR)/include/music.h
|
$(OBJ)/music.$o: $(SRC)/music.c $(SRC)/midi.h $(SRC)/mpu401.h $(JAUDIOLIBDIR)/include/music.h
|
||||||
|
|
|
@ -40,7 +40,7 @@ AS=ml
|
||||||
LINK=link /nologo /opt:ref
|
LINK=link /nologo /opt:ref
|
||||||
MT=mt
|
MT=mt
|
||||||
CFLAGS= /MT /J /nologo $(flags_cl) \
|
CFLAGS= /MT /J /nologo $(flags_cl) \
|
||||||
/I$(INC) /I$(EINC)\msvc /I$(EINC)\ /I$(SRC)\jmact /I$(JAUDIOLIBDIR)\include /I$(ENETDIR)\include \
|
/I$(INC) /I$(EINC)\msvc /I$(EINC)\ /I$(SRC)\jmact /I$(SRC)\xdelta3 /I$(JAUDIOLIBDIR)\include /I$(ENETDIR)\include \
|
||||||
/W2 $(ENGINEOPTS) \
|
/W2 $(ENGINEOPTS) \
|
||||||
/I$(DXROOT)\include /DRENDERTYPEWIN=1
|
/I$(DXROOT)\include /DRENDERTYPEWIN=1
|
||||||
|
|
||||||
|
@ -97,6 +97,7 @@ GAMEOBJS=$(OBJ)\game.$o \
|
||||||
$(JMACTOBJ) \
|
$(JMACTOBJ) \
|
||||||
$(AUDIOLIBOBJ) \
|
$(AUDIOLIBOBJ) \
|
||||||
$(OBJ)\sounds.$o \
|
$(OBJ)\sounds.$o \
|
||||||
|
$(OBJ)\xdelta3.$o \
|
||||||
!ifdef DEBUG
|
!ifdef DEBUG
|
||||||
$(OBJ)\mdump.$o
|
$(OBJ)\mdump.$o
|
||||||
!endif
|
!endif
|
||||||
|
@ -124,6 +125,9 @@ EDITOROBJS=$(OBJ)\astub.$o \
|
||||||
{$(SRC)\jmact}.c{$(OBJ)\}.$o:
|
{$(SRC)\jmact}.c{$(OBJ)\}.$o:
|
||||||
$(CC) /c $(CFLAGS) /Fo$@ $<
|
$(CC) /c $(CFLAGS) /Fo$@ $<
|
||||||
|
|
||||||
|
{$(SRC)\xdelta3}.c{$(OBJ)\}.$o:
|
||||||
|
$(CC) /c $(CFLAGS) /Fo$@ $<
|
||||||
|
|
||||||
{$(SRC)\util}.c{$(OBJ)\}.$o:
|
{$(SRC)\util}.c{$(OBJ)\}.$o:
|
||||||
$(CC) /c $(CFLAGS) /Fo$@ $<
|
$(CC) /c $(CFLAGS) /Fo$@ $<
|
||||||
|
|
||||||
|
|
|
@ -249,7 +249,8 @@ SKIPWALLCHECK:
|
||||||
actor[j].extra = hp1 + (krand()%(hp2-hp1));
|
actor[j].extra = hp1 + (krand()%(hp2-hp1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sprite[j].picnum != TANK && sprite[j].picnum != ROTATEGUN && sprite[j].picnum != RECON && sprite[j].picnum != BOSS1 && sprite[j].picnum != BOSS2 && sprite[j].picnum != BOSS3 && sprite[j].picnum != BOSS4)
|
if (sprite[j].picnum != TANK && sprite[j].picnum != ROTATEGUN && sprite[j].picnum != RECON && sprite[j].picnum != BOSS1 &&
|
||||||
|
sprite[j].picnum != BOSS2 && sprite[j].picnum != BOSS3 && sprite[j].picnum != BOSS4)
|
||||||
{
|
{
|
||||||
if (sj->xvel < 0) sj->xvel = 0;
|
if (sj->xvel < 0) sj->xvel = 0;
|
||||||
sj->xvel += (s->extra<<2);
|
sj->xvel += (s->extra<<2);
|
||||||
|
|
|
@ -87,7 +87,7 @@ extern "C" {
|
||||||
#define TICSPERFRAME 4
|
#define TICSPERFRAME 4
|
||||||
#define TICRATE 120
|
#define TICRATE 120
|
||||||
|
|
||||||
#define PACKBUF_SIZE 2048
|
#define PACKBUF_SIZE 16384
|
||||||
|
|
||||||
#define TILE_SAVESHOT (MAXTILES-1)
|
#define TILE_SAVESHOT (MAXTILES-1)
|
||||||
#define TILE_LOADSHOT (MAXTILES-3)
|
#define TILE_LOADSHOT (MAXTILES-3)
|
||||||
|
|
|
@ -10698,19 +10698,6 @@ MAIN_LOOP_RESTART:
|
||||||
case 2: goto MAIN_LOOP_RESTART;
|
case 2: goto MAIN_LOOP_RESTART;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (g_netClient && g_multiMapState)
|
|
||||||
{
|
|
||||||
for (i=g_gameVarCount-1; i>=0; i--)
|
|
||||||
{
|
|
||||||
if (aGameVars[i].dwFlags & GAMEVAR_USER_MASK)
|
|
||||||
g_multiMapState->vars[i] = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
G_RestoreMapState(g_multiMapState);
|
|
||||||
g_player[myconnectindex].ps->gm = MODE_GAME;
|
|
||||||
Bfree(g_multiMapState);
|
|
||||||
g_multiMapState = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_networkMode == NET_DEDICATED_SERVER)
|
if (g_networkMode == NET_DEDICATED_SERVER)
|
||||||
{
|
{
|
||||||
|
|
|
@ -68,7 +68,7 @@ typedef struct {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char *szLabel;
|
char *szLabel;
|
||||||
int32_t *plValues; // array of values
|
intptr_t *plValues; // array of values
|
||||||
intptr_t size;
|
intptr_t size;
|
||||||
intptr_t bReset;
|
intptr_t bReset;
|
||||||
} gamearray_t;
|
} gamearray_t;
|
||||||
|
|
|
@ -160,7 +160,7 @@ int32_t CONTROL_FlagActive( int32_t which );
|
||||||
void CONTROL_ClearAssignments( void );
|
void CONTROL_ClearAssignments( void );
|
||||||
void CONTROL_GetInput( ControlInfo *info );
|
void CONTROL_GetInput( ControlInfo *info );
|
||||||
void CONTROL_ClearButton( int32_t whichbutton );
|
void CONTROL_ClearButton( int32_t whichbutton );
|
||||||
float CONTROL_MouseSensitivity;
|
extern float CONTROL_MouseSensitivity;
|
||||||
int32_t CONTROL_Startup
|
int32_t CONTROL_Startup
|
||||||
(
|
(
|
||||||
controltype which,
|
controltype which,
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -25,91 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "enet/enet.h"
|
#include "enet/enet.h"
|
||||||
|
|
||||||
#define NET_SECTOR_WALLPTR 0x00000001
|
#define NET_REVISIONS 64
|
||||||
#define NET_SECTOR_WALLNUM 0x00000002
|
|
||||||
#define NET_SECTOR_CEILINGZ 0x00000004
|
|
||||||
#define NET_SECTOR_FLOORZ 0x00000008
|
|
||||||
#define NET_SECTOR_CEILINGSTAT 0x00000010
|
|
||||||
#define NET_SECTOR_FLOORSTAT 0x00000020
|
|
||||||
#define NET_SECTOR_CEILINGPIC 0x00000040
|
|
||||||
#define NET_SECTOR_CEILINGSLOPE 0x00000080
|
|
||||||
#define NET_SECTOR_CEILINGSHADE 0x00000100
|
|
||||||
#define NET_SECTOR_CEILINGPAL 0x00000200
|
|
||||||
#define NET_SECTOR_CEILINGXPAN 0x00000400
|
|
||||||
#define NET_SECTOR_CEILINGYPAN 0x00000800
|
|
||||||
#define NET_SECTOR_FLOORPIC 0x00001000
|
|
||||||
#define NET_SECTOR_FLOORSLOPE 0x00002000
|
|
||||||
#define NET_SECTOR_FLOORSHADE 0x00004000
|
|
||||||
#define NET_SECTOR_FLOORPAL 0x00008000
|
|
||||||
#define NET_SECTOR_FLOORXPAN 0x00010000
|
|
||||||
#define NET_SECTOR_FLOORYPAN 0x00020000
|
|
||||||
#define NET_SECTOR_VISIBILITY 0x00040000
|
|
||||||
#define NET_SECTOR_LOTAG 0x00080000
|
|
||||||
#define NET_SECTOR_HITAG 0x00100000
|
|
||||||
#define NET_SECTOR_EXTRA 0x00200000
|
|
||||||
|
|
||||||
#define NET_WALL_X 0x00000001
|
|
||||||
#define NET_WALL_Y 0x00000002
|
|
||||||
#define NET_WALL_POINT2 0x00000004
|
|
||||||
#define NET_WALL_NEXTWALL 0x00000008
|
|
||||||
#define NET_WALL_NEXTSECTOR 0x00000010
|
|
||||||
#define NET_WALL_CSTAT 0x00000020
|
|
||||||
#define NET_WALL_PICNUM 0x00000040
|
|
||||||
#define NET_WALL_OVERPICNUM 0x00000080
|
|
||||||
#define NET_WALL_SHADE 0x00000100
|
|
||||||
#define NET_WALL_PAL 0x00000200
|
|
||||||
#define NET_WALL_XREPEAT 0x00000400
|
|
||||||
#define NET_WALL_YREPEAT 0x00000800
|
|
||||||
#define NET_WALL_XPANNING 0x00001000
|
|
||||||
#define NET_WALL_YPANNING 0x00002000
|
|
||||||
#define NET_WALL_LOTAG 0x00004000
|
|
||||||
#define NET_WALL_HITAG 0x00008000
|
|
||||||
#define NET_WALL_EXTRA 0x00010000
|
|
||||||
|
|
||||||
#define NET_SPRITE_X 0x00000001
|
|
||||||
#define NET_SPRITE_Y 0x00000002
|
|
||||||
#define NET_SPRITE_Z 0x00000004
|
|
||||||
#define NET_SPRITE_SHADE 0x00000008
|
|
||||||
#define NET_SPRITE_PAL 0x00000010
|
|
||||||
#define NET_SPRITE_CLIPDIST 0x00000020
|
|
||||||
#define NET_SPRITE_XREPEAT 0x00000040
|
|
||||||
#define NET_SPRITE_YREPEAT 0x00000080
|
|
||||||
#define NET_SPRITE_XOFFSET 0x00000100
|
|
||||||
#define NET_SPRITE_YOFFSET 0x00000200
|
|
||||||
#define NET_SPRITE_SECTNUM 0x00000400
|
|
||||||
#define NET_SPRITE_STATNUM 0x00000800
|
|
||||||
#define NET_SPRITE_ANG 0x00001000
|
|
||||||
#define NET_SPRITE_OWNER 0x00002000
|
|
||||||
#define NET_SPRITE_XVEL 0x00004000
|
|
||||||
#define NET_SPRITE_YVEL 0x00008000
|
|
||||||
#define NET_SPRITE_ZVEL 0x00010000
|
|
||||||
#define NET_SPRITE_LOTAG 0x00020000
|
|
||||||
#define NET_SPRITE_HITAG 0x00040000
|
|
||||||
#define NET_SPRITE_EXTRA 0x00080000
|
|
||||||
#define NET_SPRITE_CSTAT 0x00100000
|
|
||||||
#define NET_SPRITE_PICNUM 0x00200000
|
|
||||||
|
|
||||||
#define NET_ACTOR_T1 0x00000001
|
|
||||||
#define NET_ACTOR_T2 0x00000002
|
|
||||||
#define NET_ACTOR_T3 0x00000004
|
|
||||||
#define NET_ACTOR_T4 0x00000008
|
|
||||||
#define NET_ACTOR_T5 0x00000010
|
|
||||||
#define NET_ACTOR_T6 0x00000020
|
|
||||||
#define NET_ACTOR_T7 0x00000040
|
|
||||||
#define NET_ACTOR_T8 0x00000080
|
|
||||||
#define NET_ACTOR_T9 0x00000100
|
|
||||||
#define NET_ACTOR_T10 0x00000200
|
|
||||||
#define NET_ACTOR_PICNUM 0x00000400
|
|
||||||
#define NET_ACTOR_ANG 0x00000800
|
|
||||||
#define NET_ACTOR_EXTRA 0x00001000
|
|
||||||
#define NET_ACTOR_OWNER 0x00002000
|
|
||||||
#define NET_ACTOR_MOVFLAG 0x00004000
|
|
||||||
#define NET_ACTOR_TEMPANG 0x00008000
|
|
||||||
#define NET_ACTOR_TIMETOSLEEP 0x00010000
|
|
||||||
#define NET_ACTOR_FLAGS 0x00020000
|
|
||||||
#define NET_ACTOR_PTR1 0x00040000
|
|
||||||
#define NET_ACTOR_PTR2 0x00080000
|
|
||||||
#define NET_ACTOR_PTR3 0x00100000
|
|
||||||
|
|
||||||
enum netchan_t
|
enum netchan_t
|
||||||
{
|
{
|
||||||
|
@ -171,20 +87,63 @@ enum netmode_t
|
||||||
NET_DEDICATED_SERVER
|
NET_DEDICATED_SERVER
|
||||||
};
|
};
|
||||||
|
|
||||||
extern ENetHost *g_netClient;
|
#pragma pack(push,1)
|
||||||
extern ENetHost *g_netServer;
|
typedef struct {
|
||||||
extern ENetPeer *g_netClientPeer;
|
int32_t revision;
|
||||||
extern char g_netPassword[32];
|
int32_t animategoal[MAXANIMATES], animatevel[MAXANIMATES], g_animateCount;
|
||||||
extern int32_t g_netDisconnect;
|
int32_t animateptr[MAXANIMATES];
|
||||||
extern int32_t g_netPlayersWaiting;
|
// int32_t lockclock;
|
||||||
extern int32_t g_netPort;
|
int32_t msx[2048], msy[2048];
|
||||||
extern int32_t g_networkMode;
|
int32_t randomseed, g_globalRandom;
|
||||||
extern int32_t g_netSync;
|
|
||||||
extern int32_t lastsectupdate[MAXSECTORS];
|
int16_t SpriteDeletionQueue[1024],g_spriteDeleteQueuePos;
|
||||||
extern int32_t lastupdate[MAXSPRITES];
|
int16_t animatesect[MAXANIMATES];
|
||||||
extern int32_t lastwallupdate[MAXWALLS];
|
int16_t cyclers[MAXCYCLERS][6];
|
||||||
extern int16_t g_netStatnums[10];
|
int16_t g_mirrorWall[64], g_mirrorSector[64], g_mirrorCount;
|
||||||
extern mapstate_t *g_multiMapState;
|
int16_t g_numAnimWalls;
|
||||||
|
int16_t g_numCyclers;
|
||||||
|
int16_t headspritesect[MAXSECTORS+1];
|
||||||
|
int16_t headspritestat[MAXSTATUS+1];
|
||||||
|
int16_t nextspritesect[MAXSPRITES];
|
||||||
|
int16_t nextspritestat[MAXSPRITES];
|
||||||
|
int16_t numsectors;
|
||||||
|
int16_t numwalls;
|
||||||
|
int16_t prevspritesect[MAXSPRITES];
|
||||||
|
int16_t prevspritestat[MAXSPRITES];
|
||||||
|
|
||||||
|
uint8_t g_earthquakeTime;
|
||||||
|
uint8_t g_numPlayerSprites;
|
||||||
|
uint8_t scriptptrs[MAXSPRITES];
|
||||||
|
|
||||||
|
netactor_t actor[MAXSPRITES];
|
||||||
|
playerspawn_t g_playerSpawnPoints[MAXPLAYERS];
|
||||||
|
animwalltype animwall[MAXANIMWALLS];
|
||||||
|
sectortype sector[MAXSECTORS];
|
||||||
|
spriteext_t spriteext[MAXSPRITES];
|
||||||
|
spritetype sprite[MAXSPRITES];
|
||||||
|
walltype wall[MAXWALLS];
|
||||||
|
uint32_t crc;
|
||||||
|
} netmapstate_t;
|
||||||
|
|
||||||
|
extern netmapstate_t *g_multiMapState[MAXPLAYERS];
|
||||||
|
extern netmapstate_t *g_multiMapRevisions[NET_REVISIONS];
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
extern int32_t g_netMapRevision;
|
||||||
|
extern ENetHost *g_netClient;
|
||||||
|
extern ENetHost *g_netServer;
|
||||||
|
extern ENetPeer *g_netClientPeer;
|
||||||
|
extern char g_netPassword[32];
|
||||||
|
extern int32_t g_netDisconnect;
|
||||||
|
extern int32_t g_netPlayersWaiting;
|
||||||
|
extern int32_t g_netPort;
|
||||||
|
extern int32_t g_networkMode;
|
||||||
|
extern int32_t g_netSync;
|
||||||
|
extern int32_t lastsectupdate[MAXSECTORS];
|
||||||
|
extern int32_t lastupdate[MAXSPRITES];
|
||||||
|
extern int32_t lastwallupdate[MAXWALLS];
|
||||||
|
extern int16_t g_netStatnums[10];
|
||||||
|
|
||||||
|
|
||||||
int32_t Net_PackSprite(int32_t i,uint8_t *pbuf);
|
int32_t Net_PackSprite(int32_t i,uint8_t *pbuf);
|
||||||
int32_t Net_UnpackSprite(int32_t i,uint8_t *pbuf);
|
int32_t Net_UnpackSprite(int32_t i,uint8_t *pbuf);
|
||||||
|
@ -197,6 +156,7 @@ void Net_NewGame(int32_t volume,int32_t level);
|
||||||
void Net_ParseClientPacket(ENetEvent *event);
|
void Net_ParseClientPacket(ENetEvent *event);
|
||||||
void Net_ParseServerPacket(ENetEvent *event);
|
void Net_ParseServerPacket(ENetEvent *event);
|
||||||
void Net_ResetPrediction(void);
|
void Net_ResetPrediction(void);
|
||||||
|
void Net_RestoreMapState(netmapstate_t *save);
|
||||||
void Net_SendClientInfo(void);
|
void Net_SendClientInfo(void);
|
||||||
void Net_SendUserMapName(void);
|
void Net_SendUserMapName(void);
|
||||||
void Net_StreamLevel(void);
|
void Net_StreamLevel(void);
|
||||||
|
|
|
@ -3165,6 +3165,8 @@ static int32_t P_DoCounters(DukePlayer_t *p)
|
||||||
// j = g_player[snum].sync->avel;
|
// j = g_player[snum].sync->avel;
|
||||||
// p->weapon_ang = -(j/5);
|
// p->weapon_ang = -(j/5);
|
||||||
|
|
||||||
|
if (snum < 0) return 1;
|
||||||
|
|
||||||
if (p->invdisptime > 0)
|
if (p->invdisptime > 0)
|
||||||
p->invdisptime--;
|
p->invdisptime--;
|
||||||
|
|
||||||
|
@ -3521,16 +3523,16 @@ void P_CheckWeapon(DukePlayer_t *p)
|
||||||
else p->weapon_pos = -1;
|
else p->weapon_pos = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void P_CheckTouchDamage(DukePlayer_t *p,int32_t j)
|
void P_CheckTouchDamage(DukePlayer_t *p, int32_t obj)
|
||||||
{
|
{
|
||||||
if ((j = VM_OnEvent(EVENT_CHECKTOUCHDAMAGE, p->i, sprite[p->i].yvel, -1, j)) == -1)
|
if ((obj = VM_OnEvent(EVENT_CHECKTOUCHDAMAGE, p->i, sprite[p->i].yvel, -1, obj)) == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((j&49152) == 49152)
|
if ((obj&49152) == 49152)
|
||||||
{
|
{
|
||||||
j &= (MAXSPRITES-1);
|
obj &= (MAXSPRITES-1);
|
||||||
|
|
||||||
if (sprite[j].picnum == CACTUS)
|
if (sprite[obj].picnum == CACTUS)
|
||||||
{
|
{
|
||||||
if (p->hurt_delay < 8)
|
if (p->hurt_delay < 8)
|
||||||
{
|
{
|
||||||
|
@ -3544,13 +3546,13 @@ void P_CheckTouchDamage(DukePlayer_t *p,int32_t j)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((j&49152) != 32768) return;
|
if ((obj&49152) != 32768) return;
|
||||||
j &= (MAXWALLS-1);
|
obj &= (MAXWALLS-1);
|
||||||
|
|
||||||
if (p->hurt_delay > 0) p->hurt_delay--;
|
if (p->hurt_delay > 0) p->hurt_delay--;
|
||||||
else if (wall[j].cstat&85)
|
else if (wall[obj].cstat&85)
|
||||||
{
|
{
|
||||||
int32_t switchpicnum = wall[j].overpicnum;
|
int32_t switchpicnum = wall[obj].overpicnum;
|
||||||
if ((switchpicnum>W_FORCEFIELD)&&(switchpicnum<=W_FORCEFIELD+2))
|
if ((switchpicnum>W_FORCEFIELD)&&(switchpicnum<=W_FORCEFIELD+2))
|
||||||
switchpicnum=W_FORCEFIELD;
|
switchpicnum=W_FORCEFIELD;
|
||||||
|
|
||||||
|
@ -3574,7 +3576,7 @@ void P_CheckTouchDamage(DukePlayer_t *p,int32_t j)
|
||||||
davect.x = p->pos.x+(sintable[(p->ang+512)&2047]>>9);
|
davect.x = p->pos.x+(sintable[(p->ang+512)&2047]>>9);
|
||||||
davect.y = p->pos.y+(sintable[p->ang&2047]>>9);
|
davect.y = p->pos.y+(sintable[p->ang&2047]>>9);
|
||||||
davect.z = p->pos.z;
|
davect.z = p->pos.z;
|
||||||
A_DamageWall(p->i,j,&davect,-1);
|
A_DamageWall(p->i,obj,&davect,-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -3587,7 +3589,7 @@ void P_CheckTouchDamage(DukePlayer_t *p,int32_t j)
|
||||||
davect.x = p->pos.x+(sintable[(p->ang+512)&2047]>>9);
|
davect.x = p->pos.x+(sintable[(p->ang+512)&2047]>>9);
|
||||||
davect.y = p->pos.y+(sintable[p->ang&2047]>>9);
|
davect.y = p->pos.y+(sintable[p->ang&2047]>>9);
|
||||||
davect.z = p->pos.z;
|
davect.z = p->pos.z;
|
||||||
A_DamageWall(p->i,j,&davect,-1);
|
A_DamageWall(p->i,obj,&davect,-1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3595,14 +3597,14 @@ void P_CheckTouchDamage(DukePlayer_t *p,int32_t j)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t P_CheckFloorDamage(DukePlayer_t *p, int32_t j)
|
int32_t P_CheckFloorDamage(DukePlayer_t *p, int32_t tex)
|
||||||
{
|
{
|
||||||
spritetype *s = &sprite[p->i];
|
spritetype *s = &sprite[p->i];
|
||||||
|
|
||||||
if ((unsigned)(j = VM_OnEvent(EVENT_CHECKFLOORDAMAGE, p->i, sprite[p->i].yvel, -1, j)) >= MAXTILES)
|
if ((unsigned)(tex = VM_OnEvent(EVENT_CHECKFLOORDAMAGE, p->i, sprite[p->i].yvel, -1, tex)) >= MAXTILES)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
switch (DYNAMICTILEMAP(j))
|
switch (DYNAMICTILEMAP(tex))
|
||||||
{
|
{
|
||||||
case HURTRAIL__STATIC:
|
case HURTRAIL__STATIC:
|
||||||
if (rnd(32))
|
if (rnd(32))
|
||||||
|
|
|
@ -215,6 +215,7 @@ typedef struct {
|
||||||
|
|
||||||
char vote, gotvote, pingcnt, playerquitflag;
|
char vote, gotvote, pingcnt, playerquitflag;
|
||||||
char user_name[32];
|
char user_name[32];
|
||||||
|
uint32_t revision;
|
||||||
} playerdata_t;
|
} playerdata_t;
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,6 @@ typedef struct {
|
||||||
int32_t lockclock;
|
int32_t lockclock;
|
||||||
int32_t msx[2048], msy[2048];
|
int32_t msx[2048], msy[2048];
|
||||||
int32_t randomseed, g_globalRandom;
|
int32_t randomseed, g_globalRandom;
|
||||||
intptr_t *vars[MAXGAMEVARS];
|
|
||||||
|
|
||||||
int16_t SpriteDeletionQueue[1024],g_spriteDeleteQueuePos;
|
int16_t SpriteDeletionQueue[1024],g_spriteDeleteQueuePos;
|
||||||
int16_t animatesect[MAXANIMATES];
|
int16_t animatesect[MAXANIMATES];
|
||||||
|
@ -78,6 +77,8 @@ typedef struct {
|
||||||
spriteext_t spriteext[MAXSPRITES];
|
spriteext_t spriteext[MAXSPRITES];
|
||||||
spritetype sprite[MAXSPRITES];
|
spritetype sprite[MAXSPRITES];
|
||||||
walltype wall[MAXWALLS];
|
walltype wall[MAXWALLS];
|
||||||
|
|
||||||
|
intptr_t *vars[MAXGAMEVARS];
|
||||||
#ifdef YAX_ENABLE
|
#ifdef YAX_ENABLE
|
||||||
int32_t numyaxbunches;
|
int32_t numyaxbunches;
|
||||||
int16_t yax_bunchnum[MAXSECTORS][2];
|
int16_t yax_bunchnum[MAXSECTORS][2];
|
||||||
|
|
Loading…
Reference in a new issue