aboutsummaryrefslogtreecommitdiff
path: root/games/ioquake3
diff options
context:
space:
mode:
Diffstat (limited to 'games/ioquake3')
-rw-r--r--games/ioquake3/Makefile2
-rw-r--r--games/ioquake3/files/patch-code-qcommon-vm_interpreted.c34
-rw-r--r--games/ioquake3/pkg-message7
3 files changed, 37 insertions, 6 deletions
diff --git a/games/ioquake3/Makefile b/games/ioquake3/Makefile
index 25937c453d4a..cf9fdbe68392 100644
--- a/games/ioquake3/Makefile
+++ b/games/ioquake3/Makefile
@@ -7,7 +7,7 @@
PORTNAME?= ioquake3
DISTVERSION?= 1.36
-PORTREVISION?= 2
+PORTREVISION?= 3
CATEGORIES= games
MASTER_SITES?= http://ioquake3.org/files/${DISTVERSION}/
diff --git a/games/ioquake3/files/patch-code-qcommon-vm_interpreted.c b/games/ioquake3/files/patch-code-qcommon-vm_interpreted.c
new file mode 100644
index 000000000000..1e9b6ee4d54b
--- /dev/null
+++ b/games/ioquake3/files/patch-code-qcommon-vm_interpreted.c
@@ -0,0 +1,34 @@
+--- code/qcommon/vm_interpreted.c 2009/11/01 19:58:07 1717
++++ code/qcommon/vm_interpreted.c 2010/01/16 10:55:51 1772
+@@ -516,18 +516,20 @@
+
+ //VM_LogSyscalls( (int *)&image[ programStack + 4 ] );
+ {
+- intptr_t* argptr = (intptr_t *)&image[ programStack + 4 ];
+- #if __WORDSIZE == 64
+- // the vm has ints on the stack, we expect
+- // longs so we have to convert it
+- intptr_t argarr[16];
+- int i;
+- for (i = 0; i < 16; ++i) {
+- argarr[i] = *(int*)&image[ programStack + 4 + 4*i ];
++ // the vm has ints on the stack, we expect
++ // pointers so we might have to convert it
++ if (sizeof(intptr_t) != sizeof(int)) {
++ intptr_t argarr[16];
++ int *imagePtr = (int *)&image[programStack];
++ int i;
++ for (i = 0; i < 16; ++i) {
++ argarr[i] = *(++imagePtr);
++ }
++ r = vm->systemCall( argarr );
++ } else {
++ intptr_t* argptr = (intptr_t *)&image[ programStack + 4 ];
++ r = vm->systemCall( argptr );
+ }
+- argptr = argarr;
+- #endif
+- r = vm->systemCall( argptr );
+ }
+
+ #ifdef DEBUG_VM
diff --git a/games/ioquake3/pkg-message b/games/ioquake3/pkg-message
index 118067a15b44..999553264ee7 100644
--- a/games/ioquake3/pkg-message
+++ b/games/ioquake3/pkg-message
@@ -1,14 +1,11 @@
==============================================================================
-The input devices are now handled by SDL. Some mouse buttons will have
-different aliases and the mouse speed needs to be readjusted.
+Should the game freeze when entering a match, try to change the value of
+com_zoneMegs (e.g. to 48).
The configuration files are saved to ~/.ioquake3 instead of ~/.q3a because
they have additional variables which would be removed if other engines
overwrite them. But you can safely copy the original directory to the new one
for the first time.
-Should you encounter freezes when playing a demo or single player game,
-rebuild without client libraries.
-
==============================================================================