summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
m---------librw0
-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
5 files changed, 6 insertions, 8 deletions
diff --git a/librw b/librw
-Subproject e6c7d910ffc32bc059c4e750a797fde51ee29fd
+Subproject 4541fe86f7ecb119c6fcb4fde7d08121341ce18
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;
}