mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
git-svn-id: https://svn.eduke32.com/eduke32@1631 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
cda6330cc2
commit
e1649b9d0b
6 changed files with 79 additions and 193 deletions
|
@ -24,7 +24,7 @@ $(OBJ)/osd.$o: $(SRC)/osd.c $(INC)/build.h $(INC)/osd.h $(INC)/compat.h $(INC)/b
|
|||
$(OBJ)/pragmas.$o: $(SRC)/pragmas.c $(INC)/compat.h
|
||||
$(OBJ)/scriptfile.$o: $(SRC)/scriptfile.c $(INC)/scriptfile.h $(INC)/cache1d.h $(INC)/compat.h
|
||||
$(OBJ)/sdlayer.$o: $(SRC)/sdlayer.c $(INC)/compat.h $(INC)/sdlayer.h $(INC)/baselayer.h $(INC)/cache1d.h $(INC)/pragmas.h $(INC)/a.h $(INC)/build.h $(INC)/osd.h $(INC)/glbuild.h
|
||||
$(OBJ)/winlayer.$o: $(SRC)/winlayer.c $(INC)/compat.h $(INC)/winlayer.h $(INC)/baselayer.h $(INC)/pragmas.h $(INC)/build.h $(INC)/a.h $(INC)/osd.h $(INC)/dxdidf.h $(INC)/glbuild.h
|
||||
$(OBJ)/winlayer.$o: $(SRC)/winlayer.c $(INC)/compat.h $(INC)/winlayer.h $(INC)/baselayer.h $(INC)/pragmas.h $(INC)/build.h $(INC)/a.h $(INC)/osd.h $(INC)/dxdidf.h $(INC)/glbuild.h $(INC)/rawinput.h
|
||||
$(OBJ)/gtkbits.$o: $(SRC)/gtkbits.c $(INC)/baselayer.h $(INC)/build.h $(INC)/dynamicgtk.h
|
||||
$(OBJ)/dynamicgtk.$o: $(SRC)/dynamicgtk.c $(INC)/dynamicgtk.h
|
||||
$(OBJ)/polymer.$o: $(SRC)/polymer.c $(INC)/polymer.h $(INC)/compat.h $(INC)/build.h $(INC)/glbuild.h $(INC)/osd.h $(INC)/pragmas.h $(INC)/mdsprite.h $(INC)/polymost.h
|
||||
|
|
|
@ -4,11 +4,6 @@
|
|||
#include "compat.h"
|
||||
|
||||
void RI_PollDevices();
|
||||
|
||||
uint8_t RI_MouseState( uint8_t Button );
|
||||
|
||||
int8_t RI_WheelState();
|
||||
|
||||
int32_t RI_CaptureInput(int32_t grab, HWND target);
|
||||
|
||||
#ifndef VK_LBUTTON
|
||||
|
@ -24,11 +19,5 @@ int32_t RI_CaptureInput(int32_t grab, HWND target);
|
|||
#define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */
|
||||
#endif
|
||||
|
||||
// mouse states for RI_MouseState
|
||||
|
||||
#define BUTTON_PRESSED 0x01
|
||||
#define BUTTON_RELEASED 0x02
|
||||
#define BUTTON_HELD 0x03
|
||||
|
||||
#endif // rawinput_h__
|
||||
|
||||
|
|
|
@ -7,9 +7,7 @@
|
|||
#include "build.h"
|
||||
|
||||
static BOOL init_done = 0;
|
||||
static uint8_t KeyboardState[256] = {0};
|
||||
static uint8_t MouseState0[5] = {0};
|
||||
static uint8_t MouseState1[5] = {0};
|
||||
static uint8_t KeyboardState[256] = {0}; // VKeys
|
||||
static int8_t MWheel = 0;
|
||||
|
||||
extern volatile uint8_t moustat, mousegrab;
|
||||
|
@ -18,14 +16,12 @@ extern void SetKey(int32_t key, int32_t state);
|
|||
|
||||
#define MASK_DOWN (1<<(i<<1))
|
||||
#define MASK_UP (MASK_DOWN<<1)
|
||||
|
||||
#define MouseWheelFakePressTime 50
|
||||
|
||||
#ifndef GET_RAWINPUT_CODE_WPARAM
|
||||
#define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff)
|
||||
#define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff)
|
||||
#endif
|
||||
|
||||
void RI_ProcessMouse(const RAWMOUSE* rmouse)
|
||||
static inline void RI_ProcessMouse(const RAWMOUSE* rmouse)
|
||||
{
|
||||
int32_t i, mask;
|
||||
|
||||
|
@ -48,20 +44,16 @@ void RI_ProcessMouse(const RAWMOUSE* rmouse)
|
|||
|
||||
for (i = 0, mask = 1; i < 4; i++)
|
||||
{
|
||||
MouseState1[i] = MouseState0[i];
|
||||
|
||||
if (rmouse->usButtonFlags & mask) // button down
|
||||
{
|
||||
MouseState1[i] = 1;
|
||||
if (mousepresscallback)
|
||||
mousepresscallback(i, MouseState1[i]);
|
||||
mousepresscallback(i, 1);
|
||||
mouseb |= 1<<i;
|
||||
}
|
||||
else if (rmouse->usButtonFlags & (mask<<1)) // button up
|
||||
{
|
||||
MouseState1[i] = 0;
|
||||
if (mousepresscallback)
|
||||
mousepresscallback(i, MouseState1[i]);
|
||||
mousepresscallback(i, 0);
|
||||
mouseb &= ~(1<<i);
|
||||
}
|
||||
mask <<= 2;
|
||||
|
@ -85,10 +77,9 @@ void RI_ProcessMouse(const RAWMOUSE* rmouse)
|
|||
}
|
||||
}
|
||||
|
||||
void RI_ProcessKeyboard(const RAWKEYBOARD* rkbd)
|
||||
static inline void RI_ProcessKeyboard(const RAWKEYBOARD* rkbd)
|
||||
{
|
||||
uint8_t key = rkbd->MakeCode;
|
||||
uint8_t VKey = rkbd->VKey;
|
||||
uint8_t key = rkbd->MakeCode, VKey = rkbd->VKey;
|
||||
|
||||
// for some reason rkbd->MakeCode is wrong for these
|
||||
// even though rkbd->VKey is right...
|
||||
|
@ -104,23 +95,19 @@ void RI_ProcessKeyboard(const RAWKEYBOARD* rkbd)
|
|||
case VK_UP:
|
||||
case VK_NUMPAD8:
|
||||
if (rkbd->Flags & RI_KEY_E0) VKey = VK_UP, key = sc_UpArrow;
|
||||
else VKey = VK_NUMPAD8, key = sc_kpad_8;
|
||||
break;
|
||||
else VKey = VK_NUMPAD8, key = sc_kpad_8; break;
|
||||
case VK_DOWN:
|
||||
case VK_NUMPAD2:
|
||||
if (rkbd->Flags & RI_KEY_E0) VKey = VK_DOWN, key = sc_DownArrow;
|
||||
else VKey = VK_NUMPAD2, key = sc_kpad_2;
|
||||
break;
|
||||
else VKey = VK_NUMPAD2, key = sc_kpad_2; break;
|
||||
case VK_LEFT:
|
||||
case VK_NUMPAD4:
|
||||
if (rkbd->Flags & RI_KEY_E0) VKey = VK_LEFT, key = sc_LeftArrow;
|
||||
else VKey = VK_NUMPAD4, key = sc_kpad_4;
|
||||
break;
|
||||
else VKey = VK_NUMPAD4, key = sc_kpad_4; break;
|
||||
case VK_RIGHT:
|
||||
case VK_NUMPAD6:
|
||||
if (rkbd->Flags & RI_KEY_E0) VKey = VK_RIGHT, key = sc_RightArrow;
|
||||
else VKey = VK_NUMPAD6, key = sc_kpad_6;
|
||||
break;
|
||||
else VKey = VK_NUMPAD6, key = sc_kpad_6; break;
|
||||
case VK_INSERT:
|
||||
key = sc_Insert; break;
|
||||
case VK_HOME:
|
||||
|
@ -169,11 +156,6 @@ int32_t RI_CaptureInput(int32_t grab, HWND target)
|
|||
return (RegisterRawInputDevices(raw, 2, sizeof(raw[0])) == FALSE);
|
||||
}
|
||||
|
||||
uint8_t RI_MouseState(uint8_t Button)
|
||||
{
|
||||
return ((MouseState0[Button-1] << 1) | MouseState1[Button-1]) & 0x03;
|
||||
}
|
||||
|
||||
void RI_PollDevices()
|
||||
{
|
||||
int32_t i;
|
||||
|
@ -190,8 +172,6 @@ void RI_PollDevices()
|
|||
for (i = 0; i < 256; i++)
|
||||
KeyboardState[i] = (KeyboardState[i] << 1) | (1 & KeyboardState[i]);
|
||||
|
||||
Bmemcpy(MouseState0, MouseState1, sizeof(MouseState0));
|
||||
|
||||
MWheel = 0;
|
||||
|
||||
while (PeekMessage(&msg, 0, WM_INPUT, WM_INPUT, PM_REMOVE | PM_QS_INPUT))
|
||||
|
@ -257,14 +237,12 @@ void grabmouse(char a)
|
|||
if (!mousegrab || !d)
|
||||
{
|
||||
GetCursorPos(&pos);
|
||||
d = 1;
|
||||
d++;
|
||||
}
|
||||
|
||||
ShowCursor(a == 0);
|
||||
RI_CaptureInput(a, (HWND)win_gethwnd());
|
||||
SetCursorPos(pos.x, pos.y);
|
||||
|
||||
mousex = mousey = mouseb = 0;
|
||||
}
|
||||
|
||||
void readmousexy(int32_t *x, int32_t *y)
|
||||
|
|
|
@ -71,16 +71,16 @@ static int32_t usecwd = 0;
|
|||
this should be lower than the MTU size by at least the size of the UDP and ENet headers
|
||||
or else fragmentation will occur
|
||||
*/
|
||||
#define SYNCPACKETSIZE 1408
|
||||
#define SYNCPACKETSIZE 1366
|
||||
|
||||
ENetHost * g_netServer = NULL;
|
||||
ENetHost * g_netClient = NULL;
|
||||
ENetPeer * g_netClientPeer = NULL;
|
||||
int32_t g_netPort = 23513;
|
||||
int32_t g_netDisconnect = 0;
|
||||
// sprites of these statnums are synced to clients by the server
|
||||
int8_t g_netStatnums[] = { STAT_PROJECTILE, STAT_STANDABLE, STAT_ACTIVATOR, STAT_TRANSPORT,
|
||||
STAT_EFFECTOR, STAT_ACTOR, STAT_ZOMBIEACTOR, STAT_MISC
|
||||
};
|
||||
STAT_EFFECTOR, STAT_ACTOR, STAT_ZOMBIEACTOR, STAT_MISC };
|
||||
char g_netPassword[32];
|
||||
int32_t g_quitDeadline = 0;
|
||||
|
||||
|
@ -8345,7 +8345,7 @@ char CheatStrings[][MAXCHEATLEN] =
|
|||
"sfm", // 26
|
||||
};
|
||||
|
||||
enum cheats
|
||||
enum cheatindex_t
|
||||
{
|
||||
CHEAT_CORNHOLIO,
|
||||
CHEAT_STUFF,
|
||||
|
@ -11836,47 +11836,42 @@ MAIN_LOOP_RESTART:
|
|||
|
||||
do //main loop
|
||||
{
|
||||
static uint32_t nextrender = 0;
|
||||
static uint32_t nextrender = 0, next = 0;
|
||||
uint32_t j;
|
||||
|
||||
if (handleevents() && quitevent)
|
||||
{
|
||||
// JBF
|
||||
KB_KeyDown[sc_Escape] = 1;
|
||||
quitevent = 0;
|
||||
}
|
||||
|
||||
if (ud.statusbarmode == 1 && (ud.statusbarscale == 100 || !getrendermode()))
|
||||
{
|
||||
ud.statusbarmode = 0;
|
||||
G_UpdateScreenArea();
|
||||
}
|
||||
|
||||
MUSIC_Update();
|
||||
|
||||
// only allow binds to function if the player is actually in a game (not in a menu, typing, et cetera) or demo
|
||||
bindsenabled = g_player[myconnectindex].ps->gm & (MODE_GAME|MODE_DEMO);
|
||||
|
||||
OSD_DispatchQueued();
|
||||
// menus now call handleevents() from probe_()
|
||||
while (!(g_player[myconnectindex].ps->gm & (MODE_MENU|MODE_DEMO)) && ready2send && totalclock >= ototalclock+TICSPERFRAME)
|
||||
{
|
||||
if (handleevents() && quitevent)
|
||||
{
|
||||
// JBF
|
||||
KB_KeyDown[sc_Escape] = 1;
|
||||
quitevent = 0;
|
||||
}
|
||||
|
||||
OSD_DispatchQueued();
|
||||
G_HandleLocalKeys();
|
||||
faketimerhandler();
|
||||
}
|
||||
|
||||
if (((ud.show_help == 0 && (g_player[myconnectindex].ps->gm&MODE_MENU) != MODE_MENU) || ud.recstat == 2 || (g_netServer || ud.multimode > 1)) &&
|
||||
(g_player[myconnectindex].ps->gm&MODE_GAME) && G_MoveLoop())
|
||||
continue;
|
||||
|
||||
G_DoCheats();
|
||||
|
||||
if (g_player[myconnectindex].ps->gm & (MODE_EOL|MODE_RESTART))
|
||||
{
|
||||
switch (G_EndOfLevel())
|
||||
{
|
||||
case 1:
|
||||
continue;
|
||||
case 2:
|
||||
goto MAIN_LOOP_RESTART;
|
||||
case 1: continue;
|
||||
case 2: goto MAIN_LOOP_RESTART;
|
||||
}
|
||||
}
|
||||
|
||||
G_DoCheats();
|
||||
G_HandleLocalKeys();
|
||||
|
||||
if (g_netClient && g_multiMapState)
|
||||
{
|
||||
for (i=g_gameVarCount-1; i>=0; i--)
|
||||
|
@ -11890,6 +11885,18 @@ MAIN_LOOP_RESTART:
|
|||
g_multiMapState = NULL;
|
||||
}
|
||||
|
||||
if (next)
|
||||
{
|
||||
if (ud.statusbarmode == 1 && (ud.statusbarscale == 100 || !getrendermode()))
|
||||
{
|
||||
ud.statusbarmode = 0;
|
||||
G_UpdateScreenArea();
|
||||
}
|
||||
|
||||
next--;
|
||||
nextpage();
|
||||
}
|
||||
|
||||
j = getticks();
|
||||
|
||||
if (r_maxfps == 0 || j >= nextrender)
|
||||
|
@ -11905,22 +11912,16 @@ MAIN_LOOP_RESTART:
|
|||
i = 65536;
|
||||
|
||||
G_DrawRooms(screenpeek,i);
|
||||
|
||||
G_DisplayRest(i);
|
||||
if (getrendermode() >= 3)
|
||||
G_DrawBackground();
|
||||
|
||||
G_DisplayRest(i);
|
||||
|
||||
S_Update();
|
||||
|
||||
nextpage();
|
||||
next++;
|
||||
}
|
||||
|
||||
if (g_player[myconnectindex].ps->gm&MODE_DEMO)
|
||||
goto MAIN_LOOP_RESTART;
|
||||
|
||||
while (!(g_player[myconnectindex].ps->gm&MODE_MENU) && ready2send && totalclock >= ototalclock+TICSPERFRAME)
|
||||
faketimerhandler();
|
||||
}
|
||||
while (1);
|
||||
|
||||
|
@ -12567,81 +12568,17 @@ nextdemo:
|
|||
|
||||
GAME_STATIC GAME_INLINE int32_t G_MoveLoop()
|
||||
{
|
||||
/*
|
||||
if (numplayers > 1)
|
||||
Net_DoPrediction();
|
||||
*/
|
||||
|
||||
Net_GetPackets();
|
||||
|
||||
while (g_player[myconnectindex].movefifoend-movefifoplc > 0)
|
||||
{
|
||||
/*
|
||||
TRAVERSE_CONNECT(i)
|
||||
if (movefifoplc == g_player[i].movefifoend) break;
|
||||
if (i != ud.multimode) break;
|
||||
*/
|
||||
if (G_DoMoveThings()) return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
GAME_STATIC int32_t G_DoMoveThings(void)
|
||||
{
|
||||
int32_t i, j;
|
||||
// char ch;
|
||||
|
||||
/*
|
||||
TRAVERSE_CONNECT(i)
|
||||
if (TEST_SYNC_KEY(g_player[i].sync->bits, SK_MULTIFLAG))
|
||||
{
|
||||
multiflag = 2;
|
||||
multiwhat = (g_player[i].sync->bits>>(SK_MULTIFLAG+1))&1;
|
||||
multipos = (unsigned)(g_player[i].sync->bits>>(SK_MULTIFLAG+2))&15;
|
||||
multiwho = i;
|
||||
|
||||
if (multiwhat)
|
||||
{
|
||||
G_SavePlayer(multipos);
|
||||
multiflag = 0;
|
||||
|
||||
if (multiwho != myconnectindex)
|
||||
{
|
||||
Bsprintf(ScriptQuotes[122],"%s^00 SAVED A MULTIPLAYER GAME",&g_player[multiwho].user_name[0]);
|
||||
P_DoQuote(122,g_player[myconnectindex].ps);
|
||||
}
|
||||
else
|
||||
{
|
||||
Bstrcpy(ScriptQuotes[122],"MULTIPLAYER GAME SAVED");
|
||||
P_DoQuote(122,g_player[myconnectindex].ps);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
// waitforeverybody();
|
||||
|
||||
j = G_LoadPlayer(multipos);
|
||||
|
||||
multiflag = 0;
|
||||
|
||||
if (j == 0)
|
||||
{
|
||||
if (multiwho != myconnectindex)
|
||||
{
|
||||
Bsprintf(ScriptQuotes[122],"%s^00 LOADED A MULTIPLAYER GAME",&g_player[multiwho].user_name[0]);
|
||||
P_DoQuote(122,g_player[myconnectindex].ps);
|
||||
}
|
||||
else
|
||||
{
|
||||
Bstrcpy(ScriptQuotes[122],"MULTIPLAYER GAME LOADED");
|
||||
P_DoQuote(122,g_player[myconnectindex].ps);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
ud.camerasprite = -1;
|
||||
lockclock += TICSPERFRAME;
|
||||
|
@ -12807,25 +12744,6 @@ GAME_STATIC int32_t G_DoMoveThings(void)
|
|||
|
||||
i = g_player[myconnectindex].ps->i;
|
||||
|
||||
|
||||
/*
|
||||
{
|
||||
int32_t j;
|
||||
packbuf[(jj = j++)] = 0;
|
||||
|
||||
if (T5 >= (intptr_t)&script[0] && T5 < (intptr_t)(&script[g_scriptSize]))
|
||||
{
|
||||
packbuf[jj] |= 2;
|
||||
T5 -= (intptr_t)&script[0];
|
||||
}
|
||||
|
||||
Bmemcpy(&packbuf[j], &T5, sizeof(T5));
|
||||
j += sizeof(T5);
|
||||
|
||||
if (packbuf[jj] & 2) T5 += (intptr_t)&script[0];
|
||||
}
|
||||
*/
|
||||
|
||||
{
|
||||
char buf[1024];
|
||||
|
||||
|
|
|
@ -55,21 +55,28 @@ GAMEEXEC_STATIC int32_t VM_Execute(int32_t once);
|
|||
|
||||
void VM_ScriptInfo(void)
|
||||
{
|
||||
if (script)
|
||||
intptr_t *p;
|
||||
|
||||
if (!script)
|
||||
return;
|
||||
|
||||
if (insptr)
|
||||
{
|
||||
intptr_t *p;
|
||||
if (insptr)
|
||||
for (p=insptr-20; p<insptr+20; p++)
|
||||
{
|
||||
if (*p>>12&&(*p&0xFFF)<CON_END)
|
||||
initprintf("\n%5d: %5d %s ",p-script,*p>>12,keyw[*p&0xFFF]);
|
||||
else
|
||||
initprintf(" %d",*p);
|
||||
}
|
||||
if (vm.g_i)
|
||||
initprintf("current actor: %d (%d)\n",vm.g_i,vm.g_sp->picnum);
|
||||
initprintf("g_errorLineNum: %d, g_tw: %d\n",g_errorLineNum,g_tw);
|
||||
for (p=insptr-20; p<insptr+20; p++)
|
||||
{
|
||||
if (*p>>12&&(*p&0xFFF)<CON_END)
|
||||
initprintf("\n%5d: %5d %s ",p-script,*p>>12,keyw[*p&0xFFF]);
|
||||
else
|
||||
initprintf(" %d",*p);
|
||||
}
|
||||
|
||||
initprintf("\n");
|
||||
}
|
||||
|
||||
if (vm.g_i)
|
||||
initprintf("current actor: %d (%d)\n",vm.g_i,vm.g_sp->picnum);
|
||||
|
||||
initprintf("g_errorLineNum: %d, g_tw: %d\n",g_errorLineNum,g_tw);
|
||||
}
|
||||
|
||||
void VM_OnEvent(register int32_t iEventID, register int32_t iActor, register int32_t iPlayer, register int32_t lDist)
|
||||
|
@ -101,11 +108,8 @@ void VM_OnEvent(register int32_t iEventID, register int32_t iActor, register int
|
|||
deletesprite(vm.g_i);
|
||||
}
|
||||
|
||||
// restore old values...
|
||||
Bmemcpy(&vm, &vm_backup, sizeof(vmstate_t));
|
||||
insptr=oinsptr;
|
||||
|
||||
//AddLog("End of Execution");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -114,10 +118,7 @@ static int32_t VM_CheckSquished(void)
|
|||
sectortype *sc = §or[vm.g_sp->sectnum];
|
||||
int32_t squishme = 0;
|
||||
|
||||
if (vm.g_sp->picnum == APLAYER && ud.clipping)
|
||||
return 0;
|
||||
|
||||
if (sc->lotag == 23)
|
||||
if ((vm.g_sp->picnum == APLAYER && ud.clipping) || sc->lotag == 23)
|
||||
return 0;
|
||||
|
||||
squishme = (sc->floorz - sc->ceilingz < (12<<8)); // && (sc->lotag&32768) == 0;
|
||||
|
@ -128,7 +129,7 @@ static int32_t VM_CheckSquished(void)
|
|||
if (!squishme)
|
||||
return 0;
|
||||
|
||||
P_DoQuote(10,g_player[vm.g_p].ps);
|
||||
P_DoQuote(10, g_player[vm.g_p].ps);
|
||||
|
||||
if (A_CheckEnemySprite(vm.g_sp)) vm.g_sp->xvel = 0;
|
||||
|
||||
|
@ -164,7 +165,7 @@ GAMEEXEC_STATIC int32_t A_Dodge(spritetype *s)
|
|||
|
||||
for (i=headspritestat[STAT_PROJECTILE]; i>=0; i=nextspritestat[i]) //weapons list
|
||||
{
|
||||
if (OW == i || SECT != s->sectnum)
|
||||
if (OW == i/* || SECT != s->sectnum*/)
|
||||
continue;
|
||||
|
||||
bx = SX-mx;
|
||||
|
|
|
@ -109,11 +109,11 @@ static int32_t probe_(int32_t type,int32_t x,int32_t y,int32_t i,int32_t n)
|
|||
{
|
||||
int16_t centre;
|
||||
|
||||
{
|
||||
CONTROL_GetInput(&minfo);
|
||||
mi += (minfo.dpitch+minfo.dz);
|
||||
mii += minfo.dyaw;
|
||||
}
|
||||
handleevents();
|
||||
|
||||
CONTROL_GetInput(&minfo);
|
||||
mi += (minfo.dpitch+minfo.dz);
|
||||
mii += minfo.dyaw;
|
||||
|
||||
if (x == (320>>1))
|
||||
centre = 320>>2;
|
||||
|
|
Loading…
Reference in a new issue