summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNikolay Korolev <nickvnuk@gmail.com>2020-04-20 00:04:57 +0200
committerNikolay Korolev <nickvnuk@gmail.com>2020-04-20 00:04:57 +0200
commit7e4c68382416229cf0a58637bd9f308a6def1caa (patch)
tree61be1bbcb1242293639c1ad5a4ce3e3e72aea271 /src
parentsync with master (diff)
downloadre3-7e4c68382416229cf0a58637bd9f308a6def1caa.tar
re3-7e4c68382416229cf0a58637bd9f308a6def1caa.tar.gz
re3-7e4c68382416229cf0a58637bd9f308a6def1caa.tar.bz2
re3-7e4c68382416229cf0a58637bd9f308a6def1caa.tar.lz
re3-7e4c68382416229cf0a58637bd9f308a6def1caa.tar.xz
re3-7e4c68382416229cf0a58637bd9f308a6def1caa.tar.zst
re3-7e4c68382416229cf0a58637bd9f308a6def1caa.zip
Diffstat (limited to 'src')
-rw-r--r--src/control/Pickups.cpp2
-rw-r--r--src/control/Script.cpp6
-rw-r--r--src/core/Frontend.h2
-rw-r--r--src/core/templates.h4
4 files changed, 6 insertions, 8 deletions
diff --git a/src/control/Pickups.cpp b/src/control/Pickups.cpp
index f9605ca6..1bf6d9ce 100644
--- a/src/control/Pickups.cpp
+++ b/src/control/Pickups.cpp
@@ -491,7 +491,7 @@ CPickups::GenerateNewOne(CVector pos, uint32 modelIndex, uint8 type, uint32 quan
int32 slot = 0;
if (type == PICKUP_FLOATINGPACKAGE || type == PICKUP_NAUTICAL_MINE_INACTIVE) {
- for (slot = NUMPICKUPS; slot >= 0; slot--) {
+ for (slot = NUMPICKUPS-1; slot >= 0; slot--) {
if (aPickUps[slot].m_eType == PICKUP_NONE) {
bFreeFound = true;
break;
diff --git a/src/control/Script.cpp b/src/control/Script.cpp
index bfe2de34..4707042d 100644
--- a/src/control/Script.cpp
+++ b/src/control/Script.cpp
@@ -1675,13 +1675,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
return 0;
}
case COMMAND_GENERATE_RANDOM_INT:
-#ifdef FIX_BUGS
- // Not a very good fix but before switching to PS2 rand, it sort of works
- *GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) = CGeneral::GetRandomNumberInRange(0, 65535);
-#else
- /* On PC between 0 and 32767, even though script expects values between 0 and 65536 */
*GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) = CGeneral::GetRandomNumber();
-#endif
return 0;
case COMMAND_CREATE_CHAR:
{
diff --git a/src/core/Frontend.h b/src/core/Frontend.h
index 9fb0756f..ce9861c8 100644
--- a/src/core/Frontend.h
+++ b/src/core/Frontend.h
@@ -644,4 +644,4 @@ public:
static_assert(sizeof(CMenuManager) == 0x564, "CMenuManager: error");
extern CMenuManager FrontEndMenuManager;
-extern DWORD _dwOperatingSystemVersion; \ No newline at end of file
+extern unsigned long _dwOperatingSystemVersion; \ No newline at end of file
diff --git a/src/core/templates.h b/src/core/templates.h
index a1627357..51a24e4c 100644
--- a/src/core/templates.h
+++ b/src/core/templates.h
@@ -104,6 +104,10 @@ public:
return m_flags[i].free ? nil : (T*)&m_entries[i];
}
T *GetAt(int handle){
+#ifdef FIX_BUGS
+ if (handle == -1)
+ return nil;
+#endif
return m_flags[handle>>8].u == (handle & 0xFF) ?
(T*)&m_entries[handle >> 8] : nil;
}