aboutsummaryrefslogtreecommitdiff
path: root/games/uox3
diff options
context:
space:
mode:
Diffstat (limited to 'games/uox3')
-rw-r--r--games/uox3/Makefile2
-rw-r--r--games/uox3/files/patch-af59
-rw-r--r--games/uox3/files/patch-ag12
-rw-r--r--games/uox3/files/patch-ah29
-rw-r--r--games/uox3/files/patch-ai12
-rw-r--r--games/uox3/files/patch-aj33
-rw-r--r--games/uox3/files/patch-ak226
-rw-r--r--games/uox3/files/patch-al80
-rw-r--r--games/uox3/files/patch-am37
-rw-r--r--games/uox3/files/patch-an28
10 files changed, 517 insertions, 1 deletions
diff --git a/games/uox3/Makefile b/games/uox3/Makefile
index 8364b6ad2f11..5600f4367af6 100644
--- a/games/uox3/Makefile
+++ b/games/uox3/Makefile
@@ -27,7 +27,7 @@ do-build:
cd ${WRKSRC}/dev && ${GMAKE} -f ${MAKEFILE} CFLAGS="${CFLAGS}" ${ALL_TARGET}
do-install:
- ${RM} ${WRKDIR}/uox/uox3.ini.orig
+ -${RM} ${WRKDIR}/uox/uox3.ini.orig
${MKDIR} ${PREFIX}/uox3
for FILE in ${WRKDIR}/uox/* ; do \
${INSTALL_DATA} $${FILE} ${PREFIX}/uox3 ;\
diff --git a/games/uox3/files/patch-af b/games/uox3/files/patch-af
new file mode 100644
index 000000000000..2b08b09c2336
--- /dev/null
+++ b/games/uox3/files/patch-af
@@ -0,0 +1,59 @@
+--- work/dev/archive.cpp.orig Tue Feb 9 00:14:28 1999
++++ work/dev/archive.cpp Sun Feb 27 10:50:19 2000
+@@ -44,6 +44,11 @@
+ //
+ #include "uox3.h"
+
++void _itoa(char *a, int b, int c)
++{
++ sprintf(a, "%d", b);
++}
++
+ void fileArchive(char *pFile2Archive, char *pArchiveDir)
+ {
+ char ext[255] = "";
+@@ -98,7 +103,7 @@
+ ptime = localtime(&mytime);
+
+ // Create the 4 digit year date
+- _itoa((ptime->tm_year + 1900), intdate, 10);
++ _itoa(intdate, (ptime->tm_year + 1900), 10);
+ strcpy(archiveid, intdate);
+
+ // Create the 3 digit day of the year date
+@@ -107,7 +112,7 @@
+ strcpy(temp, "0");
+ if (ptime->tm_yday < 100)
+ strcpy(temp, "00");
+- _itoa(ptime->tm_yday, intdate, 10);
++ _itoa(intdate, ptime->tm_yday, 10);
+ strcat(temp, intdate);
+ strcat(archiveid, temp);
+
+@@ -116,7 +121,7 @@
+ strcpy(temp, "");
+ if (ptime->tm_hour < 10)
+ strcpy(temp, "0");
+- _itoa(ptime->tm_hour, intdate, 10);
++ _itoa(intdate, ptime->tm_hour, 10);
+ strcat(temp, intdate);
+ strcat(archiveid, temp);
+
+@@ -124,7 +129,7 @@
+ strcpy(temp, "");
+ if (ptime->tm_min < 10)
+ strcpy(temp, "0");
+- _itoa(ptime->tm_min, intdate, 10);
++ _itoa(intdate, ptime->tm_min, 10);
+ strcat(temp, intdate);
+ strcat(archiveid, temp);
+
+@@ -132,7 +137,7 @@
+ strcpy(temp, "");
+ if (ptime->tm_sec < 10)
+ strcpy(temp, "0");
+- _itoa(ptime->tm_sec, intdate, 10);
++ _itoa(intdate, ptime->tm_sec, 10);
+ strcat(temp, intdate);
+ strcat(archiveid, temp);
+
diff --git a/games/uox3/files/patch-ag b/games/uox3/files/patch-ag
new file mode 100644
index 000000000000..b4b98c070cd0
--- /dev/null
+++ b/games/uox3/files/patch-ag
@@ -0,0 +1,12 @@
+diff -ruN work.orig/dev/combat.cpp work/dev/combat.cpp
+--- work.orig/dev/combat.cpp Mon Feb 8 22:14:28 1999
++++ work/dev/combat.cpp Fri Sep 10 17:31:40 1999
+@@ -960,7 +960,7 @@
+ chars[c].targ = s;
+ chars[c].npcWander=2; //set wander mode Tauriel
+ npcToggleCombat(c);
+- chars[c].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[c].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
+
+ soundeffect2(c, 0x01, 0xFE); //Tauriel 1-9-99 changed to stop crashing used to call soundeffect (expeted socket)
+ staticeffect(c, 0x37, 0x2A, 0x09, 0x06);
diff --git a/games/uox3/files/patch-ah b/games/uox3/files/patch-ah
new file mode 100644
index 000000000000..3cc3457651ba
--- /dev/null
+++ b/games/uox3/files/patch-ah
@@ -0,0 +1,29 @@
+--- work/dev/globals.cpp.orig Tue Feb 9 00:14:28 1999
++++ work/dev/globals.cpp Sun Feb 27 11:21:52 2000
+@@ -31,7 +31,7 @@
+ char noaccount[3]="\x82\x00";
+ char nopass[3]="\x82\x03";
+ char acctblock[3]="\x82\x02";
+-char pause[3]="\x33\x01";
++char xpause[3]="\x33\x01";
+ char restart[3]="\x33\x00";
+ char goxyz[20]="\x20\x00\x05\xA8\x90\x01\x90\x00\x83\xFF\x00\x06\x08\x06\x49\x00\x00\x02\x00";
+ char wearitem[16]="\x2E\x40\x0A\x00\x01\x00\x00\x00\x01\x00\x05\xA8\x90\x00\x00";
+@@ -87,7 +87,7 @@
+ #ifdef _MSVC
+ long int oldtime, newtime;
+ #else
+-unsigned long int oldtime, newtime; //for autosaving
++time_t oldtime, newtime; //for autosaving
+ #endif
+ int autosaved, saveinterval, heartbeat;
+ char saveintervalstr[4];
+@@ -120,7 +120,7 @@
+ unsigned int acctcount;
+ unsigned int servcount;
+ unsigned int startcount;
+-char acct[MAXACCT][3][31]; // Account list
++char xacct[MAXACCT][3][31]; // Account list
+ char acctinuse[MAXACCT];
+ char serv[MAXSERV][2][30]; // Servers list
+ char start[MAXSTART][5][30]; // Startpoints list
diff --git a/games/uox3/files/patch-ai b/games/uox3/files/patch-ai
new file mode 100644
index 000000000000..01f971b24966
--- /dev/null
+++ b/games/uox3/files/patch-ai
@@ -0,0 +1,12 @@
+diff -ruN work.orig/dev/makefile work/dev/makefile
+--- work.orig/dev/makefile Fri Nov 27 23:34:50 1998
++++ work/dev/makefile Fri Sep 10 17:29:52 1999
+@@ -27,7 +27,7 @@
+ # Objects
+ OBJS := $(patsubst %.cpp, %.o, $(SRC))
+
+-C_FLAGS = $(WARN) $(OTHER) $(OPT) $(DEBUG)
++C_FLAGS = $(CFLAGS) $(WARN) $(OTHER) $(OPT) $(DEBUG)
+
+ all:
+ @echo Please specify one of the following:
diff --git a/games/uox3/files/patch-aj b/games/uox3/files/patch-aj
new file mode 100644
index 000000000000..174f88ea8dfc
--- /dev/null
+++ b/games/uox3/files/patch-aj
@@ -0,0 +1,33 @@
+diff -ruN work.orig/dev/skills.cpp work/dev/skills.cpp
+--- work.orig/dev/skills.cpp Mon Feb 8 22:14:30 1999
++++ work/dev/skills.cpp Fri Sep 10 17:32:02 1999
+@@ -1302,12 +1302,12 @@
+ if (chars[target].npc)
+ {
+ if (!(chars[target].war)) npcToggleCombat(target);
+- chars[target].npcmovetime=(int)((getclock()+(NPCSPEED*CLOCKS_PER_SEC)));
++ chars[target].npcmovetime=(unsigned long int)((getclock()+(NPCSPEED*CLOCKS_PER_SEC)));
+ }
+ if (chars[target2].npc)
+ {
+ if (!(chars[target2].war)) npcToggleCombat(target2);
+- chars[target2].npcmovetime=(int)((getclock()+(NPCSPEED*CLOCKS_PER_SEC)));
++ chars[target2].npcmovetime=(unsigned long int)((getclock()+(NPCSPEED*CLOCKS_PER_SEC)));
+ }
+ sprintf(temp, "* You see %s attacking %s *", chars[target].name, chars[target2].name);
+ for (i=0;i<now;i++)
+@@ -1342,12 +1342,12 @@
+ if (chars[target].npc)
+ {
+ if (!(chars[target].war)) npcToggleCombat(target);
+- chars[target].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[target].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
+ }
+ if (chars[target2].npc)
+ {
+ if (!(chars[target2].war)) npcToggleCombat(target2);
+- chars[target2].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[target2].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
+ }
+ sprintf(temp, "* You see %s attacking %s *", chars[target].name, chars[target2].name);
+ for (i=0;i<now;i++)
diff --git a/games/uox3/files/patch-ak b/games/uox3/files/patch-ak
new file mode 100644
index 000000000000..9efdef5cc644
--- /dev/null
+++ b/games/uox3/files/patch-ak
@@ -0,0 +1,226 @@
+--- work/dev/uox3.cpp.orig Sun Feb 14 02:14:34 1999
++++ work/dev/uox3.cpp Sun Feb 27 11:29:33 2000
+@@ -2056,7 +2056,7 @@
+ count2=(count*19)+5;
+ bpopen2[1]=count2/256;
+ bpopen2[2]=count2%256;
+-// xsend(s, pause, 2, 0);
++// xsend(s, xpause, 2, 0);
+ xsend(s, bpopen2, 5, 0);
+ for (i=0;i<contsp[serhash].max;i++)
+ {
+@@ -2336,11 +2336,11 @@
+ for (i=0;i<acctcount;i++)
+ {
+ t=0;
+- if (strlen(&buffer[s][1])==strlen(acct[i][0]))
++ if (strlen(&buffer[s][1])==strlen(xacct[i][0]))
+ {
+ t=1;
+ for (j=0;j<strlen(&buffer[s][1]);j++)
+- if (toupper(buffer[s][j+1])!=toupper(acct[i][0][j])) t=0;
++ if (toupper(buffer[s][j+1])!=toupper(xacct[i][0][j])) t=0;
+ if (strlen(&buffer[s][1])==0) t=0;
+ }
+ if (t==1) acctno[s]=i;
+@@ -2349,15 +2349,15 @@
+ {
+ psplit(&buffer[s][31]);
+ t=0;
+- if (strlen(pass1)==strlen(acct[acctno[s]][1]))
++ if (strlen(pass1)==strlen(xacct[acctno[s]][1]))
+ {
+ t=1;
+ for (j=0;j<strlen(pass1);j++)
+- if (toupper(pass1[j])!=toupper(acct[acctno[s]][1][j])) t=0;
++ if (toupper(pass1[j])!=toupper(xacct[acctno[s]][1][j])) t=0;
+ if (strlen(pass1)==0) t=0;
+- //if ((acct[acctno[s]][1][0]=='x')&&(acct[acctno[s]][1][1]=='x')&&(acct[acctno[s]][1][2]=='x'))
++ //if ((xacct[acctno[s]][1][0]=='x')&&(xacct[acctno[s]][1][1]=='x')&&(xacct[acctno[s]][1][2]=='x'))
+ //account banning by Anthracks 1-3-99
+- if (((acct[acctno[s]][1][0]=='x')&&(acct[acctno[s]][1][1]=='x')&&(acct[acctno[s]][1][2]=='x')) || acct[acctno[s]][2][0]=='1') // They are banned
++ if (((xacct[acctno[s]][1][0]=='x')&&(xacct[acctno[s]][1][1]=='x')&&(xacct[acctno[s]][1][2]=='x')) || xacct[acctno[s]][2][0]=='1') // They are banned
+ t=2;
+ }
+
+@@ -2521,11 +2521,11 @@
+ for (i=0;i<acctcount;i++)
+ {
+ t=0;
+- if (strlen(&buffer[s][5])==strlen(acct[i][0]))
++ if (strlen(&buffer[s][5])==strlen(xacct[i][0]))
+ {
+ t=1;
+ for (j=0;j<strlen(&buffer[s][5]);j++)
+- if (toupper(buffer[s][j+5])!=toupper(acct[i][0][j])) t=0;
++ if (toupper(buffer[s][j+5])!=toupper(xacct[i][0][j])) t=0;
+ if (strlen(&buffer[s][5])==0) t=0;
+ }
+ if (t==1) acctno[s]=i;
+@@ -2534,13 +2534,13 @@
+ {
+ psplit(&buffer[s][35]);
+ t=0;
+- if (strlen(pass1)==strlen(acct[acctno[s]][1]))
++ if (strlen(pass1)==strlen(xacct[acctno[s]][1]))
+ {
+ t=1;
+ for (j=0;j<strlen(pass1);j++)
+- if (toupper(pass1[j])!=toupper(acct[acctno[s]][1][j])) t=0;
++ if (toupper(pass1[j])!=toupper(xacct[acctno[s]][1][j])) t=0;
+ if (strlen(pass1)==0) t=0;
+- if ((acct[acctno[s]][1][0]=='x')&&(acct[acctno[s]][1][1]=='x')&&(acct[acctno[s]][1][2]=='x'))
++ if ((xacct[acctno[s]][1][0]=='x')&&(xacct[acctno[s]][1][1]=='x')&&(xacct[acctno[s]][1][2]=='x'))
+ t=2;
+ }
+
+@@ -5228,7 +5228,7 @@
+ chars[t].summontimer=(getclock()+(CLOCKS_PER_SEC*20));
+ chars[t].npcWander=2;
+ chars[t].npcaitype=0x04;
+- chars[t].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[t].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
+ npctalkall(t,"Thou have suffered thy punishment, scoundrel.");
+ }
+ chars[t].targ=-1;
+@@ -6555,7 +6555,7 @@
+ updscroll[3]=2;
+ updscroll[8]=(y-10)/256;
+ updscroll[9]=(y-10)%256;
+-// xsend(s, pause, 2, 0);
++// xsend(s, xpause, 2, 0);
+ xsend(s, updscroll, 10, 0);
+ for (j=0;j<x;j++)
+ {
+@@ -6616,7 +6616,7 @@
+ updscroll[7]=i;
+ updscroll[8]=(y-10)/256;
+ updscroll[9]=(y-10)%256;
+-// xsend(s, pause, 2, 0);
++// xsend(s, xpause, 2, 0);
+ xsend(s, updscroll, 10, 0);
+ for (j=0;j<x;j++)
+ {
+@@ -6682,7 +6682,7 @@
+ bookpage[10]=p%256;
+ bookpage[11]=x/256;
+ bookpage[12]=x%256;
+-// xsend(s, pause, 2, 0);
++// xsend(s, xpause, 2, 0);
+ xsend(s, bookpage, 13, 0);
+ for (j=0;j<x;j++)
+ {
+@@ -6729,7 +6729,7 @@
+ }
+ while (strcmp(script1, "AUTHOR"));
+ sprintf(bookauthor, "%s", script2);
+-// xsend(s, pause, 2, 0);
++// xsend(s, xpause, 2, 0);
+ xsend(s, bookopen, 8, 0);
+ xsend(s, booktitle, 60, 0);
+ xsend(s, bookauthor, 30, 0);
+@@ -7739,7 +7739,7 @@
+ chars[currchar[s]].spiritspeaktimer=0; // initially set spiritspeak timer to 0
+
+ xsend(s, startup, 37, 0);
+-// xsend(s, pause, 2, 0);
++// xsend(s, xpause, 2, 0);
+ chars[currchar[s]].war=0;
+ wornitems(s, currchar[s]);
+ teleport(currchar[s]);
+@@ -8186,7 +8186,7 @@
+ chars[s].hidden=0;
+ }
+
+- if (chars[s].npc) chars[s].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC)); //reset move timer
++ if (chars[s].npc) chars[s].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC)); //reset move timer
+
+ switch(dir&0x0F)
+ {
+@@ -12857,7 +12857,7 @@
+ if ((chars[i].npc)&&!(chars[i].npcaitype==0x40))
+ {
+ if (!(chars[i].war)) npcToggleCombat(i);
+- chars[i].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[i].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
+ }
+ break;
+ }
+@@ -13071,7 +13071,11 @@
+ {
+ len=sizeof (struct sockaddr_in);
+ // printf("Waiting at accept()\n");
++#if defined(__FreeBSD__) && (__FreeBSD_version >= 400013)
++ client[now]=accept(a_socket, (struct sockaddr *)&client_addr, (socklen_t*)&len);
++#else
+ client[now]=accept(a_socket, (struct sockaddr *)&client_addr, &len);
++#endif
+ // printf("Done! :)\n");
+ if (client[now]<0)
+ {
+@@ -13411,7 +13415,7 @@
+ {
+ chars[i].oldnpcWander=chars[i].npcWander;
+ chars[i].npcWander=5;
+- chars[i].npcmovetime=(int)(currenttime+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[i].npcmovetime=(unsigned long int)(currenttime+(NPCSPEED*CLOCKS_PER_SEC));
+ }
+
+ if ((chars[i].npc)&&
+@@ -13419,7 +13423,7 @@
+ (chars[i].hp>chars[i].st*chars[i].reattackat/100))
+ {
+ chars[i].npcWander=chars[i].oldnpcWander;
+- chars[i].npcmovetime=(int)(currenttime+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[i].npcmovetime=(unsigned long int)(currenttime+(NPCSPEED*CLOCKS_PER_SEC));
+ chars[i].oldnpcWander=0; // so it won't save this at the wsc file
+ }
+ // end of flee code
+@@ -14614,7 +14618,7 @@
+ //near the player character:
+
+ dnpctime=0;
+- if (chars[i].npc && (chars[i].npcmovetime<=currenttime||(overflow)))
++ if (chars[i].npc && (chars[i].npcmovetime<=(unsigned long int)currenttime||(overflow)))
+ {
+ //kolours***************************************(09/19/98)
+ //fix for monsters to wander when within player's sphere
+@@ -14737,7 +14741,7 @@
+ } break;
+ }
+ }
+- chars[i].npcmovetime=(int)(currenttime+(NPCSPEED*CLOCKS_PER_SEC*(1+dnpctime))); //reset move timer
++ chars[i].npcmovetime=(unsigned long int)(currenttime+(NPCSPEED*CLOCKS_PER_SEC*(1+dnpctime))); //reset move timer
+ }
+ }
+ }
+@@ -17537,12 +17541,12 @@
+ if (chars[target].npc)
+ {
+ if (!(chars[target].war)) npcToggleCombat(target);
+- chars[target].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[target].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
+ }
+ if ((chars[target2].npc)&&!(chars[target2].npcaitype==0x40))
+ {
+ if (!(chars[target2].war)) npcToggleCombat(target2);
+- chars[target2].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[target2].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
+ }
+ sprintf(temp, "* You see %s attacking %s *", chars[target].name, chars[target2].name);
+ for (i=0;i<now;i++)
+@@ -17586,12 +17590,12 @@
+ if (chars[target].npc)
+ {
+ if (!(chars[target].war)) npcToggleCombat(target);
+- chars[target].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[target].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
+ }
+ if ((chars[target2].npc)&&!(chars[target2].npcaitype==0x40))
+ {
+ if (!(chars[target2].war)) npcToggleCombat(target2);
+- chars[target2].npcmovetime=(int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
++ chars[target2].npcmovetime=(unsigned long int)(getclock()+(NPCSPEED*CLOCKS_PER_SEC));
+ }
+ }
+
diff --git a/games/uox3/files/patch-al b/games/uox3/files/patch-al
new file mode 100644
index 000000000000..89072b089a3c
--- /dev/null
+++ b/games/uox3/files/patch-al
@@ -0,0 +1,80 @@
+--- work/dev/uox3.h.orig Sun Feb 14 18:56:03 1999
++++ work/dev/uox3.h Sun Feb 27 11:28:45 2000
+@@ -3,10 +3,10 @@
+ //#define VER "0.69.02 (Test Build 03)" //Increment to 01 when putting out official test build
+ #define PRODUCT "Ultima Offline eXperiment 3"
+ // Your timezone
+-#define TIMEZONE "GMT-7"
++#define TIMEZONE "GMT-8"
+ // Information about the person who compiled this (Put your info here!)
+-#define NAME "UOX3 Dev Team"
+-#define EMAIL "crwth@home.com"
++#define NAME "UOX3 FreeBSD Port User"
++#define EMAIL "ports@FreeBSD.ORG"
+ #ifdef _WIN32
+ #define __NT__
+ #define _MSVC
+@@ -16,7 +16,7 @@
+ #define _WIN32
+ #endif
+ #endif
+-#if defined _WIN32 && (!__MINGW32__)
++#if (defined _WIN32 && (!__MINGW32__)) || defined(__FreeBSD__)
+ #define PACK_NEEDED
+ #else
+ #define PACK_NEEDED __attribute__ ((packed))
+@@ -38,12 +38,18 @@
+ #include <sys/timeb.h>
+ #else
+ #include <ctype.h>
++#ifdef __FreeBSD__
++#include <sys/types.h>
++#include <sys/param.h>
++#endif // __FreeBSD__
+ #include <netinet/in.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
++#include <arpa/inet.h>
+ #include <netdb.h>
+ #include <sys/signal.h>
++#include <unistd.h>
+ #endif
+ #include "im.h"
+ #include "uoxlist.h"
+@@ -349,7 +355,7 @@
+ unsigned long int regen, regen2, regen3;
+ int runenumb; // Used for naming runes
+ int attacker; // Character who attacked this character
+- int npcmovetime; // Next time npc will walk
++ unsigned long int npcmovetime; // Next time npc will walk
+ char npcWander; // NPC Wander Mode
+ char oldnpcWander;
+ int ftarg; // NPC Follow Target
+@@ -735,7 +741,7 @@
+ extern char noaccount[3];
+ extern char nopass[3];
+ extern char acctblock[3];
+-extern char pause[3];
++extern char xpause[3];
+ extern char restart[3];
+ extern char goxyz[20];
+ extern char wearitem[16];
+@@ -800,7 +806,7 @@
+ #ifdef _MSVC
+ extern long int oldtime, newtime;
+ #else
+-extern unsigned long int oldtime, newtime; //for autosaving
++extern time_t oldtime, newtime; //for autosaving
+ #endif
+ extern int autosaved, saveinterval, heartbeat;
+ extern char saveintervalstr[4];
+@@ -833,7 +839,7 @@
+ extern unsigned int acctcount;
+ extern unsigned int servcount;
+ extern unsigned int startcount;
+-extern char acct[MAXACCT][3][31]; // Account list
++extern char xacct[MAXACCT][3][31]; // Account list
+ extern char acctinuse[MAXACCT];
+ extern char serv[MAXSERV][2][30]; // Servers list
+ extern char start[MAXSTART][5][30]; // Startpoints list
diff --git a/games/uox3/files/patch-am b/games/uox3/files/patch-am
new file mode 100644
index 000000000000..1487a667bc17
--- /dev/null
+++ b/games/uox3/files/patch-am
@@ -0,0 +1,37 @@
+diff -ruN work.orig/uox/uox3.ini work/uox/uox3.ini
+--- work.orig/uox/uox3.ini Thu Jan 14 19:19:52 1999
++++ work/uox/uox3.ini Fri Sep 10 17:29:52 1999
+@@ -1,5 +1,5 @@
+-UOXScript 24
+-ip here
++Your Shard's Name
++Your Shard's IP Address
+ ###
+ Britain
+ Castle Britannia
+@@ -92,18 +92,15 @@
+ 501
+ 30
+ ###
+-c:\uo\map0.mul
+-c:\uo\staidx0.mul
+-c:\uo\statics0.mul
+-c:\uo\verdata.mul
+-c:\uo\tiledata.mul
+-c:\uo\multi.mul
+-c:\uo\multi.idx
++map0.mul
++staidx0.mul
++statics0.mul
++verdata.mul
++tiledata.mul
++multi.mul
++multi.idx
+ 600
+ 0 Heartbeat, 1=on 0=off
+ 100
+ 0
+ 0
+-
+-
+-
diff --git a/games/uox3/files/patch-an b/games/uox3/files/patch-an
new file mode 100644
index 000000000000..9743c84bcc04
--- /dev/null
+++ b/games/uox3/files/patch-an
@@ -0,0 +1,28 @@
+--- work/dev/admin.cpp.orig Sun Feb 27 11:16:37 2000
++++ work/dev/admin.cpp Sun Feb 27 11:17:15 2000
+@@ -11,9 +11,9 @@
+ do
+ {
+ read2();
+- if (!(strcmp(script1, "NAME"))) sprintf(acct[acctcount][0], "%s", script2);
+- if (!(strcmp(script1, "PASS"))) sprintf(acct[acctcount][1], "%s", script2);
+- if (!(strcmp(script1, "BAN"))) acct[acctcount][2][0]='1';
++ if (!(strcmp(script1, "NAME"))) sprintf(xacct[acctcount][0], "%s", script2);
++ if (!(strcmp(script1, "PASS"))) sprintf(xacct[acctcount][1], "%s", script2);
++ if (!(strcmp(script1, "BAN"))) xacct[acctcount][2][0]='1';
+ }
+ while (strcmp(script1, "}")&&strcmp(script1, "EOF"));
+ }
+@@ -40,9 +40,9 @@
+ //printf("DEBUG: %i guest accounts\n",guestnum);
+ for (i=1;i<guestnum+1;i++)
+ {
+- sprintf(acct[acctcount][0], "guest%i", i);
+- sprintf(acct[acctcount][1], "guest%i", i);
+- //printf("DEBUG: Guest Account %i [L: %s] [P: %s]\n", i,acct[acctcount][0],acct[acctcount][1]);
++ sprintf(xacct[acctcount][0], "guest%i", i);
++ sprintf(xacct[acctcount][1], "guest%i", i);
++ //printf("DEBUG: Guest Account %i [L: %s] [P: %s]\n", i,xacct[acctcount][0],xacct[acctcount][1]);
+ acctcount++;
+ }
+ //printf("UOX3: %i guest accounts loaded.\n", guestnum);