mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
win32 stuck input fix among other minor changes
git-svn-id: https://svn.eduke32.com/eduke32@1642 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
9d27282ccd
commit
65b29ab092
19 changed files with 198 additions and 103 deletions
|
@ -110,7 +110,7 @@ void setmousepresscallback(void (*callback)(int32_t,int32_t));
|
||||||
void setjoypresscallback(void (*callback)(int32_t,int32_t));
|
void setjoypresscallback(void (*callback)(int32_t,int32_t));
|
||||||
const char *getkeyname(int32_t num);
|
const char *getkeyname(int32_t num);
|
||||||
const char *getjoyname(int32_t what, int32_t num); // what: 0=axis, 1=button, 2=hat
|
const char *getjoyname(int32_t what, int32_t num); // what: 0=axis, 1=button, 2=hat
|
||||||
char *strtolower(char *str, int32_t len);
|
char *Bstrtolower(char *str);
|
||||||
|
|
||||||
char bgetchar(void);
|
char bgetchar(void);
|
||||||
#define bkbhit() (keyasciififoplc != keyasciififoend)
|
#define bkbhit() (keyasciififoplc != keyasciififoend)
|
||||||
|
|
|
@ -73,20 +73,20 @@ extern "C" {
|
||||||
// so we give up on __intX for them.
|
// so we give up on __intX for them.
|
||||||
#if (_MSC_VER < 1300)
|
#if (_MSC_VER < 1300)
|
||||||
typedef signed char int8_t;
|
typedef signed char int8_t;
|
||||||
typedef short int16_t;
|
typedef signed short int16_t;
|
||||||
typedef int int32_t;
|
typedef signed int int32_t;
|
||||||
typedef unsigned char uint8_t;
|
typedef unsigned char uint8_t;
|
||||||
typedef unsigned short uint16_t;
|
typedef unsigned short uint16_t;
|
||||||
typedef unsigned int uint32_t;
|
typedef unsigned int uint32_t;
|
||||||
#else
|
#else
|
||||||
typedef signed __int8 int8_t;
|
typedef signed __int8 int8_t;
|
||||||
typedef __int16 int16_t;
|
typedef signed __int16 int16_t;
|
||||||
typedef __int32 int32_t;
|
typedef signed __int32 int32_t;
|
||||||
typedef unsigned __int8 uint8_t;
|
typedef unsigned __int8 uint8_t;
|
||||||
typedef unsigned __int16 uint16_t;
|
typedef unsigned __int16 uint16_t;
|
||||||
typedef unsigned __int32 uint32_t;
|
typedef unsigned __int32 uint32_t;
|
||||||
#endif
|
#endif
|
||||||
typedef __int64 int64_t;
|
typedef signed __int64 int64_t;
|
||||||
typedef unsigned __int64 uint64_t;
|
typedef unsigned __int64 uint64_t;
|
||||||
|
|
||||||
|
|
||||||
|
@ -112,10 +112,10 @@ typedef uint64_t uint_fast64_t;
|
||||||
|
|
||||||
// 7.18.1.4 Integer types capable of holding object pointers
|
// 7.18.1.4 Integer types capable of holding object pointers
|
||||||
#ifdef _WIN64 // [
|
#ifdef _WIN64 // [
|
||||||
typedef __int64 intptr_t;
|
typedef signed __int64 intptr_t;
|
||||||
typedef unsigned __int64 uintptr_t;
|
typedef unsigned __int64 uintptr_t;
|
||||||
#else // _WIN64 ][
|
#else // _WIN64 ][
|
||||||
typedef _W64 int intptr_t;
|
typedef _W64 signed int intptr_t;
|
||||||
typedef _W64 unsigned int uintptr_t;
|
typedef _W64 unsigned int uintptr_t;
|
||||||
#endif // _WIN64 ]
|
#endif // _WIN64 ]
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,9 @@
|
||||||
|
|
||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
|
|
||||||
void RI_PollDevices();
|
void RI_PollDevices(BOOL loop);
|
||||||
int32_t RI_CaptureInput(int32_t grab, HWND target);
|
void RI_ProcessMessage(MSG *msg);
|
||||||
|
BOOL RI_CaptureInput(BOOL grab, HWND target);
|
||||||
|
|
||||||
#ifndef VK_LBUTTON
|
#ifndef VK_LBUTTON
|
||||||
#define VK_LBUTTON 0x01
|
#define VK_LBUTTON 0x01
|
||||||
|
|
|
@ -52,16 +52,23 @@ struct glinfo_t glinfo =
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
char *strtolower(char *str, int32_t len)
|
char *Bstrtolower(char *str)
|
||||||
{
|
{
|
||||||
int32_t i = 0;
|
if (!str) return NULL;
|
||||||
|
|
||||||
|
{
|
||||||
|
int32_t i = 0, len = Bstrlen(str);
|
||||||
|
|
||||||
if (len <= 0) return str;
|
if (len <= 0) return str;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
*(str+i) = Btolower(*(str+i));
|
*(str+i) = Btolower(*(str+i));
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
while (--len);
|
while (--len);
|
||||||
|
}
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -323,6 +323,26 @@ int32_t findfrompath(const char *fn, char **where)
|
||||||
*where = Bstrdup(fn);
|
*where = Bstrdup(fn);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char *tfn = Bstrtolower(Bstrdup(fn));
|
||||||
|
|
||||||
|
if (access(tfn, F_OK) >= 0)
|
||||||
|
{
|
||||||
|
*where = tfn;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Bstrupr(tfn);
|
||||||
|
|
||||||
|
if (access(tfn, F_OK) >= 0)
|
||||||
|
{
|
||||||
|
*where = tfn;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Bfree(tfn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (pfn = (char*)fn; toupperlookup[*pfn] == '/'; pfn++);
|
for (pfn = (char*)fn; toupperlookup[*pfn] == '/'; pfn++);
|
||||||
|
@ -348,6 +368,8 @@ int32_t findfrompath(const char *fn, char **where)
|
||||||
|
|
||||||
for (sp = searchpathhead; sp; sp = sp->next)
|
for (sp = searchpathhead; sp; sp = sp->next)
|
||||||
{
|
{
|
||||||
|
char *tfn = Bstrdup(ffn);
|
||||||
|
|
||||||
strcpy(pfn, sp->path);
|
strcpy(pfn, sp->path);
|
||||||
strcat(pfn, ffn);
|
strcat(pfn, ffn);
|
||||||
//initprintf("Trying %s\n", pfn);
|
//initprintf("Trying %s\n", pfn);
|
||||||
|
@ -355,8 +377,35 @@ int32_t findfrompath(const char *fn, char **where)
|
||||||
{
|
{
|
||||||
*where = pfn;
|
*where = pfn;
|
||||||
Bfree(ffn);
|
Bfree(ffn);
|
||||||
|
Bfree(tfn);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Check with all lowercase
|
||||||
|
strcpy(pfn, sp->path);
|
||||||
|
Bstrtolower(tfn);
|
||||||
|
strcat(pfn, tfn);
|
||||||
|
if (access(pfn, F_OK) >= 0)
|
||||||
|
{
|
||||||
|
*where = pfn;
|
||||||
|
Bfree(ffn);
|
||||||
|
Bfree(tfn);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check again with uppercase
|
||||||
|
strcpy(pfn, sp->path);
|
||||||
|
Bstrupr(tfn);
|
||||||
|
strcat(pfn, tfn);
|
||||||
|
if (access(pfn, F_OK) >= 0)
|
||||||
|
{
|
||||||
|
*where = pfn;
|
||||||
|
Bfree(ffn);
|
||||||
|
Bfree(tfn);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Bfree(tfn);
|
||||||
}
|
}
|
||||||
Bfree(pfn); Bfree(ffn);
|
Bfree(pfn); Bfree(ffn);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -334,13 +334,11 @@ int32_t loadgldriver(const char *driver)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
initprintf("Loading %s\n",driver);
|
|
||||||
|
|
||||||
#if defined RENDERTYPESDL
|
#if defined RENDERTYPESDL
|
||||||
if (SDL_GL_LoadLibrary(driver)) return -1;
|
if (SDL_GL_LoadLibrary(driver)) goto fail;
|
||||||
#elif defined _WIN32
|
#elif defined _WIN32
|
||||||
hGLDLL = LoadLibrary(driver);
|
hGLDLL = LoadLibrary(driver);
|
||||||
if (!hGLDLL) return -1;
|
if (!hGLDLL) goto fail;
|
||||||
#endif
|
#endif
|
||||||
gldriver = Bstrdup(driver);
|
gldriver = Bstrdup(driver);
|
||||||
|
|
||||||
|
@ -471,6 +469,10 @@ int32_t loadgldriver(const char *driver)
|
||||||
|
|
||||||
if (err) unloadgldriver();
|
if (err) unloadgldriver();
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
fail:
|
||||||
|
initprintf("Failed loading \"%s\"\n",driver);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t loadglextensions(void)
|
int32_t loadglextensions(void)
|
||||||
|
@ -921,14 +923,12 @@ int32_t loadglulibrary(const char *driver)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
initprintf("Loading %s\n",driver);
|
|
||||||
|
|
||||||
#if defined _WIN32
|
#if defined _WIN32
|
||||||
hGLUDLL = LoadLibrary(driver);
|
hGLUDLL = LoadLibrary(driver);
|
||||||
if (!hGLUDLL) return -1;
|
if (!hGLUDLL) goto fail;
|
||||||
#else
|
#else
|
||||||
gluhandle = dlopen(driver, RTLD_NOW|RTLD_GLOBAL);
|
gluhandle = dlopen(driver, RTLD_NOW|RTLD_GLOBAL);
|
||||||
if (!gluhandle) return -1;
|
if (!gluhandle) goto fail;
|
||||||
#endif
|
#endif
|
||||||
glulibrary = Bstrdup(driver);
|
glulibrary = Bstrdup(driver);
|
||||||
|
|
||||||
|
@ -951,6 +951,10 @@ int32_t loadglulibrary(const char *driver)
|
||||||
|
|
||||||
if (err) unloadglulibrary();
|
if (err) unloadglulibrary();
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
fail:
|
||||||
|
initprintf("Failed loading \"%s\"\n",driver);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t unloadglulibrary(void)
|
int32_t unloadglulibrary(void)
|
||||||
|
|
|
@ -1816,7 +1816,7 @@ static symbol_t *addnewsymbol(const char *name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
hash_add(&h_osd, name, osdnumsymbols);
|
hash_add(&h_osd, name, osdnumsymbols);
|
||||||
name = strtolower(Bstrdup(name), Bstrlen(name));
|
name = Bstrtolower(Bstrdup(name));
|
||||||
hash_add(&h_osd, name, osdnumsymbols);
|
hash_add(&h_osd, name, osdnumsymbols);
|
||||||
Bfree((void *)name);
|
Bfree((void *)name);
|
||||||
osdsymbptrs[osdnumsymbols++] = newsymb;
|
osdsymbptrs[osdnumsymbols++] = newsymb;
|
||||||
|
@ -1857,7 +1857,7 @@ static symbol_t *findexactsymbol(const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// try it again
|
// try it again
|
||||||
lname = strtolower(lname, Bstrlen(name));
|
Bstrtolower(lname);
|
||||||
i = hash_find(&h_osd,lname);
|
i = hash_find(&h_osd,lname);
|
||||||
Bfree(lname);
|
Bfree(lname);
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,6 @@ static inline void RI_ProcessMouse(const RAWMOUSE* rmouse)
|
||||||
static inline void RI_ProcessKeyboard(const RAWKEYBOARD* rkbd)
|
static inline void RI_ProcessKeyboard(const RAWKEYBOARD* rkbd)
|
||||||
{
|
{
|
||||||
uint8_t key = rkbd->MakeCode, VKey = rkbd->VKey;
|
uint8_t key = rkbd->MakeCode, VKey = rkbd->VKey;
|
||||||
uint8_t buf[2];
|
|
||||||
|
|
||||||
// for some reason rkbd->MakeCode is wrong for these
|
// for some reason rkbd->MakeCode is wrong for these
|
||||||
// even though rkbd->VKey is right...
|
// even though rkbd->VKey is right...
|
||||||
|
@ -147,6 +146,10 @@ static inline void RI_ProcessKeyboard(const RAWKEYBOARD* rkbd)
|
||||||
if (rkbd->Flags & RI_KEY_BREAK) return;
|
if (rkbd->Flags & RI_KEY_BREAK) return;
|
||||||
if (((keyasciififoend+1)&(KEYFIFOSIZ-1)) == keyasciififoplc) return;
|
if (((keyasciififoend+1)&(KEYFIFOSIZ-1)) == keyasciififoplc) return;
|
||||||
if ((keyasciififoend - keyasciififoplc) > 0) return;
|
if ((keyasciififoend - keyasciififoplc) > 0) return;
|
||||||
|
|
||||||
|
{
|
||||||
|
uint8_t buf[2];
|
||||||
|
|
||||||
if (ToAscii(VKey, key, &KeyboardState[0], (LPWORD)&buf[0], 0) != 1) return;
|
if (ToAscii(VKey, key, &KeyboardState[0], (LPWORD)&buf[0], 0) != 1) return;
|
||||||
if ((OSD_OSDKey() < 128) && (Btolower(scantoasc[OSD_OSDKey()]) == Btolower(buf[0]))) return;
|
if ((OSD_OSDKey() < 128) && (Btolower(scantoasc[OSD_OSDKey()]) == Btolower(buf[0]))) return;
|
||||||
if (OSD_HandleChar(buf[0]) == 0) return;
|
if (OSD_HandleChar(buf[0]) == 0) return;
|
||||||
|
@ -154,9 +157,10 @@ static inline void RI_ProcessKeyboard(const RAWKEYBOARD* rkbd)
|
||||||
keyasciififo[keyasciififoend] = buf[0];
|
keyasciififo[keyasciififoend] = buf[0];
|
||||||
keyasciififoend = ((keyasciififoend+1)&(KEYFIFOSIZ-1));
|
keyasciififoend = ((keyasciififoend+1)&(KEYFIFOSIZ-1));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// keyboard is always captured regardless of what we tell this function
|
// keyboard is always captured regardless of what we tell this function
|
||||||
int32_t RI_CaptureInput(int32_t grab, HWND target)
|
BOOL RI_CaptureInput(BOOL grab, HWND target)
|
||||||
{
|
{
|
||||||
RAWINPUTDEVICE raw[2];
|
RAWINPUTDEVICE raw[2];
|
||||||
|
|
||||||
|
@ -175,7 +179,25 @@ int32_t RI_CaptureInput(int32_t grab, HWND target)
|
||||||
return (RegisterRawInputDevices(raw, 2, sizeof(raw[0])) == FALSE);
|
return (RegisterRawInputDevices(raw, 2, sizeof(raw[0])) == FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RI_PollDevices()
|
void RI_ProcessMessage(MSG *msg)
|
||||||
|
{
|
||||||
|
if (GET_RAWINPUT_CODE_WPARAM(msg->wParam) == RIM_INPUT)
|
||||||
|
{
|
||||||
|
UINT dwSize = sizeof(RAWINPUT);
|
||||||
|
RAWINPUT raw;
|
||||||
|
|
||||||
|
GetRawInputData((HRAWINPUT)msg->lParam, RID_INPUT, &raw, &dwSize, sizeof(RAWINPUTHEADER));
|
||||||
|
|
||||||
|
if (raw.header.dwType == RIM_TYPEKEYBOARD)
|
||||||
|
RI_ProcessKeyboard(&raw.data.keyboard);
|
||||||
|
else if (raw.header.dwType == RIM_TYPEMOUSE)
|
||||||
|
RI_ProcessMouse(&raw.data.mouse);
|
||||||
|
}
|
||||||
|
|
||||||
|
DefWindowProc(msg->hwnd, msg->message, msg->wParam, msg->lParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RI_PollDevices(BOOL loop)
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i;
|
||||||
MSG msg;
|
MSG msg;
|
||||||
|
@ -193,23 +215,8 @@ void RI_PollDevices()
|
||||||
|
|
||||||
MWheel = 0;
|
MWheel = 0;
|
||||||
|
|
||||||
while (PeekMessage(&msg, 0, WM_INPUT, WM_INPUT, PM_REMOVE | PM_QS_INPUT))
|
while (loop && PeekMessage(&msg, 0, WM_INPUT, WM_INPUT, PM_REMOVE | PM_QS_INPUT))
|
||||||
{
|
RI_ProcessMessage(&msg);
|
||||||
if (GET_RAWINPUT_CODE_WPARAM(msg.wParam) == RIM_INPUT)
|
|
||||||
{
|
|
||||||
UINT dwSize = sizeof(RAWINPUT);
|
|
||||||
RAWINPUT raw;
|
|
||||||
|
|
||||||
GetRawInputData((HRAWINPUT)msg.lParam, RID_INPUT, &raw, &dwSize, sizeof(RAWINPUTHEADER));
|
|
||||||
|
|
||||||
if (raw.header.dwType == RIM_TYPEKEYBOARD)
|
|
||||||
RI_ProcessKeyboard(&raw.data.keyboard);
|
|
||||||
else if (raw.header.dwType == RIM_TYPEMOUSE)
|
|
||||||
RI_ProcessMouse(&raw.data.mouse);
|
|
||||||
}
|
|
||||||
|
|
||||||
DefWindowProc(msg.hwnd, msg.message, msg.wParam, msg.lParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mousegrab && appactive)
|
if (mousegrab && appactive)
|
||||||
{
|
{
|
||||||
|
|
|
@ -491,7 +491,7 @@ static int32_t set_windowpos(const osdfuncparm_t *parm)
|
||||||
// initsystem() -- init systems
|
// initsystem() -- init systems
|
||||||
//
|
//
|
||||||
|
|
||||||
static void print_os_version(void)
|
static void printsysversion(void)
|
||||||
{
|
{
|
||||||
const char *ver = "";
|
const char *ver = "";
|
||||||
|
|
||||||
|
@ -528,7 +528,7 @@ static void print_os_version(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
initprintf("OS: Windows %s (%lu.%lu.%lu) %s\n", ver, osv.dwMajorVersion, osv.dwMinorVersion,
|
initprintf("Running under Windows %s (build %lu.%lu.%lu) %s\n", ver, osv.dwMajorVersion, osv.dwMinorVersion,
|
||||||
osv.dwPlatformId == VER_PLATFORM_WIN32_NT ? osv.dwBuildNumber : osv.dwBuildNumber&0xffff,
|
osv.dwPlatformId == VER_PLATFORM_WIN32_NT ? osv.dwBuildNumber : osv.dwBuildNumber&0xffff,
|
||||||
osv.szCSDVersion);
|
osv.szCSDVersion);
|
||||||
|
|
||||||
|
@ -559,7 +559,7 @@ int32_t initsystem(void)
|
||||||
frameplace=0;
|
frameplace=0;
|
||||||
lockcount=0;
|
lockcount=0;
|
||||||
|
|
||||||
print_os_version();
|
printsysversion();
|
||||||
|
|
||||||
#if defined(USE_OPENGL) && defined(POLYMOST)
|
#if defined(USE_OPENGL) && defined(POLYMOST)
|
||||||
if (loadgldriver(getenv("BUILD_GLDRV")))
|
if (loadgldriver(getenv("BUILD_GLDRV")))
|
||||||
|
@ -664,7 +664,7 @@ int32_t handleevents(void)
|
||||||
|
|
||||||
//if (frameplace && fullscreen) printf("Offscreen buffer is locked!\n");
|
//if (frameplace && fullscreen) printf("Offscreen buffer is locked!\n");
|
||||||
|
|
||||||
RI_PollDevices();
|
RI_PollDevices(TRUE);
|
||||||
|
|
||||||
if (bDInputInited)
|
if (bDInputInited)
|
||||||
DI_PollJoysticks();
|
DI_PollJoysticks();
|
||||||
|
@ -676,6 +676,13 @@ int32_t handleevents(void)
|
||||||
|
|
||||||
if (startwin_idle((void*)&msg) > 0) continue;
|
if (startwin_idle((void*)&msg) > 0) continue;
|
||||||
|
|
||||||
|
if (msg.message == WM_INPUT)
|
||||||
|
{
|
||||||
|
RI_PollDevices(FALSE);
|
||||||
|
RI_ProcessMessage(&msg);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
TranslateMessage(&msg);
|
TranslateMessage(&msg);
|
||||||
DispatchMessage(&msg);
|
DispatchMessage(&msg);
|
||||||
}
|
}
|
||||||
|
@ -829,9 +836,10 @@ inline void idle_waitevent(void)
|
||||||
|
|
||||||
if (PeekMessage(&msg, 0, WM_INPUT, WM_INPUT, PM_QS_INPUT))
|
if (PeekMessage(&msg, 0, WM_INPUT, WM_INPUT, PM_QS_INPUT))
|
||||||
{
|
{
|
||||||
RI_PollDevices();
|
RI_PollDevices(TRUE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Sleep(10);
|
Sleep(10);
|
||||||
}
|
}
|
||||||
while (--i);
|
while (--i);
|
||||||
|
|
|
@ -9589,7 +9589,9 @@ int32_t ExtInit(void)
|
||||||
#if defined(POLYMOST) && defined(USE_OPENGL)
|
#if defined(POLYMOST) && defined(USE_OPENGL)
|
||||||
glusetexcache = -1;
|
glusetexcache = -1;
|
||||||
|
|
||||||
|
if (Bstrcmp(setupfilename, "mapster32.cfg"))
|
||||||
initprintf("Using config file '%s'.\n",setupfilename);
|
initprintf("Using config file '%s'.\n",setupfilename);
|
||||||
|
|
||||||
if (loadsetup(setupfilename) < 0) initprintf("Configuration file not found, using defaults.\n"), rv = 1;
|
if (loadsetup(setupfilename) < 0) initprintf("Configuration file not found, using defaults.\n"), rv = 1;
|
||||||
|
|
||||||
if (glusetexcache == -1)
|
if (glusetexcache == -1)
|
||||||
|
|
|
@ -61,7 +61,7 @@ int32_t CONFIG_FunctionNameToNum(char * func)
|
||||||
|
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
{
|
{
|
||||||
char *str = strtolower(Bstrdup(func),Bstrlen(func));
|
char *str = Bstrtolower(Bstrdup(func));
|
||||||
i = hash_find(&h_gamefuncs,str);
|
i = hash_find(&h_gamefuncs,str);
|
||||||
Bfree(str);
|
Bfree(str);
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ extern int32_t g_scriptVersion, g_Shareware, g_gameType;
|
||||||
#include "namesdyn.h"
|
#include "namesdyn.h"
|
||||||
|
|
||||||
#define TICRATE (120)
|
#define TICRATE (120)
|
||||||
#define GAMETICSPERSEC 26
|
#define GAMETICSPERSEC 26 // used as a constant to satisfy all of the calculations written with ticrate = 26 in mind
|
||||||
#define TICSPERFRAME 4 // this used to be TICRATE/GAMETICSPERSEC which was 4.615~ truncated to 4 by integer division
|
#define TICSPERFRAME 4 // this used to be TICRATE/GAMETICSPERSEC which was 4.615~ truncated to 4 by integer division
|
||||||
#define REALGAMETICSPERSEC 30
|
#define REALGAMETICSPERSEC 30
|
||||||
|
|
||||||
|
|
|
@ -4884,7 +4884,7 @@ int32_t drawing_ror = 0;
|
||||||
|
|
||||||
void G_SE40(int32_t smoothratio)
|
void G_SE40(int32_t smoothratio)
|
||||||
{
|
{
|
||||||
if (getrendermode() != 4 && ror_sprite != -1)
|
if (ror_sprite != -1)
|
||||||
{
|
{
|
||||||
int32_t x, y, z;
|
int32_t x, y, z;
|
||||||
int16_t sect;
|
int16_t sect;
|
||||||
|
@ -4956,6 +4956,11 @@ void G_SE40(int32_t smoothratio)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
|
if (getrendermode() == 4)
|
||||||
|
polymer_setanimatesprites(G_DoSpriteAnimations, ud.camera.x, ud.camera.y, ud.cameraang, smoothratio);
|
||||||
|
#endif
|
||||||
|
|
||||||
drawrooms(sprite[sprite2].x + x, sprite[sprite2].y + y,
|
drawrooms(sprite[sprite2].x + x, sprite[sprite2].y + y,
|
||||||
z + renderz, ud.cameraang, ud.camerahoriz, sect);
|
z + renderz, ud.cameraang, ud.camerahoriz, sect);
|
||||||
drawing_ror = 1 + level;
|
drawing_ror = 1 + level;
|
||||||
|
@ -5040,7 +5045,6 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||||
ud.camerasect = p->cursectnum;
|
ud.camerasect = p->cursectnum;
|
||||||
|
|
||||||
G_DoInterpolations(smoothratio);
|
G_DoInterpolations(smoothratio);
|
||||||
|
|
||||||
G_AnimateCamSprite();
|
G_AnimateCamSprite();
|
||||||
|
|
||||||
if (ud.camerasprite >= 0)
|
if (ud.camerasprite >= 0)
|
||||||
|
@ -5053,15 +5057,17 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||||
ud.cameraang = actor[ud.camerasprite].tempang+
|
ud.cameraang = actor[ud.camerasprite].tempang+
|
||||||
mulscale16((int32_t)(((s->ang+1024-actor[ud.camerasprite].tempang)&2047)-1024),smoothratio);
|
mulscale16((int32_t)(((s->ang+1024-actor[ud.camerasprite].tempang)&2047)-1024),smoothratio);
|
||||||
|
|
||||||
|
G_SE40(smoothratio);
|
||||||
|
|
||||||
#ifdef POLYMER
|
#ifdef POLYMER
|
||||||
if (getrendermode() == 4)
|
if (getrendermode() == 4)
|
||||||
polymer_setanimatesprites(G_DoSpriteAnimations, s->x, s->y, ud.cameraang, smoothratio);
|
polymer_setanimatesprites(G_DoSpriteAnimations, s->x, s->y, ud.cameraang, smoothratio);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
G_SE40(smoothratio);
|
|
||||||
|
|
||||||
drawrooms(s->x,s->y,s->z-(4<<8),ud.cameraang,s->yvel,s->sectnum);
|
drawrooms(s->x,s->y,s->z-(4<<8),ud.cameraang,s->yvel,s->sectnum);
|
||||||
|
|
||||||
G_DoSpriteAnimations(s->x,s->y,ud.cameraang,smoothratio);
|
G_DoSpriteAnimations(s->x,s->y,ud.cameraang,smoothratio);
|
||||||
|
|
||||||
drawmasks();
|
drawmasks();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -5231,13 +5237,12 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||||
gotpic[MIRROR>>3] &= ~(1<<(MIRROR&7));
|
gotpic[MIRROR>>3] &= ~(1<<(MIRROR&7));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
G_SE40(smoothratio);
|
||||||
|
|
||||||
#ifdef POLYMER
|
#ifdef POLYMER
|
||||||
if (getrendermode() == 4)
|
if (getrendermode() == 4)
|
||||||
{
|
|
||||||
polymer_setanimatesprites(G_DoSpriteAnimations, ud.camera.x,ud.camera.y,ud.cameraang,smoothratio);
|
polymer_setanimatesprites(G_DoSpriteAnimations, ud.camera.x,ud.camera.y,ud.cameraang,smoothratio);
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
G_SE40(smoothratio);
|
|
||||||
|
|
||||||
drawrooms(ud.camera.x,ud.camera.y,ud.camera.z,ud.cameraang,ud.camerahoriz,ud.camerasect);
|
drawrooms(ud.camera.x,ud.camera.y,ud.camera.z,ud.cameraang,ud.camerahoriz,ud.camerasect);
|
||||||
|
|
||||||
|
@ -5273,6 +5278,7 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||||
}
|
}
|
||||||
|
|
||||||
G_DoSpriteAnimations(ud.camera.x,ud.camera.y,ud.cameraang,smoothratio);
|
G_DoSpriteAnimations(ud.camera.x,ud.camera.y,ud.cameraang,smoothratio);
|
||||||
|
|
||||||
drawing_ror = 0;
|
drawing_ror = 0;
|
||||||
drawmasks();
|
drawmasks();
|
||||||
|
|
||||||
|
@ -11083,7 +11089,7 @@ void app_main(int32_t argc,const char **argv)
|
||||||
int32_t i = 0, j;
|
int32_t i = 0, j;
|
||||||
char cwd[BMAX_PATH];
|
char cwd[BMAX_PATH];
|
||||||
// extern char datetimestring[];
|
// extern char datetimestring[];
|
||||||
ENetCallbacks callbacks = { Bmalloc, Bfree, NULL };
|
ENetCallbacks callbacks = { Bmalloc, Bfree, NULL, NULL };
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
#ifdef RENDERTYPEWIN
|
||||||
if (argc > 1)
|
if (argc > 1)
|
||||||
|
@ -11222,7 +11228,7 @@ void app_main(int32_t argc,const char **argv)
|
||||||
hash_init(&h_gamefuncs);
|
hash_init(&h_gamefuncs);
|
||||||
for (i=NUMGAMEFUNCTIONS-1; i>=0; i--)
|
for (i=NUMGAMEFUNCTIONS-1; i>=0; i--)
|
||||||
{
|
{
|
||||||
char *str = strtolower(Bstrdup(gamefunctions[i]),Bstrlen(gamefunctions[i]));
|
char *str = Bstrtolower(Bstrdup(gamefunctions[i]));
|
||||||
hash_add(&h_gamefuncs,gamefunctions[i],i);
|
hash_add(&h_gamefuncs,gamefunctions[i],i);
|
||||||
hash_add(&h_gamefuncs,str,i);
|
hash_add(&h_gamefuncs,str,i);
|
||||||
Bfree(str);
|
Bfree(str);
|
||||||
|
@ -11291,6 +11297,7 @@ void app_main(int32_t argc,const char **argv)
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Bstrcmp(setupfilename, SETUPFILENAME))
|
||||||
initprintf("Using config file '%s'.\n",setupfilename);
|
initprintf("Using config file '%s'.\n",setupfilename);
|
||||||
|
|
||||||
ScanGroups();
|
ScanGroups();
|
||||||
|
@ -11465,7 +11472,7 @@ CLEAN_DIRECTORY:
|
||||||
if (i == -1)
|
if (i == -1)
|
||||||
initprintf("Warning: could not find main group file '%s'!\n",g_grpNamePtr);
|
initprintf("Warning: could not find main group file '%s'!\n",g_grpNamePtr);
|
||||||
else
|
else
|
||||||
initprintf("Using group file '%s' as main group file.\n", g_grpNamePtr);
|
initprintf("Using '%s' as main group file.\n", g_grpNamePtr);
|
||||||
|
|
||||||
if (!g_noAutoLoad && !ud.config.NoAutoLoad)
|
if (!g_noAutoLoad && !ud.config.NoAutoLoad)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1663,13 +1663,13 @@ static void C_GetNextVarType(int32_t type)
|
||||||
/*initprintf("found xxx label of '%s'\n", label+(g_numLabels<<6));*/
|
/*initprintf("found xxx label of '%s'\n", label+(g_numLabels<<6));*/
|
||||||
|
|
||||||
if (i == g_iSpriteVarID)
|
if (i == g_iSpriteVarID)
|
||||||
lLabelID=C_GetLabelNameOffset(&actorH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameOffset(&actorH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
else if (i == g_iSectorVarID)
|
else if (i == g_iSectorVarID)
|
||||||
lLabelID=C_GetLabelNameOffset(§orH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameOffset(§orH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
else if (i == g_iWallVarID)
|
else if (i == g_iWallVarID)
|
||||||
lLabelID=C_GetLabelNameOffset(&wallH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameOffset(&wallH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
else if (i == g_iPlayerVarID)
|
else if (i == g_iPlayerVarID)
|
||||||
lLabelID=C_GetLabelNameOffset(&playerH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameOffset(&playerH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
else if (i == g_iActorVarID)
|
else if (i == g_iActorVarID)
|
||||||
lLabelID=GetDefID(label+(g_numLabels<<6));
|
lLabelID=GetDefID(label+(g_numLabels<<6));
|
||||||
|
|
||||||
|
@ -2174,7 +2174,7 @@ static int32_t C_ParseCommand(void)
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
||||||
|
|
||||||
lLabelID=C_GetLabelNameOffset(&projectileH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameOffset(&projectileH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
//printf("LabelID is %d\n",lLabelID);
|
//printf("LabelID is %d\n",lLabelID);
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -3153,7 +3153,7 @@ static int32_t C_ParseCommand(void)
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
||||||
|
|
||||||
lLabelID=C_GetLabelNameID(SectorLabels,§orH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameID(SectorLabels,§orH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
|
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -3288,7 +3288,7 @@ static int32_t C_ParseCommand(void)
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
||||||
|
|
||||||
lLabelID=C_GetLabelNameID(WallLabels,&wallH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameID(WallLabels,&wallH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
|
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -3355,7 +3355,7 @@ static int32_t C_ParseCommand(void)
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
||||||
|
|
||||||
lLabelID=C_GetLabelNameOffset(&playerH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameOffset(&playerH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
//printf("LabelID is %d\n",lLabelID);
|
//printf("LabelID is %d\n",lLabelID);
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -3436,7 +3436,7 @@ static int32_t C_ParseCommand(void)
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
||||||
|
|
||||||
lLabelID=C_GetLabelNameOffset(&inputH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameOffset(&inputH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
//printf("LabelID is %d\n",lLabelID);
|
//printf("LabelID is %d\n",lLabelID);
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -3487,7 +3487,7 @@ static int32_t C_ParseCommand(void)
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
||||||
|
|
||||||
lLabelID=C_GetLabelNameID(UserdefsLabels,&userdefH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameID(UserdefsLabels,&userdefH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
|
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -3691,7 +3691,7 @@ static int32_t C_ParseCommand(void)
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
||||||
|
|
||||||
lLabelID=C_GetLabelNameOffset(&actorH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameOffset(&actorH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
//printf("LabelID is %d\n",lLabelID);
|
//printf("LabelID is %d\n",lLabelID);
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -3770,7 +3770,7 @@ static int32_t C_ParseCommand(void)
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
//printf("found xxx label of '%s'\n", label+(g_numLabels<<6));
|
||||||
|
|
||||||
lLabelID=C_GetLabelNameOffset(&tspriteH,strtolower(label+(g_numLabels<<6),Bstrlen(label+(g_numLabels<<6))));
|
lLabelID=C_GetLabelNameOffset(&tspriteH,Bstrtolower(label+(g_numLabels<<6)));
|
||||||
//printf("LabelID is %d\n",lLabelID);
|
//printf("LabelID is %d\n",lLabelID);
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -5118,7 +5118,7 @@ repeatcase:
|
||||||
keydefaults[j*3][i] = '\0';
|
keydefaults[j*3][i] = '\0';
|
||||||
hash_add(&h_gamefuncs,gamefunctions[j],j);
|
hash_add(&h_gamefuncs,gamefunctions[j],j);
|
||||||
{
|
{
|
||||||
char *str = strtolower(Bstrdup(gamefunctions[j]),Bstrlen(gamefunctions[j]));
|
char *str = Bstrtolower(Bstrdup(gamefunctions[j]));
|
||||||
hash_add(&h_gamefuncs,str,j);
|
hash_add(&h_gamefuncs,str,j);
|
||||||
Bfree(str);
|
Bfree(str);
|
||||||
}
|
}
|
||||||
|
@ -5976,7 +5976,6 @@ static void C_InitProjectiles(void)
|
||||||
int8_t shade, xrepeat, yrepeat, pal; // 4b
|
int8_t shade, xrepeat, yrepeat, pal; // 4b
|
||||||
int8_t velmult; // 1b
|
int8_t velmult; // 1b
|
||||||
uint8_t clipdist; // 1b
|
uint8_t clipdist; // 1b
|
||||||
int8_t filler[6]; // 6b
|
|
||||||
} defaultprojectile_t;
|
} defaultprojectile_t;
|
||||||
|
|
||||||
defaultprojectile_t DefaultProjectile =
|
defaultprojectile_t DefaultProjectile =
|
||||||
|
@ -5986,7 +5985,7 @@ static void C_InitProjectiles(void)
|
||||||
};
|
};
|
||||||
|
|
||||||
// this will only happen if I forget to update this function...
|
// this will only happen if I forget to update this function...
|
||||||
if (sizeof(projectile_t) != sizeof(DefaultProjectile) || offsetof(projectile_t, filler) != offsetof(defaultprojectile_t, filler))
|
if (offsetof(projectile_t, filler) != sizeof(DefaultProjectile))
|
||||||
G_GameExit("ERROR: C_InitProjectiles(): projectile_t mismatch!");
|
G_GameExit("ERROR: C_InitProjectiles(): projectile_t mismatch!");
|
||||||
|
|
||||||
for (i=MAXTILES-1; i>=0; i--)
|
for (i=MAXTILES-1; i>=0; i--)
|
||||||
|
|
|
@ -682,15 +682,18 @@ void __fastcall Gv_SetVar(register int32_t id, register int32_t lValue, register
|
||||||
}
|
}
|
||||||
|
|
||||||
badvarid:
|
badvarid:
|
||||||
OSD_Printf(CON_ERROR "Gv_SetVar(): tried to set invalid gamevar ID (%d) from sprite %d (%d), player %d\n",g_errorLineNum,keyw[g_tw],id,vm.g_i,sprite[vm.g_i].picnum,vm.g_p);
|
OSD_Printf(CON_ERROR "Gv_SetVar(): tried to set invalid gamevar ID (%d) from sprite %d (%d), player %d\n",
|
||||||
|
g_errorLineNum,keyw[g_tw],id,vm.g_i,sprite[vm.g_i].picnum,vm.g_p);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
badplayer:
|
badplayer:
|
||||||
OSD_Printf(CON_ERROR "Gv_SetVar(): invalid player (%d) for per-player gamevar %s from sprite %d, player %d\n",g_errorLineNum,keyw[g_tw],iPlayer,aGameVars[id].szLabel,vm.g_i,vm.g_p);
|
OSD_Printf(CON_ERROR "Gv_SetVar(): invalid player (%d) for per-player gamevar %s from sprite %d, player %d\n",
|
||||||
|
g_errorLineNum,keyw[g_tw],iPlayer,aGameVars[id].szLabel,vm.g_i,vm.g_p);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
badactor:
|
badactor:
|
||||||
OSD_Printf(CON_ERROR "Gv_SetVar(): invalid sprite (%d) for per-actor gamevar %s from sprite %d (%d), player %d\n",g_errorLineNum,keyw[g_tw],iActor,aGameVars[id].szLabel,vm.g_i,sprite[vm.g_i].picnum,vm.g_p);
|
OSD_Printf(CON_ERROR "Gv_SetVar(): invalid sprite (%d) for per-actor gamevar %s from sprite %d (%d), player %d\n",
|
||||||
|
g_errorLineNum,keyw[g_tw],iActor,aGameVars[id].szLabel,vm.g_i,sprite[vm.g_i].picnum,vm.g_p);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
#include "duke3d.h"
|
#include "duke3d.h"
|
||||||
|
|
||||||
const char *s_buildDate = "20100427";
|
const char *s_buildDate = "20100514";
|
||||||
char *MusicPtr = NULL;
|
char *MusicPtr = NULL;
|
||||||
int32_t g_musicSize;
|
int32_t g_musicSize;
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ int32_t ScanGroups(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
initprintf("Scanning for GRP files...\n");
|
initprintf("Scanning for game data...\n");
|
||||||
|
|
||||||
LoadGroupsCache();
|
LoadGroupsCache();
|
||||||
|
|
||||||
|
@ -196,9 +196,12 @@ int32_t ScanGroups(void)
|
||||||
Bfree(buf);
|
Bfree(buf);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
initprintf("Found no recognized GRP files!\n");
|
|
||||||
|
initprintf("Found no recognized game data!\n");
|
||||||
|
|
||||||
if (buf)
|
if (buf)
|
||||||
Bfree(buf);
|
Bfree(buf);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -917,7 +917,7 @@ static void C_GetNextVarType(int32_t type)
|
||||||
textptr++;
|
textptr++;
|
||||||
/// now pointing at 'xxx'
|
/// now pointing at 'xxx'
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
lLabelID = C_GetLabelNameID(SpriteLabels, &spriteH, strtolower(tlabel,Bstrlen(tlabel)));
|
lLabelID = C_GetLabelNameID(SpriteLabels, &spriteH, Bstrtolower(tlabel));
|
||||||
|
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -1018,11 +1018,11 @@ static void C_GetNextVarType(int32_t type)
|
||||||
C_GetNextLabelName();
|
C_GetNextLabelName();
|
||||||
/*initprintf("found xxx label of '%s'\n", label+(g_numLabels*MAXLABELLEN));*/
|
/*initprintf("found xxx label of '%s'\n", label+(g_numLabels*MAXLABELLEN));*/
|
||||||
if (id == g_iSpriteVarID || id==3)
|
if (id == g_iSpriteVarID || id==3)
|
||||||
lLabelID = C_GetLabelNameID(SpriteLabels, &spriteH, strtolower(tlabel,Bstrlen(tlabel)));
|
lLabelID = C_GetLabelNameID(SpriteLabels, &spriteH, Bstrtolower(tlabel));
|
||||||
else if (id == g_iSectorVarID)
|
else if (id == g_iSectorVarID)
|
||||||
lLabelID = C_GetLabelNameID(SectorLabels, §orH, strtolower(tlabel,Bstrlen(tlabel)));
|
lLabelID = C_GetLabelNameID(SectorLabels, §orH, Bstrtolower(tlabel));
|
||||||
else if (id == g_iWallVarID)
|
else if (id == g_iWallVarID)
|
||||||
lLabelID = C_GetLabelNameID(WallLabels, &wallH, strtolower(tlabel,Bstrlen(tlabel)));
|
lLabelID = C_GetLabelNameID(WallLabels, &wallH, Bstrtolower(tlabel));
|
||||||
//printf("LabelID is %d\n",lLabelID);
|
//printf("LabelID is %d\n",lLabelID);
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
@ -2233,11 +2233,11 @@ repeatcase:
|
||||||
//printf("found xxx label of '%s'\n", label+(g_numLabels*MAXLABELLEN));
|
//printf("found xxx label of '%s'\n", label+(g_numLabels*MAXLABELLEN));
|
||||||
|
|
||||||
if (tw==CON_GETSECTOR || tw==CON_SETSECTOR)
|
if (tw==CON_GETSECTOR || tw==CON_SETSECTOR)
|
||||||
lLabelID = C_GetLabelNameID(SectorLabels, §orH, strtolower(tlabel,Bstrlen(tlabel)));
|
lLabelID = C_GetLabelNameID(SectorLabels, §orH, Bstrtolower(tlabel));
|
||||||
else if (tw==CON_GETWALL || tw==CON_SETWALL)
|
else if (tw==CON_GETWALL || tw==CON_SETWALL)
|
||||||
lLabelID = C_GetLabelNameID(WallLabels, &wallH, strtolower(tlabel,Bstrlen(tlabel)));
|
lLabelID = C_GetLabelNameID(WallLabels, &wallH, Bstrtolower(tlabel));
|
||||||
else // if (tw==CON_GETSPRITE || tw==CON_SETSPRITE || tw==CON_GETTSPR || tw==CON_SETTSPR)
|
else // if (tw==CON_GETSPRITE || tw==CON_SETSPRITE || tw==CON_GETTSPR || tw==CON_SETTSPR)
|
||||||
lLabelID = C_GetLabelNameID(SpriteLabels, &spriteH, strtolower(tlabel,Bstrlen(tlabel)));
|
lLabelID = C_GetLabelNameID(SpriteLabels, &spriteH, Bstrtolower(tlabel));
|
||||||
|
|
||||||
if (lLabelID == -1)
|
if (lLabelID == -1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -790,7 +790,7 @@ void P_ResetStatus(int32_t snum)
|
||||||
|
|
||||||
if ((aplWeaponWorksLike[p->curr_weapon][snum] == PISTOL_WEAPON) &&
|
if ((aplWeaponWorksLike[p->curr_weapon][snum] == PISTOL_WEAPON) &&
|
||||||
(aplWeaponReload[p->curr_weapon][snum] > aplWeaponTotalTime[p->curr_weapon][snum]))
|
(aplWeaponReload[p->curr_weapon][snum] > aplWeaponTotalTime[p->curr_weapon][snum]))
|
||||||
p->kickback_pic = aplWeaponTotalTime[p->curr_weapon][snum]+1;
|
p->kickback_pic = aplWeaponTotalTime[p->curr_weapon][snum];
|
||||||
else p->kickback_pic = 0;
|
else p->kickback_pic = 0;
|
||||||
|
|
||||||
p->weapon_pos = 6;
|
p->weapon_pos = 6;
|
||||||
|
@ -820,8 +820,8 @@ void P_ResetWeapons(int32_t snum)
|
||||||
p->ammo_amount[weapon] = 0;
|
p->ammo_amount[weapon] = 0;
|
||||||
|
|
||||||
p->weapon_pos = 6;
|
p->weapon_pos = 6;
|
||||||
p->kickback_pic = 5;
|
|
||||||
p->curr_weapon = PISTOL_WEAPON;
|
p->curr_weapon = PISTOL_WEAPON;
|
||||||
|
p->kickback_pic = aplWeaponTotalTime[p->curr_weapon][snum];
|
||||||
p->gotweapon = ((1<<PISTOL_WEAPON) | (1<<KNEE_WEAPON) | (1<<HANDREMOTE_WEAPON));
|
p->gotweapon = ((1<<PISTOL_WEAPON) | (1<<KNEE_WEAPON) | (1<<HANDREMOTE_WEAPON));
|
||||||
p->ammo_amount[PISTOL_WEAPON] = min(p->max_ammo_amount[PISTOL_WEAPON], 48);
|
p->ammo_amount[PISTOL_WEAPON] = min(p->max_ammo_amount[PISTOL_WEAPON], 48);
|
||||||
p->last_weapon = -1;
|
p->last_weapon = -1;
|
||||||
|
@ -867,7 +867,12 @@ static void resetprestat(int32_t snum,int32_t g)
|
||||||
p->max_actors_killed = 0;
|
p->max_actors_killed = 0;
|
||||||
p->lastrandomspot = 0;
|
p->lastrandomspot = 0;
|
||||||
p->weapon_pos = 6;
|
p->weapon_pos = 6;
|
||||||
p->kickback_pic = 5;
|
|
||||||
|
if ((aplWeaponWorksLike[p->curr_weapon][snum] == PISTOL_WEAPON) &&
|
||||||
|
(aplWeaponReload[p->curr_weapon][snum] > aplWeaponTotalTime[p->curr_weapon][snum]))
|
||||||
|
p->kickback_pic = aplWeaponTotalTime[p->curr_weapon][snum];
|
||||||
|
else p->kickback_pic = 0;
|
||||||
|
|
||||||
p->last_weapon = -1;
|
p->last_weapon = -1;
|
||||||
p->weapreccnt = 0;
|
p->weapreccnt = 0;
|
||||||
p->interface_toggle_flag = 0;
|
p->interface_toggle_flag = 0;
|
||||||
|
|
Loading…
Reference in a new issue