From DONOTREPLY at icculus.org Mon Oct 3 21:21:35 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 3 Oct 2005 21:21:35 -0400 Subject: r132 - in trunk: lcc lcc/cpp lcc/etc lcc/lburg lcc/lib lcc/src q3asm Message-ID: <20051004012135.11763.qmail@icculus.org> Author: tma Date: 2005-10-03 21:21:34 -0400 (Mon, 03 Oct 2005) New Revision: 132 Removed: trunk/lcc/custom.mk Modified: trunk/lcc/cpp/cpp.c trunk/lcc/cpp/getopt.c trunk/lcc/cpp/include.c trunk/lcc/cpp/lex.c trunk/lcc/cpp/macro.c trunk/lcc/cpp/nlist.c trunk/lcc/cpp/tokens.c trunk/lcc/etc/bprint.c trunk/lcc/etc/lcc.c trunk/lcc/etc/linux.c trunk/lcc/lburg/gram.c trunk/lcc/lib/bbexit.c trunk/lcc/makefile trunk/lcc/src/bind.c trunk/lcc/src/bytecode.c trunk/lcc/src/c.h trunk/lcc/src/dag.c trunk/lcc/src/decl.c trunk/lcc/src/enode.c trunk/lcc/src/expr.c trunk/lcc/src/gen.c trunk/lcc/src/init.c trunk/lcc/src/inits.c trunk/lcc/src/input.c trunk/lcc/src/lex.c trunk/lcc/src/null.c trunk/lcc/src/output.c trunk/lcc/src/prof.c trunk/lcc/src/profio.c trunk/lcc/src/simp.c trunk/lcc/src/stab.c trunk/lcc/src/stmt.c trunk/lcc/src/sym.c trunk/lcc/src/symbolic.c trunk/lcc/src/trace.c trunk/lcc/src/types.c trunk/q3asm/Makefile Log: * Dewarninged the lcc and q3asm source * Removed traditional target platforms from the lcc build. This might break building lcc on Windows using nmake. Submit patches or be quiet :p * Default target for lcc is now bytecode, so -Wf-target=bytecode is no longer needed on the lcc command line Modified: trunk/lcc/cpp/cpp.c =================================================================== --- trunk/lcc/cpp/cpp.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/cpp/cpp.c 2005-10-04 01:21:34 UTC (rev 132) @@ -100,7 +100,7 @@ error(ERROR, "Unidentifiable control line"); return; /* else empty line */ } - if ((np = lookup(tp, 0))==NULL || (np->flag&ISKW)==0 && !skipping) { + if ((np = lookup(tp, 0))==NULL || ((np->flag&ISKW)==0 && !skipping)) { error(WARNING, "Unknown preprocessor control %t", tp); return; } @@ -215,7 +215,7 @@ tp = trp->bp+2; kline: if (tp+1>=trp->lp || tp->type!=NUMBER || tp+3lp - || (tp+3==trp->lp && ((tp+1)->type!=STRING)||*(tp+1)->t=='L')){ + || ((tp+3==trp->lp && ((tp+1)->type!=STRING))||*(tp+1)->t=='L')){ error(ERROR, "Syntax error in #line"); return; } Modified: trunk/lcc/cpp/getopt.c =================================================================== --- trunk/lcc/cpp/getopt.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/cpp/getopt.c 2005-10-04 01:21:34 UTC (rev 132) @@ -1,11 +1,11 @@ #include +#include #define EPR fprintf(stderr, #define ERR(str, chr) if(opterr){EPR "%s%c\n", str, chr);} int opterr = 1; int optind = 1; int optopt; char *optarg; -char *strchr(); int getopt (int argc, char *const argv[], const char *opts) @@ -14,7 +14,7 @@ int c; char *cp; - if (sp == 1) + if (sp == 1) { if (optind >= argc || argv[optind][0] != '-' || argv[optind][1] == '\0') return -1; @@ -22,6 +22,7 @@ optind++; return -1; } + } optopt = c = argv[optind][sp]; if (c == ':' || (cp=strchr(opts, c)) == 0) { ERR (": illegal option -- ", c); Modified: trunk/lcc/cpp/include.c =================================================================== --- trunk/lcc/cpp/include.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/cpp/include.c 2005-10-04 01:21:34 UTC (rev 132) @@ -59,7 +59,7 @@ if ((fd = open(iname, 0)) >= 0) break; } - if ( Mflag>1 || !angled&&Mflag==1 ) { + if ( Mflag>1 || (!angled&&Mflag==1) ) { write(1,objname,strlen(objname)); write(1,iname,strlen(iname)); write(1,"\n",1); Modified: trunk/lcc/cpp/lex.c =================================================================== --- trunk/lcc/cpp/lex.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/cpp/lex.c 2005-10-04 01:21:34 UTC (rev 132) @@ -52,183 +52,183 @@ /*const*/ struct fsm fsm[] = { /* start state */ - START, { C_XX }, ACT(UNCLASS,S_SELF), - START, { ' ', '\t', '\v' }, WS1, - START, { C_NUM }, NUM1, - START, { '.' }, NUM3, - START, { C_ALPH }, ID1, - START, { 'L' }, ST1, - START, { '"' }, ST2, - START, { '\'' }, CC1, - START, { '/' }, COM1, - START, { EOFC }, S_EOF, - START, { '\n' }, S_NL, - START, { '-' }, MINUS1, - START, { '+' }, PLUS1, - START, { '<' }, LT1, - START, { '>' }, GT1, - START, { '=' }, ASG1, - START, { '!' }, NOT1, - START, { '&' }, AND1, - START, { '|' }, OR1, - START, { '#' }, SHARP1, - START, { '%' }, PCT1, - START, { '[' }, ACT(SBRA,S_SELF), - START, { ']' }, ACT(SKET,S_SELF), - START, { '(' }, ACT(LP,S_SELF), - START, { ')' }, ACT(RP,S_SELF), - START, { '*' }, STAR1, - START, { ',' }, ACT(COMMA,S_SELF), - START, { '?' }, ACT(QUEST,S_SELF), - START, { ':' }, ACT(COLON,S_SELF), - START, { ';' }, ACT(SEMIC,S_SELF), - START, { '{' }, ACT(CBRA,S_SELF), - START, { '}' }, ACT(CKET,S_SELF), - START, { '~' }, ACT(TILDE,S_SELF), - START, { '^' }, CIRC1, + {START, { C_XX }, ACT(UNCLASS,S_SELF)}, + {START, { ' ', '\t', '\v' }, WS1}, + {START, { C_NUM }, NUM1}, + {START, { '.' }, NUM3}, + {START, { C_ALPH }, ID1}, + {START, { 'L' }, ST1}, + {START, { '"' }, ST2}, + {START, { '\'' }, CC1}, + {START, { '/' }, COM1}, + {START, { EOFC }, S_EOF}, + {START, { '\n' }, S_NL}, + {START, { '-' }, MINUS1}, + {START, { '+' }, PLUS1}, + {START, { '<' }, LT1}, + {START, { '>' }, GT1}, + {START, { '=' }, ASG1}, + {START, { '!' }, NOT1}, + {START, { '&' }, AND1}, + {START, { '|' }, OR1}, + {START, { '#' }, SHARP1}, + {START, { '%' }, PCT1}, + {START, { '[' }, ACT(SBRA,S_SELF)}, + {START, { ']' }, ACT(SKET,S_SELF)}, + {START, { '(' }, ACT(LP,S_SELF)}, + {START, { ')' }, ACT(RP,S_SELF)}, + {START, { '*' }, STAR1}, + {START, { ',' }, ACT(COMMA,S_SELF)}, + {START, { '?' }, ACT(QUEST,S_SELF)}, + {START, { ':' }, ACT(COLON,S_SELF)}, + {START, { ';' }, ACT(SEMIC,S_SELF)}, + {START, { '{' }, ACT(CBRA,S_SELF)}, + {START, { '}' }, ACT(CKET,S_SELF)}, + {START, { '~' }, ACT(TILDE,S_SELF)}, + {START, { '^' }, CIRC1}, /* saw a digit */ - NUM1, { C_XX }, ACT(NUMBER,S_SELFB), - NUM1, { C_NUM, C_ALPH, '.' }, NUM1, - NUM1, { 'E', 'e' }, NUM2, - NUM1, { '_' }, ACT(NUMBER,S_SELFB), + {NUM1, { C_XX }, ACT(NUMBER,S_SELFB)}, + {NUM1, { C_NUM, C_ALPH, '.' }, NUM1}, + {NUM1, { 'E', 'e' }, NUM2}, + {NUM1, { '_' }, ACT(NUMBER,S_SELFB)}, /* saw possible start of exponent, digits-e */ - NUM2, { C_XX }, ACT(NUMBER,S_SELFB), - NUM2, { '+', '-' }, NUM1, - NUM2, { C_NUM, C_ALPH }, NUM1, - NUM2, { '_' }, ACT(NUMBER,S_SELFB), + {NUM2, { C_XX }, ACT(NUMBER,S_SELFB)}, + {NUM2, { '+', '-' }, NUM1}, + {NUM2, { C_NUM, C_ALPH }, NUM1}, + {NUM2, { '_' }, ACT(NUMBER,S_SELFB)}, /* saw a '.', which could be a number or an operator */ - NUM3, { C_XX }, ACT(DOT,S_SELFB), - NUM3, { '.' }, DOTS1, - NUM3, { C_NUM }, NUM1, + {NUM3, { C_XX }, ACT(DOT,S_SELFB)}, + {NUM3, { '.' }, DOTS1}, + {NUM3, { C_NUM }, NUM1}, - DOTS1, { C_XX }, ACT(UNCLASS, S_SELFB), - DOTS1, { C_NUM }, NUM1, - DOTS1, { '.' }, ACT(ELLIPS, S_SELF), + {DOTS1, { C_XX }, ACT(UNCLASS, S_SELFB)}, + {DOTS1, { C_NUM }, NUM1}, + {DOTS1, { '.' }, ACT(ELLIPS, S_SELF)}, /* saw a letter or _ */ - ID1, { C_XX }, ACT(NAME,S_NAME), - ID1, { C_ALPH, C_NUM }, ID1, + {ID1, { C_XX }, ACT(NAME,S_NAME)}, + {ID1, { C_ALPH, C_NUM }, ID1}, /* saw L (start of wide string?) */ - ST1, { C_XX }, ACT(NAME,S_NAME), - ST1, { C_ALPH, C_NUM }, ID1, - ST1, { '"' }, ST2, - ST1, { '\'' }, CC1, + {ST1, { C_XX }, ACT(NAME,S_NAME)}, + {ST1, { C_ALPH, C_NUM }, ID1}, + {ST1, { '"' }, ST2}, + {ST1, { '\'' }, CC1}, /* saw " beginning string */ - ST2, { C_XX }, ST2, - ST2, { '"' }, ACT(STRING, S_SELF), - ST2, { '\\' }, ST3, - ST2, { '\n' }, S_STNL, - ST2, { EOFC }, S_EOFSTR, + {ST2, { C_XX }, ST2}, + {ST2, { '"' }, ACT(STRING, S_SELF)}, + {ST2, { '\\' }, ST3}, + {ST2, { '\n' }, S_STNL}, + {ST2, { EOFC }, S_EOFSTR}, /* saw \ in string */ - ST3, { C_XX }, ST2, - ST3, { '\n' }, S_STNL, - ST3, { EOFC }, S_EOFSTR, + {ST3, { C_XX }, ST2}, + {ST3, { '\n' }, S_STNL}, + {ST3, { EOFC }, S_EOFSTR}, /* saw ' beginning character const */ - CC1, { C_XX }, CC1, - CC1, { '\'' }, ACT(CCON, S_SELF), - CC1, { '\\' }, CC2, - CC1, { '\n' }, S_STNL, - CC1, { EOFC }, S_EOFSTR, + {CC1, { C_XX }, CC1}, + {CC1, { '\'' }, ACT(CCON, S_SELF)}, + {CC1, { '\\' }, CC2}, + {CC1, { '\n' }, S_STNL}, + {CC1, { EOFC }, S_EOFSTR}, /* saw \ in ccon */ - CC2, { C_XX }, CC1, - CC2, { '\n' }, S_STNL, - CC2, { EOFC }, S_EOFSTR, + {CC2, { C_XX }, CC1}, + {CC2, { '\n' }, S_STNL}, + {CC2, { EOFC }, S_EOFSTR}, /* saw /, perhaps start of comment */ - COM1, { C_XX }, ACT(SLASH, S_SELFB), - COM1, { '=' }, ACT(ASSLASH, S_SELF), - COM1, { '*' }, COM2, - COM1, { '/' }, COM4, + {COM1, { C_XX }, ACT(SLASH, S_SELFB)}, + {COM1, { '=' }, ACT(ASSLASH, S_SELF)}, + {COM1, { '*' }, COM2}, + {COM1, { '/' }, COM4}, /* saw / then *, start of comment */ - COM2, { C_XX }, COM2, - COM2, { '\n' }, S_COMNL, - COM2, { '*' }, COM3, - COM2, { EOFC }, S_EOFCOM, + {COM2, { C_XX }, COM2}, + {COM2, { '\n' }, S_COMNL}, + {COM2, { '*' }, COM3}, + {COM2, { EOFC }, S_EOFCOM}, /* saw the * possibly ending a comment */ - COM3, { C_XX }, COM2, - COM3, { '\n' }, S_COMNL, - COM3, { '*' }, COM3, - COM3, { '/' }, S_COMMENT, + {COM3, { C_XX }, COM2}, + {COM3, { '\n' }, S_COMNL}, + {COM3, { '*' }, COM3}, + {COM3, { '/' }, S_COMMENT}, /* // comment */ - COM4, { C_XX }, COM4, - COM4, { '\n' }, S_NL, - COM4, { EOFC }, S_EOFCOM, + {COM4, { C_XX }, COM4}, + {COM4, { '\n' }, S_NL}, + {COM4, { EOFC }, S_EOFCOM}, /* saw white space, eat it up */ - WS1, { C_XX }, S_WS, - WS1, { ' ', '\t', '\v' }, WS1, + {WS1, { C_XX }, S_WS}, + {WS1, { ' ', '\t', '\v' }, WS1}, /* saw -, check --, -=, -> */ - MINUS1, { C_XX }, ACT(MINUS, S_SELFB), - MINUS1, { '-' }, ACT(MMINUS, S_SELF), - MINUS1, { '=' }, ACT(ASMINUS,S_SELF), - MINUS1, { '>' }, ACT(ARROW,S_SELF), + {MINUS1, { C_XX }, ACT(MINUS, S_SELFB)}, + {MINUS1, { '-' }, ACT(MMINUS, S_SELF)}, + {MINUS1, { '=' }, ACT(ASMINUS,S_SELF)}, + {MINUS1, { '>' }, ACT(ARROW,S_SELF)}, /* saw +, check ++, += */ - PLUS1, { C_XX }, ACT(PLUS, S_SELFB), - PLUS1, { '+' }, ACT(PPLUS, S_SELF), - PLUS1, { '=' }, ACT(ASPLUS, S_SELF), + {PLUS1, { C_XX }, ACT(PLUS, S_SELFB)}, + {PLUS1, { '+' }, ACT(PPLUS, S_SELF)}, + {PLUS1, { '=' }, ACT(ASPLUS, S_SELF)}, /* saw <, check <<, <<=, <= */ - LT1, { C_XX }, ACT(LT, S_SELFB), - LT1, { '<' }, LT2, - LT1, { '=' }, ACT(LEQ, S_SELF), - LT2, { C_XX }, ACT(LSH, S_SELFB), - LT2, { '=' }, ACT(ASLSH, S_SELF), + {LT1, { C_XX }, ACT(LT, S_SELFB)}, + {LT1, { '<' }, LT2}, + {LT1, { '=' }, ACT(LEQ, S_SELF)}, + {LT2, { C_XX }, ACT(LSH, S_SELFB)}, + {LT2, { '=' }, ACT(ASLSH, S_SELF)}, /* saw >, check >>, >>=, >= */ - GT1, { C_XX }, ACT(GT, S_SELFB), - GT1, { '>' }, GT2, - GT1, { '=' }, ACT(GEQ, S_SELF), - GT2, { C_XX }, ACT(RSH, S_SELFB), - GT2, { '=' }, ACT(ASRSH, S_SELF), + {GT1, { C_XX }, ACT(GT, S_SELFB)}, + {GT1, { '>' }, GT2}, + {GT1, { '=' }, ACT(GEQ, S_SELF)}, + {GT2, { C_XX }, ACT(RSH, S_SELFB)}, + {GT2, { '=' }, ACT(ASRSH, S_SELF)}, /* = */ - ASG1, { C_XX }, ACT(ASGN, S_SELFB), - ASG1, { '=' }, ACT(EQ, S_SELF), + {ASG1, { C_XX }, ACT(ASGN, S_SELFB)}, + {ASG1, { '=' }, ACT(EQ, S_SELF)}, /* ! */ - NOT1, { C_XX }, ACT(NOT, S_SELFB), - NOT1, { '=' }, ACT(NEQ, S_SELF), + {NOT1, { C_XX }, ACT(NOT, S_SELFB)}, + {NOT1, { '=' }, ACT(NEQ, S_SELF)}, /* & */ - AND1, { C_XX }, ACT(AND, S_SELFB), - AND1, { '&' }, ACT(LAND, S_SELF), - AND1, { '=' }, ACT(ASAND, S_SELF), + {AND1, { C_XX }, ACT(AND, S_SELFB)}, + {AND1, { '&' }, ACT(LAND, S_SELF)}, + {AND1, { '=' }, ACT(ASAND, S_SELF)}, /* | */ - OR1, { C_XX }, ACT(OR, S_SELFB), - OR1, { '|' }, ACT(LOR, S_SELF), - OR1, { '=' }, ACT(ASOR, S_SELF), + {OR1, { C_XX }, ACT(OR, S_SELFB)}, + {OR1, { '|' }, ACT(LOR, S_SELF)}, + {OR1, { '=' }, ACT(ASOR, S_SELF)}, /* # */ - SHARP1, { C_XX }, ACT(SHARP, S_SELFB), - SHARP1, { '#' }, ACT(DSHARP, S_SELF), + {SHARP1, { C_XX }, ACT(SHARP, S_SELFB)}, + {SHARP1, { '#' }, ACT(DSHARP, S_SELF)}, /* % */ - PCT1, { C_XX }, ACT(PCT, S_SELFB), - PCT1, { '=' }, ACT(ASPCT, S_SELF), + {PCT1, { C_XX }, ACT(PCT, S_SELFB)}, + {PCT1, { '=' }, ACT(ASPCT, S_SELF)}, /* * */ - STAR1, { C_XX }, ACT(STAR, S_SELFB), - STAR1, { '=' }, ACT(ASSTAR, S_SELF), + {STAR1, { C_XX }, ACT(STAR, S_SELFB)}, + {STAR1, { '=' }, ACT(ASSTAR, S_SELF)}, /* ^ */ - CIRC1, { C_XX }, ACT(CIRC, S_SELFB), - CIRC1, { '=' }, ACT(ASCIRC, S_SELF), + {CIRC1, { C_XX }, ACT(CIRC, S_SELFB)}, + {CIRC1, { '=' }, ACT(ASCIRC, S_SELF)}, - -1 + {-1} }; /* first index is char, second is state */ @@ -254,7 +254,7 @@ continue; case C_ALPH: for (j=0; j<=256; j++) - if ('a'<=j&&j<='z' || 'A'<=j&&j<='Z' + if (('a'<=j&&j<='z') || ('A'<=j&&j<='Z') || j=='_') bigfsm[j][fp->state] = nstate; continue; @@ -305,7 +305,6 @@ int runelen; Source *s = cursource; int nmac = 0; - extern char outbuf[]; tp = trp->lp; ip = s->inp; Modified: trunk/lcc/cpp/macro.c =================================================================== --- trunk/lcc/cpp/macro.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/cpp/macro.c 2005-10-04 01:21:34 UTC (rev 132) @@ -71,7 +71,7 @@ if (np->flag&ISDEFINED) { if (comparetokens(def, np->vp) || (np->ap==NULL) != (args==NULL) - || np->ap && comparetokens(args, np->ap)) + || (np->ap && comparetokens(args, np->ap))) error(ERROR, "Macro redefinition of %t", trp->bp+2); } if (args) { @@ -141,7 +141,7 @@ || quicklook(tp->t[0], tp->len>1?tp->t[1]:0)==0 || (np = lookup(tp, 0))==NULL || (np->flag&(ISDEFINED|ISMAC))==0 - || tp->hideset && checkhideset(tp->hideset, np)) { + || (tp->hideset && checkhideset(tp->hideset, np))) { tp++; continue; } @@ -300,7 +300,7 @@ parens--; if (lp->type==DSHARP) lp->type = DSHARP1; /* ## not special in arg */ - if (lp->type==COMMA && parens==0 || parens<0 && (lp-1)->type!=LP) { + if ((lp->type==COMMA && parens==0) || (parens<0 && (lp-1)->type!=LP)) { if (*narg>=NARG-1) error(FATAL, "Sorry, too many macro arguments"); ttr.bp = ttr.tp = bp; @@ -339,7 +339,7 @@ if (rtr->tp->type==NAME && (argno = lookuparg(np, rtr->tp)) >= 0) { if ((rtr->tp+1)->type==DSHARP - || rtr->tp!=rtr->bp && (rtr->tp-1)->type==DSHARP) + || (rtr->tp!=rtr->bp && (rtr->tp-1)->type==DSHARP)) insertrow(rtr, 1, atr[argno]); else { copytokenrow(&tatr, atr[argno]); Modified: trunk/lcc/cpp/nlist.c =================================================================== --- trunk/lcc/cpp/nlist.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/cpp/nlist.c 2005-10-04 01:21:34 UTC (rev 132) @@ -20,26 +20,26 @@ int val; int flag; } kwtab[] = { - "if", KIF, ISKW, - "ifdef", KIFDEF, ISKW, - "ifndef", KIFNDEF, ISKW, - "elif", KELIF, ISKW, - "else", KELSE, ISKW, - "endif", KENDIF, ISKW, - "include", KINCLUDE, ISKW, - "define", KDEFINE, ISKW, - "undef", KUNDEF, ISKW, - "line", KLINE, ISKW, - "error", KERROR, ISKW, - "pragma", KPRAGMA, ISKW, - "eval", KEVAL, ISKW, - "defined", KDEFINED, ISDEFINED+ISUNCHANGE, - "__LINE__", KLINENO, ISMAC+ISUNCHANGE, - "__FILE__", KFILE, ISMAC+ISUNCHANGE, - "__DATE__", KDATE, ISMAC+ISUNCHANGE, - "__TIME__", KTIME, ISMAC+ISUNCHANGE, - "__STDC__", KSTDC, ISUNCHANGE, - NULL + {"if", KIF, ISKW}, + {"ifdef", KIFDEF, ISKW}, + {"ifndef", KIFNDEF, ISKW}, + {"elif", KELIF, ISKW}, + {"else", KELSE, ISKW}, + {"endif", KENDIF, ISKW}, + {"include", KINCLUDE, ISKW}, + {"define", KDEFINE, ISKW}, + {"undef", KUNDEF, ISKW}, + {"line", KLINE, ISKW}, + {"error", KERROR, ISKW}, + {"pragma", KPRAGMA, ISKW}, + {"eval", KEVAL, ISKW}, + {"defined", KDEFINED, ISDEFINED+ISUNCHANGE}, + {"__LINE__", KLINENO, ISMAC+ISUNCHANGE}, + {"__FILE__", KFILE, ISMAC+ISUNCHANGE}, + {"__DATE__", KDATE, ISMAC+ISUNCHANGE}, + {"__TIME__", KTIME, ISMAC+ISUNCHANGE}, + {"__STDC__", KSTDC, ISUNCHANGE}, + {NULL} }; unsigned long namebit[077+1]; Modified: trunk/lcc/cpp/tokens.c =================================================================== --- trunk/lcc/cpp/tokens.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/cpp/tokens.c 2005-10-04 01:21:34 UTC (rev 132) @@ -154,14 +154,14 @@ return; if (tp->wslen) { if (tp->flag&XPWS - && (wstab[tp->type] || trp->tp>trp->bp && wstab[(tp-1)->type])) { + && (wstab[tp->type] || (trp->tp>trp->bp && wstab[(tp-1)->type]))) { tp->wslen = 0; return; } tp->t[-1] = ' '; return; } - if (wstab[tp->type] || trp->tp>trp->bp && wstab[(tp-1)->type]) + if (wstab[tp->type] || (trp->tp>trp->bp && wstab[(tp-1)->type])) return; tt = newstring(tp->t, tp->len, 1); *tt++ = ' '; Deleted: trunk/lcc/custom.mk =================================================================== --- trunk/lcc/custom.mk 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/custom.mk 2005-10-04 01:21:34 UTC (rev 132) @@ -1 +0,0 @@ -BUILDDIR=.obj Modified: trunk/lcc/etc/bprint.c =================================================================== --- trunk/lcc/etc/bprint.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/etc/bprint.c 2005-10-04 01:21:34 UTC (rev 132) @@ -70,7 +70,7 @@ void emitdata(char *file) { FILE *fp; - if (fp = fopen(file, "w")) { + if ((fp = fopen(file, "w"))) { struct file *p; for (p = filelist; p; p = p->link) { int i; @@ -78,7 +78,7 @@ struct caller *r; fprintf(fp, "1\n%s\n", p->name); for (i = 0, q = p->funcs; q; i++, q = q->link) - if (r = q->callers) + if ((r = q->callers)) for (i--; r; r = r->link) i++; fprintf(fp, "%d\n", i); @@ -109,7 +109,7 @@ for (i = 0; dirs[i]; i++) { char buf[200]; sprintf(buf, "%s/%s", dirs[i], name); - if (fp = fopen(buf, "r")) + if ((fp = fopen(buf, "r"))) return fp; } return fopen(name, "r"); @@ -297,9 +297,9 @@ struct count *c = cursor->counts; for (l = 0, u = cursor->count - 1; l <= u; ) { int k = (l + u)/2; - if (c[k].y > y || c[k].y == y && c[k].x > x) + if (c[k].y > y || (c[k].y == y && c[k].x > x)) u = k - 1; - else if (c[k].y < y || c[k].y == y && c[k].x < x) + else if (c[k].y < y || (c[k].y == y && c[k].x < x)) l = k + 1; else return c[k].count; @@ -461,7 +461,7 @@ if (i < argc) { int nf = i < argc - 1 ? 1 : 0; for ( ; i < argc; i++, nf ? nf++ : 0) - if (p = findfile(string(argv[i]))) + if ((p = findfile(string(argv[i])))) (*f)(p, nf); else fprintf(stderr, "%s: no data for `%s'\n", progname, argv[i]); Modified: trunk/lcc/etc/lcc.c =================================================================== --- trunk/lcc/etc/lcc.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/etc/lcc.c 2005-10-04 01:21:34 UTC (rev 132) @@ -11,6 +11,7 @@ #include #include #include +#include #ifndef TEMPDIR #define TEMPDIR "/tmp" @@ -47,7 +48,6 @@ extern int suffix(char *, char *[], int); extern char *tempname(char *); -extern int access(char *, int); extern int getpid(void); extern char *cpp[], *include[], *com[], *as[],*ld[], inputs[], *suffixes[]; @@ -71,7 +71,7 @@ static char *progname; static List lccinputs; /* list of input directories */ -main(int argc, char *argv[]) { +int main(int argc, char *argv[]) { int i, j, nf; progname = argv[0]; @@ -93,7 +93,7 @@ tempdir = getenv("TMPDIR"); assert(tempdir); i = strlen(tempdir); - for (; i > 0 && tempdir[i-1] == '/' || tempdir[i-1] == '\\'; i--) + for (; (i > 0 && tempdir[i-1] == '/') || tempdir[i-1] == '\\'; i--) tempdir[i-1] = '\0'; if (argc <= 1) { help(); @@ -149,7 +149,7 @@ char *name = exists(argv[i]); if (name) { if (strcmp(name, argv[i]) != 0 - || nf > 1 && suffix(name, suffixes, 3) >= 0) + || (nf > 1 && suffix(name, suffixes, 3) >= 0)) fprintf(stderr, "%s:\n", name); filename(name, 0); } else @@ -214,7 +214,6 @@ #define _P_WAIT 0 extern int fork(void); extern int wait(int *); -extern void execv(const char *, char *[]); static int _spawnvp(int mode, const char *cmdname, char *argv[]) { int pid, n, status; @@ -261,7 +260,7 @@ } for (i = 0; status == 0 && av[i] != NULL; ) { int j = 0; - char *s; + char *s = NULL; for ( ; av[i] != NULL && (s = strchr(av[i], '\n')) == NULL; i++) argv[j++] = av[i]; if (s != NULL) { @@ -319,7 +318,7 @@ if (s && isdigit(s[1])) { int k = s[1] - '0'; assert(k >=1 && k <= 3); - if (b = lists[k-1]) { + if ((b = lists[k-1])) { b = b->link; av[j] = alloc(strlen(cmd[i]) + strlen(b->str) - 1); strncpy(av[j], cmd[i], s - cmd[i]); @@ -452,7 +451,7 @@ static List find(char *str, List list) { List b; - if (b = list) + if ((b = list)) do { if (strcmp(str, b->str) == 0) return b; @@ -508,7 +507,7 @@ if (strncmp("-tempdir", msgs[i], 8) == 0 && tempdir) fprintf(stderr, "; default=%s", tempdir); } -#define xx(v) if (s = getenv(#v)) fprintf(stderr, #v "=%s\n", s) +#define xx(v) if ((s = getenv(#v))) fprintf(stderr, #v "=%s\n", s) xx(LCCINPUTS); xx(LCCDIR); #ifdef WIN32 @@ -521,13 +520,13 @@ /* initinputs - if LCCINPUTS or include is defined, use them to initialize various lists */ static void initinputs(void) { char *s = getenv("LCCINPUTS"); - List list, b; + List b; if (s == 0 || (s = inputs)[0] == 0) s = "."; if (s) { lccinputs = path2list(s); - if (b = lccinputs) + if ((b = lccinputs)) do { b = b->link; if (strcmp(b->str, ".") != 0) { @@ -701,7 +700,7 @@ sep = ';'; while (*path) { char *p, buf[512]; - if (p = strchr(path, sep)) { + if ((p = strchr(path, sep))) { assert(p - path < sizeof buf); strncpy(buf, path, p - path); buf[p-path] = '\0'; @@ -767,7 +766,7 @@ for (i = 0; i < n; i++) { char *s = tails[i], *t; - for ( ; t = strchr(s, ';'); s = t + 1) { + for ( ; (t = strchr(s, ';')); s = t + 1) { int m = t - s; if (len > m && strncmp(&name[len-m], s, m) == 0) return i; Modified: trunk/lcc/etc/linux.c =================================================================== --- trunk/lcc/etc/linux.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/etc/linux.c 2005-10-04 01:21:34 UTC (rev 132) @@ -2,8 +2,6 @@ #include -static char rcsid[] = "Dummy rcsid"; - /* TTimo - 10-18-2001 our binaries are named q3lcc q3rcc and q3cpp @@ -26,7 +24,7 @@ "$1", "$2", "$3", 0 }; char *include[] = {"-I" LCCDIR "include", "-I" LCCDIR "gcc/include", "-I/usr/include", "-I" SYSTEM "include", 0 }; -char *com[] = {LCCDIR "q3rcc", "-target=x86/linux", "$1", "$2", "$3", 0 }; +char *com[] = {LCCDIR "q3rcc", "-target=bytecode", "$1", "$2", "$3", 0 }; char *as[] = { "/usr/bin/as", "-o", "$3", "$1", "$2", 0 }; // NOTE TTimo I don't think we have any use with the native linkage // our target is always bytecode.. Modified: trunk/lcc/lburg/gram.c =================================================================== --- trunk/lcc/lburg/gram.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/lburg/gram.c 2005-10-04 01:21:34 UTC (rev 132) @@ -18,9 +18,9 @@ #ifndef YYDONT_INCLUDE_STDIO #include #endif -#ifdef __cplusplus +//#ifdef __cplusplus TA stdlib.h applies to C too #include /* for malloc/realloc/free */ -#endif +//#endif #line 2 "lburg/gram.y" #include #include "lburg.h" @@ -227,7 +227,9 @@ #endif yygrow () { +#if YYDEBUG int old_stacksize = yystacksize; +#endif short *new_yyss; YYSTYPE *new_yyvs; @@ -469,7 +471,7 @@ *++yyvsp = yyval; yyloop: - if (yyn = yydefred[yystate]) goto yyreduce; + if ((yyn = yydefred[yystate])) goto yyreduce; yyn = yysindex[yystate]; if (yychar < 0) { @@ -509,13 +511,13 @@ if (yyerrflag) goto yyinrecovery; #ifdef lint goto yynewerror; +yynewerror: #endif -yynewerror: yyerror("syntax error"); #ifdef lint goto yyerrlab; +yyerrlab: #endif -yyerrlab: ++yynerrs; yyinrecovery: if (yyerrflag < 3) Modified: trunk/lcc/lib/bbexit.c =================================================================== --- trunk/lcc/lib/bbexit.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/lib/bbexit.c 2005-10-04 01:21:34 UTC (rev 132) @@ -55,7 +55,7 @@ for (i = 0; p->files[i]; i++) fprintf(fp, "%s\n", p->files[i]); for (i = 0, f = p->funcs; f; i++, f = f->link) - if (q = f->callers) + if ((q = f->callers)) for (i--; q; q = q->link) i++; fprintf(fp, "%d\n", i); Modified: trunk/lcc/makefile =================================================================== --- trunk/lcc/makefile 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/makefile 2005-10-04 01:21:34 UTC (rev 132) @@ -5,7 +5,7 @@ O=.o E= CC=cc -CFLAGS=-g -Wall +CFLAGS=-O2 -Wall -fno-strict-aliasing LDFLAGS= LD=cc AR=ar ruv @@ -13,9 +13,8 @@ DIFF=diff RM=rm -f RMDIR=rmdir +BUILDDIR=build TSTDIR=$(BUILDDIR)/$(TARGET)/tst -CUSTOM=custom.mk -include $(CUSTOM) B=$(BUILDDIR)/ T=$(TSTDIR)/ @@ -24,14 +23,18 @@ what: - at echo make all q3rcc lburg q3cpp q3lcc bprint liblcc triple clean clobber +makedirs: + @if [ ! -d $(B) ];then mkdir $(B);fi + @if [ ! -d $(T) ];then mkdir $(T);fi + all:: q3rcc lburg q3cpp q3lcc bprint liblcc -q3rcc: $Bq3rcc$E -lburg: $Blburg$E -q3cpp: $Bq3cpp$E -q3lcc: $Bq3lcc$E -bprint: $Bbprint$E -liblcc: $Bliblcc$A +q3rcc: makedirs $Bq3rcc$E +lburg: makedirs $Blburg$E +q3cpp: makedirs $Bq3cpp$E +q3lcc: makedirs $Bq3lcc$E +bprint: makedirs $Bbprint$E +liblcc: makedirs $Bliblcc$A RCCOBJS=$Balloc$O \ $Bbind$O \ @@ -61,13 +64,7 @@ $Bnull$O \ $Bsymbolic$O \ $Bgen$O \ - $Bbytecode$O \ - $Balpha$O \ - $Bmips$O \ - $Bsparc$O \ - $Bstab$O \ - $Bx86$O \ - $Bx86linux$O + $Bbytecode$O $Bq3rcc$E:: $Bmain$O $Blibrcc$A $(EXTRAOBJS) $(LD) $(LDFLAGS) -o $@ $Bmain$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS) Modified: trunk/lcc/src/bind.c =================================================================== --- trunk/lcc/src/bind.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/bind.c 2005-10-04 01:21:34 UTC (rev 132) @@ -7,17 +7,17 @@ extern Interface nullIR; extern Interface bytecodeIR; Binding bindings[] = { - "alpha/osf", &alphaIR, - "mips/irix", &mipsebIR, - "mips/ultrix", &mipselIR, - "sparc/sun", &sparcIR, - "sparc/solaris", &solarisIR, - "x86/win32", &x86IR, - "x86/linux", &x86linuxIR, - "symbolic/osf", &symbolic64IR, - "symbolic/irix", &symbolicIR, - "symbolic", &symbolicIR, - "null", &nullIR, - "bytecode", &bytecodeIR, - NULL, NULL + /*{ "alpha/osf", &alphaIR },*/ + /*{ "mips/irix", &mipsebIR },*/ + /*{ "mips/ultrix", &mipselIR },*/ + /*{ "sparc/sun", &sparcIR },*/ + /*{ "sparc/solaris", &solarisIR },*/ + /*{ "x86/win32", &x86IR },*/ + /*{ "x86/linux", &x86linuxIR },*/ + { "symbolic/osf", &symbolic64IR }, + { "symbolic/irix", &symbolicIR }, + { "symbolic", &symbolicIR }, + { "null", &nullIR }, + { "bytecode", &bytecodeIR }, + { NULL, NULL }, }; Modified: trunk/lcc/src/bytecode.c =================================================================== --- trunk/lcc/src/bytecode.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/bytecode.c 2005-10-04 01:21:34 UTC (rev 132) @@ -320,16 +320,16 @@ #define b_blockend blockend Interface bytecodeIR = { - 1, 1, 0, /* char */ - 2, 2, 0, /* short */ - 4, 4, 0, /* int */ - 4, 4, 0, /* long */ - 4, 4, 0, /* long long */ - 4, 4, 0, /* float */ // JDC: use inline floats - 4, 4, 0, /* double */ // JDC: don't ever emit 8 byte double code - 4, 4, 0, /* long double */ // JDC: don't ever emit 8 byte double code - 4, 4, 0, /* T* */ - 0, 4, 0, /* struct */ + {1, 1, 0}, /* char */ + {2, 2, 0}, /* short */ + {4, 4, 0}, /* int */ + {4, 4, 0}, /* long */ + {4, 4, 0}, /* long long */ + {4, 4, 0}, /* float */ // JDC: use inline floats + {4, 4, 0}, /* double */ // JDC: don't ever emit 8 byte double code + {4, 4, 0}, /* long double */ // JDC: don't ever emit 8 byte double code + {4, 4, 0}, /* T* */ + {0, 4, 0}, /* struct */ 0, /* little_endian */ 0, /* mulops_calls */ 0, /* wants_callb */ Modified: trunk/lcc/src/c.h =================================================================== --- trunk/lcc/src/c.h 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/c.h 2005-10-04 01:21:34 UTC (rev 132) @@ -14,7 +14,7 @@ #define BUFSIZE 4096 #define istypename(t,tsym) (kind[t] == CHAR \ - || t == ID && tsym && tsym->sclass == TYPEDEF) + || (t == ID && tsym && tsym->sclass == TYPEDEF)) #define sizeop(n) ((n)<<10) #define generic(op) ((op)&0x3F0) #define specific(op) ((op)&0x3FF) Modified: trunk/lcc/src/dag.c =================================================================== --- trunk/lcc/src/dag.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/dag.c 2005-10-04 01:21:34 UTC (rev 132) @@ -2,9 +2,9 @@ #define iscall(op) (generic(op) == CALL \ - || IR->mulops_calls \ + || (IR->mulops_calls \ && (generic(op)==DIV||generic(op)==MOD||generic(op)==MUL) \ - && ( optype(op)==U || optype(op)==I)) + && ( optype(op)==U || optype(op)==I))) static Node forest; static struct dag { struct node node; @@ -102,7 +102,7 @@ Node p = NULL, l, r; int op; - assert(tlab || flab || tlab == 0 && flab == 0); + assert(tlab || flab || (tlab == 0 && flab == 0)); if (tp == NULL) return NULL; if (tp->node) @@ -172,8 +172,8 @@ p = node(op, NULL, NULL, constant(ty, tp->u.v)); } break; case RIGHT: { if ( tp->kids[0] && tp->kids[1] && generic(tp->kids[1]->op) == ASGN - && (generic(tp->kids[0]->op) == INDIR - && tp->kids[0]->kids[0] == tp->kids[1]->kids[0] + && ((generic(tp->kids[0]->op) == INDIR + && tp->kids[0]->kids[0] == tp->kids[1]->kids[0]) || (tp->kids[0]->op == FIELD && tp->kids[0] == tp->kids[1]->kids[0]))) { assert(tlab == 0 && flab == 0); @@ -276,11 +276,11 @@ unsigned int fmask = fieldmask(f); unsigned int mask = fmask<kids[1]; - if (q->op == CNST+I && q->u.v.i == 0 - || q->op == CNST+U && q->u.v.u == 0) + if ((q->op == CNST+I && q->u.v.i == 0) + || (q->op == CNST+U && q->u.v.u == 0)) q = bittree(BAND, x, cnsttree(unsignedtype, (unsigned long)~mask)); - else if (q->op == CNST+I && (q->u.v.i&fmask) == fmask - || q->op == CNST+U && (q->u.v.u&fmask) == fmask) + else if ((q->op == CNST+I && (q->u.v.i&fmask) == fmask) + || (q->op == CNST+U && (q->u.v.u&fmask) == fmask)) q = bittree(BOR, x, cnsttree(unsignedtype, (unsigned long)mask)); else { listnodes(q, 0, 0); @@ -621,11 +621,11 @@ return forest; } static Node visit(Node p, int listed) { - if (p) + if (p) { if (p->syms[2]) p = tmpnode(p); - else if (p->count <= 1 && !iscall(p->op) - || p->count == 0 && iscall(p->op)) { + else if ((p->count <= 1 && !iscall(p->op)) + || (p->count == 0 && iscall(p->op))) { p->kids[0] = visit(p->kids[0], 0); p->kids[1] = visit(p->kids[1], 0); } @@ -654,6 +654,7 @@ if (!listed) p = tmpnode(p); }; + } return p; } static Node tmpnode(Node p) { Modified: trunk/lcc/src/decl.c =================================================================== --- trunk/lcc/src/decl.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/decl.c 2005-10-04 01:21:34 UTC (rev 132) @@ -115,10 +115,10 @@ type = INT; ty = inttype; } - if (size == SHORT && type != INT - || size == LONG+LONG && type != INT - || size == LONG && type != INT && type != DOUBLE - || sign && type != INT && type != CHAR) + if ((size == SHORT && type != INT) + || (size == LONG+LONG && type != INT) + || (size == LONG && type != INT && type != DOUBLE) + || (sign && type != INT && type != CHAR)) error("invalid type specification\n"); if (type == CHAR && sign) ty = sign == UNSIGNED ? unsignedchar : signedchar; @@ -196,7 +196,7 @@ } } else if (ty == NULL || !(isenum(ty) || - isstruct(ty) && (*unqual(ty)->u.sym->name < '1' || *unqual(ty)->u.sym->name > '9'))) + (isstruct(ty) && (*unqual(ty)->u.sym->name < '1' || *unqual(ty)->u.sym->name > '9')))) error("empty declaration\n"); test(';', stop); } @@ -220,9 +220,9 @@ if (!isfunc(ty) && p->defined && t == '=') error("redefinition of `%s' previously defined at %w\n", p->name, &p->src); - if (p->sclass == EXTERN && sclass == STATIC - || p->sclass == STATIC && sclass == AUTO - || p->sclass == AUTO && sclass == STATIC) + if ((p->sclass == EXTERN && sclass == STATIC) + || (p->sclass == STATIC && sclass == AUTO) + || (p->sclass == AUTO && sclass == STATIC)) warning("inconsistent linkage for `%s' previously declared at %w\n", p->name, &p->src); } @@ -416,7 +416,7 @@ error("missing parameter type\n"); n++; ty = dclr(specifier(&sclass), &id, NULL, 1); - if ( ty == voidtype && (ty1 || id) + if ( (ty == voidtype && (ty1 || id)) || ty1 == voidtype) error("illegal formal parameter types\n"); if (id == NULL) @@ -736,10 +736,10 @@ if (ty->u.f.oldstyle) warning("`%t %s()' is a non-ANSI definition\n", rty, id); else if (!(rty == inttype - && (n == 0 && callee[0] == NULL - || n == 2 && callee[0]->type == inttype + && ((n == 0 && callee[0] == NULL) + || (n == 2 && callee[0]->type == inttype && isptr(callee[1]->type) && callee[1]->type->type == charptype - && !variadic(ty)))) + && !variadic(ty))))) warning("`%s' is a non-ANSI definition\n", typestring(ty, id)); } p = lookup(id, identifiers); @@ -853,7 +853,7 @@ registers = append(retv, registers); } while (kind[t] == CHAR || kind[t] == STATIC - || istypename(t, tsym) && getchr() != ':') + || (istypename(t, tsym) && getchr() != ':')) decl(dcllocal); { int i; @@ -908,7 +908,7 @@ p->type, p->name); } if (p->sclass == AUTO - && (p->scope == PARAM && regcount == 0 + && ((p->scope == PARAM && regcount == 0) || p->scope >= LOCAL) && !p->addressed && isscalar(p->type) && p->ref >= 3.0) p->sclass = REGISTER; @@ -933,13 +933,14 @@ sclass = AUTO; } q = lookup(id, identifiers); - if (q && q->scope >= level - || q && q->scope == PARAM && level == LOCAL) + if ((q && q->scope >= level) + || (q && q->scope == PARAM && level == LOCAL)) { if (sclass == EXTERN && q->sclass == EXTERN && eqtype(q->type, ty, 1)) ty = compose(ty, q->type); else error("redeclaration of `%s' previously declared at %w\n", q->name, &q->src); + } assert(level >= LOCAL); p = install(id, &identifiers, level, sclass == STATIC || sclass == EXTERN ? PERM : FUNC); @@ -964,13 +965,14 @@ p->u.alias = q; break; case STATIC: (*IR->defsymbol)(p); initglobal(p, 0); - if (!p->defined) + if (!p->defined) { if (p->type->size > 0) { defglobal(p, BSS); (*IR->space)(p->type->size); } else error("undefined size for `%t %s'\n", p->type, p->name); + } p->defined = 1; break; case REGISTER: registers = append(p, registers); regcount++; @@ -987,7 +989,7 @@ t = gettok(); definept(NULL); if (isscalar(p->type) - || isstruct(p->type) && t != '{') { + || (isstruct(p->type) && t != '{')) { if (t == '{') { t = gettok(); e = expr1(0); @@ -1027,7 +1029,7 @@ } static void doglobal(Symbol p, void *cl) { if (!p->defined && (p->sclass == EXTERN - || isfunc(p->type) && p->sclass == AUTO)) + || (isfunc(p->type) && p->sclass == AUTO))) (*IR->import)(p); else if (!p->defined && !isfunc(p->type) && (p->sclass == AUTO || p->sclass == STATIC)) { @@ -1077,7 +1079,7 @@ Type enumdcl(void) { char *tag; Type ty; - Symbol p; + Symbol p = {0}; Coordinate pos; t = gettok(); Modified: trunk/lcc/src/enode.c =================================================================== --- trunk/lcc/src/enode.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/enode.c 2005-10-04 01:21:34 UTC (rev 132) @@ -64,7 +64,7 @@ else q = cast(q, promote(q->type)); } - if (!IR->wants_argb && isstruct(q->type)) + if (!IR->wants_argb && isstruct(q->type)) { if (iscallb(q)) q = addrof(q); else { @@ -73,6 +73,7 @@ q = tree(RIGHT, ptr(t1->type), root(q), lvalue(idtree(t1))); } + } if (q->type->size == 0) q->type = inttype; if (hascall(q)) @@ -223,15 +224,15 @@ Type ty = unqual(e->type); return generic(e->op) == CNST - && (ty->op == INT && e->u.v.i == 0 - || ty->op == UNSIGNED && e->u.v.u == 0 - || isvoidptr(ty) && e->u.v.p == NULL); + && ((ty->op == INT && e->u.v.i == 0) + || (ty->op == UNSIGNED && e->u.v.u == 0) + || (isvoidptr(ty) && e->u.v.p == NULL)); } Tree eqtree(int op, Tree l, Tree r) { Type xty = l->type, yty = r->type; - if (isptr(xty) && isnullptr(r) - || isptr(xty) && !isfunc(xty->type) && isvoidptr(yty) + if ((isptr(xty) && isnullptr(r)) + || (isptr(xty) && !isfunc(xty->type) && isvoidptr(yty)) || (isptr(xty) && isptr(yty) && eqtype(unqual(xty->type), unqual(yty->type), 1))) { Type ty = unsignedptr; @@ -239,8 +240,8 @@ r = cast(r, ty); return simplify(mkop(op,ty), inttype, l, r); } - if (isptr(yty) && isnullptr(l) - || isptr(yty) && !isfunc(yty->type) && isvoidptr(xty)) + if ((isptr(yty) && isnullptr(l)) + || (isptr(yty) && !isfunc(yty->type) && isvoidptr(xty))) return eqtree(op, r, l); return cmptree(op, l, r); } @@ -253,13 +254,13 @@ xty = xty->type; if (xty->size == 0 || yty->size == 0) return NULL; - if ( isarith(xty) && isarith(yty) - || isstruct(xty) && xty == yty) + if ( (isarith(xty) && isarith(yty)) + || (isstruct(xty) && xty == yty)) return xty; if (isptr(xty) && isnullptr(e)) return xty; - if ((isvoidptr(xty) && isptr(yty) - || isptr(xty) && isvoidptr(yty)) + if (((isvoidptr(xty) && isptr(yty)) + || (isptr(xty) && isvoidptr(yty))) && ( (isconst(xty->type) || !isconst(yty->type)) && (isvolatile(xty->type) || !isvolatile(yty->type)))) return xty; @@ -273,8 +274,8 @@ && ( (isconst(xty->type) || !isconst(yty->type)) && (isvolatile(xty->type) || !isvolatile(yty->type)))) { Type lty = unqual(xty->type), rty = unqual(yty->type); - if (isenum(lty) && rty == inttype - || isenum(rty) && lty == inttype) { + if ((isenum(lty) && rty == inttype) + || (isenum(rty) && lty == inttype)) { if (Aflag >= 1) warning("assignment between `%t' and `%t' is compiler-dependent\n", xty, yty); @@ -302,13 +303,14 @@ if (isptr(aty)) aty = unqual(aty)->type; if ( isconst(aty) - || isstruct(aty) && unqual(aty)->u.sym->u.s.cfields) + || (isstruct(aty) && unqual(aty)->u.sym->u.s.cfields)) { if (isaddrop(l->op) && !l->u.sym->computed && !l->u.sym->generated) error("assignment to const identifier `%s'\n", l->u.sym->name); else error("assignment to const location\n"); + } if (l->op == FIELD) { long n = 8*l->u.field->type->size - fieldsize(l->u.field); if (n > 0 && isunsigned(l->u.field->type)) @@ -345,8 +347,8 @@ ty = xty; else if (isnullptr(l) && isptr(yty)) ty = yty; - else if (isptr(xty) && !isfunc(xty->type) && isvoidptr(yty) - || isptr(yty) && !isfunc(yty->type) && isvoidptr(xty)) + else if ((isptr(xty) && !isfunc(xty->type) && isvoidptr(yty)) + || (isptr(yty) && !isfunc(yty->type) && isvoidptr(xty))) ty = voidptype; else if ((isptr(xty) && isptr(yty) && eqtype(unqual(xty->type), unqual(yty->type), 1))) @@ -357,11 +359,11 @@ } if (isptr(ty)) { ty = unqual(unqual(ty)->type); - if (isptr(xty) && isconst(unqual(xty)->type) - || isptr(yty) && isconst(unqual(yty)->type)) + if ((isptr(xty) && isconst(unqual(xty)->type)) + || (isptr(yty) && isconst(unqual(yty)->type))) ty = qual(CONST, ty); - if (isptr(xty) && isvolatile(unqual(xty)->type) - || isptr(yty) && isvolatile(unqual(yty)->type)) + if ((isptr(xty) && isvolatile(unqual(xty)->type)) + || (isptr(yty) && isvolatile(unqual(yty)->type))) ty = qual(VOLATILE, ty); ty = ptr(ty); } @@ -518,15 +520,15 @@ void typeerror(int op, Tree l, Tree r) { int i; static struct { int op; char *name; } ops[] = { - ASGN, "=", INDIR, "*", NEG, "-", - ADD, "+", SUB, "-", LSH, "<<", - MOD, "%", RSH, ">>", BAND, "&", - BCOM, "~", BOR, "|", BXOR, "^", - DIV, "/", MUL, "*", EQ, "==", - GE, ">=", GT, ">", LE, "<=", - LT, "<", NE, "!=", AND, "&&", - NOT, "!", OR, "||", COND, "?:", - 0, 0 + {ASGN, "="}, {INDIR, "*"}, {NEG, "-"}, + {ADD, "+"}, {SUB, "-"}, {LSH, "<<"}, + {MOD, "%"}, {RSH, ">>"}, {BAND, "&"}, + {BCOM, "~"}, {BOR, "|"}, {BXOR, "^"}, + {DIV, "/"}, {MUL, "*"}, {EQ, "=="}, + {GE, ">="}, {GT, ">"}, {LE, "<="}, + {LT, "<"}, {NE, "!="}, {AND, "&&"}, + {NOT, "!"}, {OR, "||"}, {COND, "?:"}, + {0, 0} }; op = generic(op); Modified: trunk/lcc/src/expr.c =================================================================== --- trunk/lcc/src/expr.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/expr.c 2005-10-04 01:21:34 UTC (rev 132) @@ -230,13 +230,13 @@ pty = p->type; if (isenum(pty)) pty = pty->type; - if (isarith(pty) && isarith(ty) - || isptr(pty) && isptr(ty)) { + if ((isarith(pty) && isarith(ty)) + || (isptr(pty) && isptr(ty))) { explicitCast++; p = cast(p, ty); explicitCast--; - } else if (isptr(pty) && isint(ty) - || isint(pty) && isptr(ty)) { + } else if ((isptr(pty) && isint(ty)) + || (isint(pty) && isptr(ty))) { if (Aflag >= 1 && ty->size < pty->size) warning("conversion from `%t' to `%t' is compiler dependent\n", p->type, ty); @@ -278,11 +278,12 @@ Tree q; t = gettok(); q = expr(']'); - if (YYnull) + if (YYnull) { if (isptr(p->type)) p = nullcheck(p); else if (isptr(q->type)) q = nullcheck(q); + } p = (*optree['+'])(ADD, pointer(p), pointer(q)); if (isptr(p->type) && isarray(p->type->type)) p = retype(p, p->type->type); @@ -497,12 +498,13 @@ xx(unsignedlonglong); xx(longlong); xx(unsignedlong); - if (xty == longtype && yty == unsignedtype - || xty == unsignedtype && yty == longtype) + if ((xty == longtype && yty == unsignedtype) + || (xty == unsignedtype && yty == longtype)) { if (longtype->size > unsignedtype->size) return longtype; else return unsignedlong; + } xx(longtype); xx(unsignedtype); return inttype; @@ -618,8 +620,8 @@ if (src->op != dst->op) p = simplify(CVP, dst, p, NULL); else { - if (isfunc(src->type) && !isfunc(dst->type) - || !isfunc(src->type) && isfunc(dst->type)) + if ((isfunc(src->type) && !isfunc(dst->type)) + || (!isfunc(src->type) && isfunc(dst->type))) warning("conversion from `%t' to `%t' is compiler dependent\n", p->type, type); if (src->size != dst->size) Modified: trunk/lcc/src/gen.c =================================================================== --- trunk/lcc/src/gen.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/gen.c 2005-10-04 01:21:34 UTC (rev 132) @@ -368,7 +368,7 @@ void emit(Node p) { for (; p; p = p->x.next) { assert(p->x.registered); - if (p->x.equatable && requate(p) || moveself(p)) + if ((p->x.equatable && requate(p)) || moveself(p)) ; else (*emitter)(p, p->x.inst); Modified: trunk/lcc/src/init.c =================================================================== --- trunk/lcc/src/init.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/init.c 2005-10-04 01:21:34 UTC (rev 132) @@ -81,7 +81,7 @@ do { initializer(ty, lev); n += ty->size; - if (len > 0 && n >= len || t != ',') + if ((len > 0 && n >= len) || t != ',') break; t = gettok(); } while (t != '}'); @@ -99,7 +99,7 @@ (*IR->defstring)(inttype->size, buf); s = buf; } - if (len > 0 && n >= len || t != ',') + if ((len > 0 && n >= len) || t != ',') break; t = gettok(); } while (t != '}'); @@ -123,9 +123,9 @@ do { i = initvalue(inttype)->u.v.i; if (fieldsize(p) < 8*p->type->size) { - if (p->type == inttype && - (i < -(int)(fieldmask(p)>>1)-1 || i > (int)(fieldmask(p)>>1)) - || p->type == unsignedtype && (i&~fieldmask(p)) != 0) + if ((p->type == inttype && + (i < -(int)(fieldmask(p)>>1)-1 || i > (int)(fieldmask(p)>>1))) + || (p->type == unsignedtype && (i&~fieldmask(p)) != 0)) warning("initializer exceeds bit-field width\n"); i &= fieldmask(p); } @@ -185,7 +185,7 @@ (*IR->space)(a - n%a); n = roundup(n, a); } - if (len > 0 && n >= len || t != ',') + if ((len > 0 && n >= len) || t != ',') break; t = gettok(); } while (t != '}'); Modified: trunk/lcc/src/inits.c =================================================================== --- trunk/lcc/src/inits.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/inits.c 2005-10-04 01:21:34 UTC (rev 132) @@ -4,5 +4,4 @@ {extern void prof_init(int, char *[]); prof_init(argc, argv);} {extern void trace_init(int, char *[]); trace_init(argc, argv);} {extern void type_init(int, char *[]); type_init(argc, argv);} - {extern void x86linux_init(int, char *[]); x86linux_init(argc, argv);} } Modified: trunk/lcc/src/input.c =================================================================== --- trunk/lcc/src/input.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/input.c 2005-10-04 01:21:34 UTC (rev 132) @@ -125,10 +125,11 @@ } else if (Aflag >= 2 && *cp != '\n') warning("unrecognized control line\n"); while (*cp) - if (*cp++ == '\n') + if (*cp++ == '\n') { if (cp == limit + 1) nextline(); else break; + } } Modified: trunk/lcc/src/lex.c =================================================================== --- trunk/lcc/src/lex.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/lex.c 2005-10-04 01:21:34 UTC (rev 132) @@ -685,17 +685,18 @@ } goto id; default: - if ((map[cp[-1]]&BLANK) == 0) + if ((map[cp[-1]]&BLANK) == 0) { if (cp[-1] < ' ' || cp[-1] >= 0177) error("illegal character `\\0%o'\n", cp[-1]); else error("illegal character `%c'\n", cp[-1]); + } } } } static Symbol icon(unsigned long n, int overflow, int base) { - if ((*cp=='u'||*cp=='U') && (cp[1]=='l'||cp[1]=='L') - || (*cp=='l'||*cp=='L') && (cp[1]=='u'||cp[1]=='U')) { + if (((*cp=='u'||*cp=='U') && (cp[1]=='l'||cp[1]=='L')) + || ((*cp=='l'||*cp=='L') && (cp[1]=='u'||cp[1]=='U'))) { tval.type = unsignedlong; cp += 2; } else if (*cp == 'u' || *cp == 'U') { Modified: trunk/lcc/src/null.c =================================================================== --- trunk/lcc/src/null.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/null.c 2005-10-04 01:21:34 UTC (rev 132) @@ -29,16 +29,16 @@ Interface nullIR = { - 1, 1, 0, /* char */ - 2, 2, 0, /* short */ - 4, 4, 0, /* int */ - 8, 8, 1, /* long */ - 8 ,8, 1, /* long long */ - 4, 4, 1, /* float */ - 8, 8, 1, /* double */ - 16,16,1, /* long double */ - 4, 4, 0, /* T* */ - 0, 4, 0, /* struct */ + {1, 1, 0}, /* char */ + {2, 2, 0}, /* short */ + {4, 4, 0}, /* int */ + {8, 8, 1}, /* long */ + {8 ,8, 1}, /* long long */ + {4, 4, 1}, /* float */ + {8, 8, 1}, /* double */ + {16,16,1}, /* long double */ + {4, 4, 0}, /* T* */ + {0, 4, 0}, /* struct */ 1, /* little_endian */ 0, /* mulops_calls */ 0, /* wants_callb */ Modified: trunk/lcc/src/output.c =================================================================== --- trunk/lcc/src/output.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/output.c 2005-10-04 01:21:34 UTC (rev 132) @@ -5,7 +5,7 @@ if (f) fputs(str, f); else - while (*bp = *str++) + while ((*bp = *str++)) bp++; return bp; } @@ -95,9 +95,10 @@ case 'c': if (f) fputc(va_arg(ap, int), f); else *bp++ = va_arg(ap, int); break; case 'S': { char *s = va_arg(ap, char *); int n = va_arg(ap, int); - if (s) + if (s) { for ( ; n-- > 0; s++) if (f) (void)putc(*s, f); else *bp++ = *s; + } } break; case 'k': { int t = va_arg(ap, int); static char *tokens[] = { Modified: trunk/lcc/src/prof.c =================================================================== --- trunk/lcc/src/prof.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/prof.c 2005-10-04 01:21:34 UTC (rev 132) @@ -203,7 +203,7 @@ return; inited = 1; type_init(argc, argv); - if (IR) + if (IR) { for (i = 1; i < argc; i++) if (strncmp(argv[i], "-a", 2) == 0) { if (ncalled == -1 @@ -224,4 +224,5 @@ attach((Apply)bbincr, YYcounts, &events.points); } } + } } Modified: trunk/lcc/src/profio.c =================================================================== --- trunk/lcc/src/profio.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/profio.c 2005-10-04 01:21:34 UTC (rev 132) @@ -150,9 +150,9 @@ struct count *c = cursor->counts; for (l = 0, u = cursor->count - 1; l <= u; ) { int k = (l + u)/2; - if (c[k].y > y || c[k].y == y && c[k].x > x) + if (c[k].y > y || (c[k].y == y && c[k].x > x)) u = k - 1; - else if (c[k].y < y || c[k].y == y && c[k].x < x) + else if (c[k].y < y || (c[k].y == y && c[k].x < x)) l = k + 1; else return c[k].count; Modified: trunk/lcc/src/simp.c =================================================================== --- trunk/lcc/src/simp.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/simp.c 2005-10-04 01:21:34 UTC (rev 132) @@ -53,10 +53,10 @@ int explicitCast; static int addi(long x, long y, long min, long max, int needconst) { int cond = x == 0 || y == 0 - || x < 0 && y < 0 && x >= min - y - || x < 0 && y > 0 - || x > 0 && y < 0 - || x > 0 && y > 0 && x <= max - y; + || (x < 0 && y < 0 && x >= min - y) + || (x < 0 && y > 0) + || (x > 0 && y < 0) + || (x > 0 && y > 0 && x <= max - y); if (!cond && needconst) { warning("overflow in constant expression\n"); cond = 1; @@ -68,10 +68,10 @@ static int addd(double x, double y, double min, double max, int needconst) { int cond = x == 0 || y == 0 - || x < 0 && y < 0 && x >= min - y - || x < 0 && y > 0 - || x > 0 && y < 0 - || x > 0 && y > 0 && x <= max - y; + || (x < 0 && y < 0 && x >= min - y) + || (x < 0 && y > 0) + || (x > 0 && y < 0) + || (x > 0 && y > 0 && x <= max - y); if (!cond && needconst) { warning("overflow in constant expression\n"); cond = 1; @@ -146,11 +146,11 @@ /* mul[id] - return 1 if min <= x*y <= max, 0 otherwise */ static int muli(long x, long y, long min, long max, int needconst) { - int cond = x > -1 && x <= 1 || y > -1 && y <= 1 - || x < 0 && y < 0 && -x <= max/-y - || x < 0 && y > 0 && x >= min/y - || x > 0 && y < 0 && y >= min/x - || x > 0 && y > 0 && x <= max/y; + int cond = (x > -1 && x <= 1) || (y > -1 && y <= 1) + || (x < 0 && y < 0 && -x <= max/-y) + || (x < 0 && y > 0 && x >= min/y) + || (x > 0 && y < 0 && y >= min/x) + || (x > 0 && y > 0 && x <= max/y); if (!cond && needconst) { warning("overflow in constant expression\n"); cond = 1; @@ -161,11 +161,11 @@ } static int muld(double x, double y, double min, double max, int needconst) { - int cond = x >= -1 && x <= 1 || y >= -1 && y <= 1 - || x < 0 && y < 0 && -x <= max/-y - || x < 0 && y > 0 && x >= min/y - || x > 0 && y < 0 && y >= min/x - || x > 0 && y > 0 && x <= max/y; + int cond = (x >= -1 && x <= 1) || (y >= -1 && y <= 1) + || (x < 0 && y < 0 && -x <= max/-y) + || (x < 0 && y > 0 && x >= min/y) + || (x > 0 && y < 0 && y >= min/x) + || (x > 0 && y > 0 && x <= max/y); if (!cond && needconst) { warning("overflow in constant expression\n"); cond = 1; @@ -204,7 +204,6 @@ } Tree simplify(int op, Type ty, Tree l, Tree r) { int n; - Tree p; if (optype(op) == 0) op = mkop(op, ty); @@ -256,13 +255,14 @@ break; case CVF+F: { float d; - if (l->op == CNST+F) + if (l->op == CNST+F) { if (l->u.v.d < ty->u.sym->u.limits.min.d) d = ty->u.sym->u.limits.min.d; else if (l->u.v.d > ty->u.sym->u.limits.max.d) d = ty->u.sym->u.limits.max.d; else d = l->u.v.d; + } xcvtcnst(F,l->u.v.d,ty,d,(long double)d); break; } @@ -308,14 +308,14 @@ identity(r,retype(l,ty),I,i,0); identity(r,retype(l,ty),U,u,0); if (isaddrop(l->op) - && (r->op == CNST+I && r->u.v.i <= longtype->u.sym->u.limits.max.i - && r->u.v.i >= longtype->u.sym->u.limits.min.i - || r->op == CNST+U && r->u.v.u <= longtype->u.sym->u.limits.max.i)) + && ((r->op == CNST+I && r->u.v.i <= longtype->u.sym->u.limits.max.i + && r->u.v.i >= longtype->u.sym->u.limits.min.i) + || (r->op == CNST+U && r->u.v.u <= longtype->u.sym->u.limits.max.i))) return addrtree(l, cast(r, longtype)->u.v.i, ty); if (l->op == ADD+P && isaddrop(l->kids[1]->op) - && (r->op == CNST+I && r->u.v.i <= longtype->u.sym->u.limits.max.i - && r->u.v.i >= longtype->u.sym->u.limits.min.i - || r->op == CNST+U && r->u.v.u <= longtype->u.sym->u.limits.max.i)) + && ((r->op == CNST+I && r->u.v.i <= longtype->u.sym->u.limits.max.i + && r->u.v.i >= longtype->u.sym->u.limits.min.i) + || (r->op == CNST+U && r->u.v.u <= longtype->u.sym->u.limits.max.i))) return simplify(ADD+P, ty, l->kids[0], addrtree(l->kids[1], cast(r, longtype)->u.v.i, ty)); if ((l->op == ADD+I || l->op == SUB+I) @@ -385,9 +385,9 @@ break; case DIV+I: identity(r,l,I,i,1); - if (r->op == CNST+I && r->u.v.i == 0 - || l->op == CNST+I && l->u.v.i == ty->u.sym->u.limits.min.i - && r->op == CNST+I && r->u.v.i == -1) + if ((r->op == CNST+I && r->u.v.i == 0) + || (l->op == CNST+I && l->u.v.i == ty->u.sym->u.limits.min.i + && r->op == CNST+I && r->u.v.i == -1)) break; xfoldcnst(I,i,/,divi); break; @@ -465,9 +465,9 @@ case MOD+I: if (r->op == CNST+I && r->u.v.i == 1) /* l%1 => (l,0) */ return tree(RIGHT, ty, root(l), cnsttree(ty, 0L)); - if (r->op == CNST+I && r->u.v.i == 0 - || l->op == CNST+I && l->u.v.i == ty->u.sym->u.limits.min.i - && r->op == CNST+I && r->u.v.i == -1) + if ((r->op == CNST+I && r->u.v.i == 0) + || (l->op == CNST+I && l->u.v.i == ty->u.sym->u.limits.min.i + && r->op == CNST+I && r->u.v.i == -1)) break; xfoldcnst(I,i,%,divi); break; Modified: trunk/lcc/src/stab.c =================================================================== --- trunk/lcc/src/stab.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/stab.c 2005-10-04 01:21:34 UTC (rev 132) @@ -201,9 +201,7 @@ if (brace == '{') while (*p) stabsym(*p++); - if (IR == &sparcIR) - print(".stabd 0x%x,0,%d\n", brace == '{' ? N_LBRAC : N_RBRAC, lev); - else { + { int lab = genlabel(1); print(".stabn 0x%x,0,%d,%s%d-%s\n", brace == '{' ? N_LBRAC : N_RBRAC, lev, stabprefix, lab, cfunc->x.name); @@ -252,9 +250,7 @@ print("%s%d:\n", stabprefix, lab); currentfile = cp->file; } - if (IR == &sparcIR) - print(".stabd 0x%x,0,%d\n", N_SLINE, cp->y); - else { + { int lab = genlabel(1); print(".stabn 0x%x,0,%d,%s%d-%s\n", N_SLINE, cp->y, stabprefix, lab, cfunc->x.name); @@ -280,7 +276,7 @@ sz = p->type->type->size; } else tc = dbxtype(p->type); - if (p->sclass == AUTO && p->scope == GLOBAL || p->sclass == EXTERN) { + if ((p->sclass == AUTO && p->scope == GLOBAL) || p->sclass == EXTERN) { print(".stabs \"%s:G", p->name); code = N_GSYM; } else if (p->sclass == STATIC) { Modified: trunk/lcc/src/stmt.c =================================================================== --- trunk/lcc/src/stmt.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/stmt.c 2005-10-04 01:21:34 UTC (rev 132) @@ -37,7 +37,6 @@ return cp; } int reachable(int kind) { - Code cp; if (kind > Start) { Code cp; Modified: trunk/lcc/src/sym.c =================================================================== --- trunk/lcc/src/sym.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/sym.c 2005-10-04 01:21:34 UTC (rev 132) @@ -296,7 +296,6 @@ /* vtoa - return string for the constant v of type ty */ char *vtoa(Type ty, Value v) { - char buf[50]; ty = unqual(ty); switch (ty->op) { Modified: trunk/lcc/src/symbolic.c =================================================================== --- trunk/lcc/src/symbolic.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/symbolic.c 2005-10-04 01:21:34 UTC (rev 132) @@ -404,16 +404,16 @@ static void I(stabtype)(Symbol p) {} Interface symbolicIR = { - 1, 1, 0, /* char */ - 2, 2, 0, /* short */ - 4, 4, 0, /* int */ - 4, 4, 0, /* long */ - 4, 4, 0, /* long long */ - 4, 4, 1, /* float */ - 8, 8, 1, /* double */ - 8, 8, 1, /* long double */ - 4, 4, 0, /* T* */ - 0, 4, 0, /* struct */ + {1, 1, 0}, /* char */ + {2, 2, 0}, /* short */ + {4, 4, 0}, /* int */ + {4, 4, 0}, /* long */ + {4, 4, 0}, /* long long */ + {4, 4, 1}, /* float */ + {8, 8, 1}, /* double */ + {8, 8, 1}, /* long double */ + {4, 4, 0}, /* T* */ + {0, 4, 0}, /* struct */ 0, /* little_endian */ 0, /* mulops_calls */ 0, /* wants_callb */ @@ -449,16 +449,16 @@ }; Interface symbolic64IR = { - 1, 1, 0, /* char */ - 2, 2, 0, /* short */ - 4, 4, 0, /* int */ - 8, 8, 0, /* long */ - 8, 8, 0, /* long long */ - 4, 4, 1, /* float */ - 8, 8, 1, /* double */ - 8, 8, 1, /* long double */ - 8, 8, 0, /* T* */ - 0, 1, 0, /* struct */ + {1, 1, 0}, /* char */ + {2, 2, 0}, /* short */ + {4, 4, 0}, /* int */ + {8, 8, 0}, /* long */ + {8, 8, 0}, /* long long */ + {4, 4, 1}, /* float */ + {8, 8, 1}, /* double */ + {8, 8, 1}, /* long double */ + {8, 8, 0}, /* T* */ + {0, 1, 0}, /* struct */ 1, /* little_endian */ 0, /* mulops_calls */ 0, /* wants_callb */ Modified: trunk/lcc/src/trace.c =================================================================== --- trunk/lcc/src/trace.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/trace.c 2005-10-04 01:21:34 UTC (rev 132) @@ -8,7 +8,7 @@ /* appendstr - append str to the evolving format string, expanding it if necessary */ static void appendstr(char *str) { do - if (fp == fmtend) + if (fp == fmtend) { if (fp) { char *s = allocate(2*(fmtend - fmt), FUNC); strncpy(s, fmt, fmtend - fmt); @@ -19,6 +19,7 @@ fp = fmt = allocate(80, FUNC); fmtend = fmt + 80; } + } while ((*fp++ = *str++) != 0); fp--; } Modified: trunk/lcc/src/types.c =================================================================== --- trunk/lcc/src/types.c 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/lcc/src/types.c 2005-10-04 01:21:34 UTC (rev 132) @@ -233,8 +233,8 @@ ty->align, NULL); else if (isfunc(ty)) warning("qualified function type ignored\n"); - else if (isconst(ty) && op == CONST - || isvolatile(ty) && op == VOLATILE) + else if ((isconst(ty) && op == CONST) + || (isvolatile(ty) && op == VOLATILE)) error("illegal type `%k %t'\n", op, ty); else { if (isqual(ty)) { @@ -276,7 +276,7 @@ tag = stringd(genlabel(1)); else if ((p = lookup(tag, types)) != NULL && (p->scope == level - || p->scope == PARAM && level == PARAM+1)) { + || (p->scope == PARAM && level == PARAM+1))) { if (p->type->op == op && !p->defined) return p->type; error("redefinition of `%s' previously defined at %w\n", @@ -400,7 +400,7 @@ case CONST: case VOLATILE: return qual(ty1->op, compose(ty1->type, ty2->type)); case ARRAY: { Type ty = compose(ty1->type, ty2->type); - if (ty1->size && (ty1->type->size && ty2->size == 0 || ty1->size == ty2->size)) + if (ty1->size && ((ty1->type->size && ty2->size == 0) || ty1->size == ty2->size)) return array(ty, ty1->size/ty1->type->size, ty1->align); if (ty2->size && ty2->type->size && ty1->size == 0) return array(ty, ty2->size/ty2->type->size, ty2->align); Modified: trunk/q3asm/Makefile =================================================================== --- trunk/q3asm/Makefile 2005-09-30 22:30:22 UTC (rev 131) +++ trunk/q3asm/Makefile 2005-10-04 01:21:34 UTC (rev 132) @@ -1,7 +1,7 @@ # yeah, couldn't do more simple really CC=gcc -CFLAGS=-g -Wall +CFLAGS=-O2 -Wall -Werror -fno-strict-aliasing default: q3asm From DONOTREPLY at icculus.org Mon Oct 3 21:49:02 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 3 Oct 2005 21:49:02 -0400 Subject: r133 - in trunk: lcc lcc/etc q3asm Message-ID: <20051004014902.14711.qmail@icculus.org> Author: tma Date: 2005-10-03 21:49:02 -0400 (Mon, 03 Oct 2005) New Revision: 133 Modified: trunk/lcc/etc/lcc.c trunk/lcc/makefile trunk/q3asm/cmdlib.c trunk/q3asm/cmdlib.h Log: * lcc and q3asm now build with MinGW Modified: trunk/lcc/etc/lcc.c =================================================================== --- trunk/lcc/etc/lcc.c 2005-10-04 01:21:34 UTC (rev 132) +++ trunk/lcc/etc/lcc.c 2005-10-04 01:49:02 UTC (rev 133) @@ -280,7 +280,11 @@ fprintf(stderr, "\n"); } if (verbose < 2) +#ifndef WIN32 status = _spawnvp(_P_WAIT, argv[0], argv); +#else + status = _spawnvp(_P_WAIT, argv[0], (const char* const*)argv); +#endif if (status == -1) { fprintf(stderr, "%s: ", progname); perror(argv[0]); @@ -521,6 +525,9 @@ static void initinputs(void) { char *s = getenv("LCCINPUTS"); List b; +#ifdef WIN32 + List list; +#endif if (s == 0 || (s = inputs)[0] == 0) s = "."; @@ -538,7 +545,7 @@ } while (b != lccinputs); } #ifdef WIN32 - if (list = b = path2list(getenv("include"))) + if ((list = b = path2list(getenv("include")))) do { b = b->link; ilist = append(stringf("-I\"%s\"", b->str), ilist); Modified: trunk/lcc/makefile =================================================================== --- trunk/lcc/makefile 2005-10-04 01:21:34 UTC (rev 132) +++ trunk/lcc/makefile 2005-10-04 01:49:02 UTC (rev 133) @@ -4,10 +4,10 @@ A=.a O=.o E= -CC=cc +CC=gcc CFLAGS=-O2 -Wall -fno-strict-aliasing LDFLAGS= -LD=cc +LD=gcc AR=ar ruv RANLIB=ranlib DIFF=diff Modified: trunk/q3asm/cmdlib.c =================================================================== --- trunk/q3asm/cmdlib.c 2005-10-04 01:21:34 UTC (rev 132) +++ trunk/q3asm/cmdlib.c 2005-10-04 01:49:02 UTC (rev 133) @@ -636,9 +636,10 @@ return end; } -#ifndef MAXPATH +#ifdef MAX_PATH +#undef MAX_PATH +#endif #define MAX_PATH 4096 -#endif static FILE* myfopen(const char* filename, const char* mode) { char* p; Modified: trunk/q3asm/cmdlib.h =================================================================== --- trunk/q3asm/cmdlib.h 2005-10-04 01:21:34 UTC (rev 132) +++ trunk/q3asm/cmdlib.h 2005-10-04 01:49:02 UTC (rev 133) @@ -24,7 +24,7 @@ #ifndef __CMDLIB__ #define __CMDLIB__ -#ifdef _WIN32 +#ifdef _MSC_VER #pragma warning(disable : 4244) // MIPS #pragma warning(disable : 4136) // X86 #pragma warning(disable : 4051) // ALPHA @@ -44,7 +44,7 @@ #include #include -#ifdef _WIN32 +#ifdef _MSC_VER #pragma intrinsic( memset, memcpy ) From DONOTREPLY at icculus.org Tue Oct 4 11:18:22 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 4 Oct 2005 11:18:22 -0400 Subject: r134 - in trunk: . code code/tools Message-ID: <20051004151822.22040.qmail@icculus.org> Author: tma Date: 2005-10-04 11:18:22 -0400 (Tue, 04 Oct 2005) New Revision: 134 Added: trunk/code/tools/ trunk/code/tools/lcc/ trunk/code/tools/q3asm/ Removed: trunk/lcc/ trunk/q3asm/ Log: * Moved lcc and q3asm into code/tools Copied: trunk/code/tools/lcc (from rev 133, trunk/lcc) Copied: trunk/code/tools/q3asm (from rev 133, trunk/q3asm) From DONOTREPLY at icculus.org Tue Oct 4 13:45:22 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 4 Oct 2005 13:45:22 -0400 Subject: r135 - trunk/code/unix Message-ID: <20051004174522.12481.qmail@icculus.org> Author: tma Date: 2005-10-04 13:45:22 -0400 (Tue, 04 Oct 2005) New Revision: 135 Modified: trunk/code/unix/Makefile Log: * Homogenised the game module build rules Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-04 15:18:22 UTC (rev 134) +++ trunk/code/unix/Makefile 2005-10-04 17:45:22 UTC (rev 135) @@ -1089,9 +1089,9 @@ ############################################################################# Q3CGOBJ = \ - $(B)/baseq3/cgame/bg_misc.o \ - $(B)/baseq3/cgame/bg_pmove.o \ - $(B)/baseq3/cgame/bg_slidemove.o \ + $(B)/baseq3/game/bg_misc.o \ + $(B)/baseq3/game/bg_pmove.o \ + $(B)/baseq3/game/bg_slidemove.o \ $(B)/baseq3/cgame/cg_consolecmds.o \ $(B)/baseq3/cgame/cg_draw.o \ $(B)/baseq3/cgame/cg_drawtools.o \ @@ -1111,45 +1111,20 @@ $(B)/baseq3/cgame/cg_syscalls.o \ $(B)/baseq3/cgame/cg_view.o \ $(B)/baseq3/cgame/cg_weapons.o \ - $(B)/baseq3/cgame/q_math.o \ - $(B)/baseq3/cgame/q_shared.o + $(B)/baseq3/game/q_math.o \ + $(B)/baseq3/game/q_shared.o $(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) : $(Q3CGOBJ) $(CC) $(SHLIBLDFLAGS) -o $@ $(Q3CGOBJ) -$(B)/baseq3/cgame/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/bg_pmove.o : $(GDIR)/bg_pmove.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/bg_slidemove.o : $(GDIR)/bg_slidemove.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_consolecmds.o : $(CGDIR)/cg_consolecmds.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_draw.o : $(CGDIR)/cg_draw.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_drawtools.o : $(CGDIR)/cg_drawtools.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_effects.o : $(CGDIR)/cg_effects.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_ents.o : $(CGDIR)/cg_ents.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_event.o : $(CGDIR)/cg_event.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_info.o : $(CGDIR)/cg_info.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_localents.o : $(CGDIR)/cg_localents.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_main.o : $(CGDIR)/cg_main.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_marks.o : $(CGDIR)/cg_marks.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_players.o : $(CGDIR)/cg_players.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_playerstate.o : $(CGDIR)/cg_playerstate.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_predict.o : $(CGDIR)/cg_predict.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_scoreboard.o : $(CGDIR)/cg_scoreboard.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_servercmds.o : $(CGDIR)/cg_servercmds.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_snapshot.o : $(CGDIR)/cg_snapshot.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_syscalls.o : $(CGDIR)/cg_syscalls.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_view.o : $(CGDIR)/cg_view.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/cg_weapons.o : $(CGDIR)/cg_weapons.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC) -$(B)/baseq3/cgame/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC) - ############################################################################# ## MISSIONPACK CGAME ############################################################################# MPCGOBJ = \ - $(B)/missionpack/cgame/bg_misc.o \ - $(B)/missionpack/cgame/bg_pmove.o \ - $(B)/missionpack/cgame/bg_slidemove.o \ + $(B)/missionpack/game/bg_misc.o \ + $(B)/missionpack/game/bg_pmove.o \ + $(B)/missionpack/game/bg_slidemove.o \ $(B)/missionpack/cgame/cg_consolecmds.o \ $(B)/missionpack/cgame/cg_newdraw.o \ $(B)/missionpack/cgame/cg_draw.o \ @@ -1170,42 +1145,15 @@ $(B)/missionpack/cgame/cg_syscalls.o \ $(B)/missionpack/cgame/cg_view.o \ $(B)/missionpack/cgame/cg_weapons.o \ - $(B)/missionpack/cgame/q_math.o \ - $(B)/missionpack/cgame/q_shared.o \ - $(B)/missionpack/cgame/ui_shared.o + $(B)/missionpack/game/q_math.o \ + $(B)/missionpack/game/q_shared.o \ + $(B)/missionpack/ui/ui_shared.o $(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) : $(MPCGOBJ) $(CC) $(SHLIBLDFLAGS) -o $@ $(MPCGOBJ) -$(B)/missionpack/cgame/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/bg_pmove.o : $(GDIR)/bg_pmove.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/bg_slidemove.o : $(GDIR)/bg_slidemove.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_consolecmds.o : $(CGDIR)/cg_consolecmds.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_newdraw.o : $(CGDIR)/cg_newdraw.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_draw.o : $(CGDIR)/cg_draw.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_drawtools.o : $(CGDIR)/cg_drawtools.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_effects.o : $(CGDIR)/cg_effects.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_ents.o : $(CGDIR)/cg_ents.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_event.o : $(CGDIR)/cg_event.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_info.o : $(CGDIR)/cg_info.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_localents.o : $(CGDIR)/cg_localents.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_main.o : $(CGDIR)/cg_main.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_marks.o : $(CGDIR)/cg_marks.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_players.o : $(CGDIR)/cg_players.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_playerstate.o : $(CGDIR)/cg_playerstate.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_predict.o : $(CGDIR)/cg_predict.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_scoreboard.o : $(CGDIR)/cg_scoreboard.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_servercmds.o : $(CGDIR)/cg_servercmds.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_snapshot.o : $(CGDIR)/cg_snapshot.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_syscalls.o : $(CGDIR)/cg_syscalls.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_view.o : $(CGDIR)/cg_view.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/cg_weapons.o : $(CGDIR)/cg_weapons.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/cgame/ui_shared.o : $(UIDIR)/ui_shared.c; $(DO_SHLIB_CC) -DMISSIONPACK - ############################################################################# ## BASEQ3 GAME ############################################################################# @@ -1249,41 +1197,6 @@ $(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) : $(Q3GOBJ) $(CC) $(SHLIBLDFLAGS) -o $@ $(Q3GOBJ) -$(B)/baseq3/game/ai_chat.o : $(GDIR)/ai_chat.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/ai_cmd.o : $(GDIR)/ai_cmd.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/ai_dmnet.o : $(GDIR)/ai_dmnet.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/ai_dmq3.o : $(GDIR)/ai_dmq3.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/ai_main.o : $(GDIR)/ai_main.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/ai_team.o : $(GDIR)/ai_team.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/ai_vcmd.o : $(GDIR)/ai_vcmd.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/bg_pmove.o : $(GDIR)/bg_pmove.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/bg_slidemove.o : $(GDIR)/bg_slidemove.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_active.o : $(GDIR)/g_active.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_arenas.o : $(GDIR)/g_arenas.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_bot.o : $(GDIR)/g_bot.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_client.o : $(GDIR)/g_client.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_cmds.o : $(GDIR)/g_cmds.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_combat.o : $(GDIR)/g_combat.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_items.o : $(GDIR)/g_items.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_main.o : $(GDIR)/g_main.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_mem.o : $(GDIR)/g_mem.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_misc.o : $(GDIR)/g_misc.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_missile.o : $(GDIR)/g_missile.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_mover.o : $(GDIR)/g_mover.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_session.o : $(GDIR)/g_session.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_spawn.o : $(GDIR)/g_spawn.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_svcmds.o : $(GDIR)/g_svcmds.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_syscalls.o : $(GDIR)/g_syscalls.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_target.o : $(GDIR)/g_target.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_team.o : $(GDIR)/g_team.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_trigger.o : $(GDIR)/g_trigger.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_utils.o : $(GDIR)/g_utils.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/g_weapon.o : $(GDIR)/g_weapon.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC) -$(B)/baseq3/game/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC) - - ############################################################################# ## MISSIONPACK GAME ############################################################################# @@ -1327,144 +1240,61 @@ $(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) : $(MPGOBJ) $(CC) $(SHLIBLDFLAGS) -o $@ $(MPGOBJ) -$(B)/missionpack/game/ai_chat.o : $(GDIR)/ai_chat.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/ai_cmd.o : $(GDIR)/ai_cmd.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/ai_dmnet.o : $(GDIR)/ai_dmnet.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/ai_dmq3.o : $(GDIR)/ai_dmq3.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/ai_main.o : $(GDIR)/ai_main.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/ai_team.o : $(GDIR)/ai_team.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/ai_vcmd.o : $(GDIR)/ai_vcmd.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/bg_pmove.o : $(GDIR)/bg_pmove.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/bg_slidemove.o : $(GDIR)/bg_slidemove.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_active.o : $(GDIR)/g_active.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_arenas.o : $(GDIR)/g_arenas.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_bot.o : $(GDIR)/g_bot.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_client.o : $(GDIR)/g_client.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_cmds.o : $(GDIR)/g_cmds.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_combat.o : $(GDIR)/g_combat.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_items.o : $(GDIR)/g_items.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_main.o : $(GDIR)/g_main.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_mem.o : $(GDIR)/g_mem.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_misc.o : $(GDIR)/g_misc.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_missile.o : $(GDIR)/g_missile.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_mover.o : $(GDIR)/g_mover.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_session.o : $(GDIR)/g_session.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_spawn.o : $(GDIR)/g_spawn.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_svcmds.o : $(GDIR)/g_svcmds.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_syscalls.o : $(GDIR)/g_syscalls.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_target.o : $(GDIR)/g_target.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_team.o : $(GDIR)/g_team.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_trigger.o : $(GDIR)/g_trigger.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_utils.o : $(GDIR)/g_utils.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/g_weapon.o : $(GDIR)/g_weapon.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/game/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC) -DMISSIONPACK - ############################################################################# ## BASEQ3 UI ############################################################################# Q3UIOBJ = \ - $(B)/baseq3/ui/bg_misc.o \ - $(B)/baseq3/ui/ui_addbots.o \ - $(B)/baseq3/ui/ui_atoms.o \ - $(B)/baseq3/ui/ui_cdkey.o \ - $(B)/baseq3/ui/ui_cinematics.o \ - $(B)/baseq3/ui/ui_confirm.o \ - $(B)/baseq3/ui/ui_connect.o \ - $(B)/baseq3/ui/ui_controls2.o \ - $(B)/baseq3/ui/ui_credits.o \ - $(B)/baseq3/ui/ui_demo2.o \ - $(B)/baseq3/ui/ui_display.o \ - $(B)/baseq3/ui/ui_gameinfo.o \ - $(B)/baseq3/ui/ui_ingame.o \ - $(B)/baseq3/ui/ui_loadconfig.o \ - $(B)/baseq3/ui/ui_main.o \ - $(B)/baseq3/ui/ui_menu.o \ - $(B)/baseq3/ui/ui_mfield.o \ - $(B)/baseq3/ui/ui_mods.o \ - $(B)/baseq3/ui/ui_network.o \ - $(B)/baseq3/ui/ui_options.o \ - $(B)/baseq3/ui/ui_playermodel.o \ - $(B)/baseq3/ui/ui_players.o \ - $(B)/baseq3/ui/ui_playersettings.o \ - $(B)/baseq3/ui/ui_preferences.o \ - $(B)/baseq3/ui/ui_qmenu.o \ - $(B)/baseq3/ui/ui_removebots.o \ - $(B)/baseq3/ui/ui_saveconfig.o \ - $(B)/baseq3/ui/ui_serverinfo.o \ - $(B)/baseq3/ui/ui_servers2.o \ - $(B)/baseq3/ui/ui_setup.o \ - $(B)/baseq3/ui/ui_sound.o \ - $(B)/baseq3/ui/ui_sparena.o \ - $(B)/baseq3/ui/ui_specifyserver.o \ - $(B)/baseq3/ui/ui_splevel.o \ - $(B)/baseq3/ui/ui_sppostgame.o \ - $(B)/baseq3/ui/ui_spskill.o \ - $(B)/baseq3/ui/ui_startserver.o \ - $(B)/baseq3/ui/ui_syscalls.o \ - $(B)/baseq3/ui/ui_team.o \ - $(B)/baseq3/ui/ui_teamorders.o \ - $(B)/baseq3/ui/ui_video.o \ - \ - $(B)/baseq3/ui/q_math.o \ - $(B)/baseq3/ui/q_shared.o + $(B)/baseq3/game/bg_misc.o \ + $(B)/baseq3/ui/ui_addbots.o \ + $(B)/baseq3/ui/ui_atoms.o \ + $(B)/baseq3/ui/ui_cdkey.o \ + $(B)/baseq3/ui/ui_cinematics.o \ + $(B)/baseq3/ui/ui_confirm.o \ + $(B)/baseq3/ui/ui_connect.o \ + $(B)/baseq3/ui/ui_controls2.o \ + $(B)/baseq3/ui/ui_credits.o \ + $(B)/baseq3/ui/ui_demo2.o \ + $(B)/baseq3/ui/ui_display.o \ + $(B)/baseq3/ui/ui_gameinfo.o \ + $(B)/baseq3/ui/ui_ingame.o \ + $(B)/baseq3/ui/ui_loadconfig.o \ + $(B)/baseq3/ui/ui_main.o \ + $(B)/baseq3/ui/ui_menu.o \ + $(B)/baseq3/ui/ui_mfield.o \ + $(B)/baseq3/ui/ui_mods.o \ + $(B)/baseq3/ui/ui_network.o \ + $(B)/baseq3/ui/ui_options.o \ + $(B)/baseq3/ui/ui_playermodel.o \ + $(B)/baseq3/ui/ui_players.o \ + $(B)/baseq3/ui/ui_playersettings.o \ + $(B)/baseq3/ui/ui_preferences.o \ + $(B)/baseq3/ui/ui_qmenu.o \ + $(B)/baseq3/ui/ui_removebots.o \ + $(B)/baseq3/ui/ui_saveconfig.o \ + $(B)/baseq3/ui/ui_serverinfo.o \ + $(B)/baseq3/ui/ui_servers2.o \ + $(B)/baseq3/ui/ui_setup.o \ + $(B)/baseq3/ui/ui_sound.o \ + $(B)/baseq3/ui/ui_sparena.o \ + $(B)/baseq3/ui/ui_specifyserver.o \ + $(B)/baseq3/ui/ui_splevel.o \ + $(B)/baseq3/ui/ui_sppostgame.o \ + $(B)/baseq3/ui/ui_spskill.o \ + $(B)/baseq3/ui/ui_startserver.o \ + $(B)/missionpack/ui/ui_syscalls.o \ + $(B)/baseq3/ui/ui_team.o \ + $(B)/baseq3/ui/ui_teamorders.o \ + $(B)/baseq3/ui/ui_video.o \ + \ + $(B)/baseq3/game/q_math.o \ + $(B)/baseq3/game/q_shared.o $(B)/baseq3/ui$(ARCH).$(SHLIBEXT) : $(Q3UIOBJ) $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3UIOBJ) -$(B)/baseq3/ui/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_addbots.o : $(Q3UIDIR)/ui_addbots.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_atoms.o : $(Q3UIDIR)/ui_atoms.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_cinematics.o : $(Q3UIDIR)/ui_cinematics.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_cdkey.o : $(Q3UIDIR)/ui_cdkey.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_confirm.o : $(Q3UIDIR)/ui_confirm.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_connect.o : $(Q3UIDIR)/ui_connect.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_controls2.o : $(Q3UIDIR)/ui_controls2.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_credits.o : $(Q3UIDIR)/ui_credits.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_demo2.o : $(Q3UIDIR)/ui_demo2.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_display.o : $(Q3UIDIR)/ui_display.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_gameinfo.o : $(Q3UIDIR)/ui_gameinfo.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_ingame.o : $(Q3UIDIR)/ui_ingame.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_loadconfig.o : $(Q3UIDIR)/ui_loadconfig.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_main.o : $(Q3UIDIR)/ui_main.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_menu.o : $(Q3UIDIR)/ui_menu.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_mfield.o : $(Q3UIDIR)/ui_mfield.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_mods.o : $(Q3UIDIR)/ui_mods.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_network.o : $(Q3UIDIR)/ui_network.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_options.o : $(Q3UIDIR)/ui_options.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_playermodel.o : $(Q3UIDIR)/ui_playermodel.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_players.o : $(Q3UIDIR)/ui_players.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_playersettings.o : $(Q3UIDIR)/ui_playersettings.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_preferences.o : $(Q3UIDIR)/ui_preferences.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_qmenu.o : $(Q3UIDIR)/ui_qmenu.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_quit.o : $(Q3UIDIR)/ui_quit.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_removebots.o : $(Q3UIDIR)/ui_removebots.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_saveconfig.o : $(Q3UIDIR)/ui_saveconfig.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_serverinfo.o : $(Q3UIDIR)/ui_serverinfo.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_servers2.o : $(Q3UIDIR)/ui_servers2.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_setup.o : $(Q3UIDIR)/ui_setup.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_sound.o : $(Q3UIDIR)/ui_sound.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_sparena.o : $(Q3UIDIR)/ui_sparena.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_specifyserver.o : $(Q3UIDIR)/ui_specifyserver.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_splevel.o : $(Q3UIDIR)/ui_splevel.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_sppostgame.o : $(Q3UIDIR)/ui_sppostgame.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_spskill.o : $(Q3UIDIR)/ui_spskill.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_startserver.o : $(Q3UIDIR)/ui_startserver.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_team.o : $(Q3UIDIR)/ui_team.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_teamorders.o : $(Q3UIDIR)/ui_teamorders.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_syscalls.o : $(UIDIR)/ui_syscalls.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/ui_video.o : $(Q3UIDIR)/ui_video.c; $(DO_SHLIB_CC) - -# bk001205 - these wre the only SHLIB compiles in 1.17 -$(B)/baseq3/ui/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC) -$(B)/baseq3/ui/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC) - - - ############################################################################# ## MISSIONPACK UI ############################################################################# @@ -1478,28 +1308,40 @@ $(B)/missionpack/ui/ui_util.o \ $(B)/missionpack/ui/ui_shared.o \ \ - $(B)/missionpack/ui/bg_misc.o \ + $(B)/missionpack/game/bg_misc.o \ \ - $(B)/missionpack/ui/q_math.o \ - $(B)/missionpack/ui/q_shared.o + $(B)/missionpack/game/q_math.o \ + $(B)/missionpack/game/q_shared.o $(B)/missionpack/ui$(ARCH).$(SHLIBEXT) : $(MPUIOBJ) $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(MPUIOBJ) -$(B)/missionpack/ui/ui_atoms.o : $(UIDIR)/ui_atoms.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/ui_gameinfo.o : $(UIDIR)/ui_gameinfo.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/ui_main.o : $(UIDIR)/ui_main.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/ui_players.o : $(UIDIR)/ui_players.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/ui_syscalls.o : $(UIDIR)/ui_syscalls.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/ui_util.o : $(UIDIR)/ui_util.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/ui_shared.o : $(UIDIR)/ui_shared.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/bg_lib.o : $(GDIR)/bg_lib.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC) -DMISSIONPACK -$(B)/missionpack/ui/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC) -DMISSIONPACK +############################################################################# +## GAME MODULE RULES +############################################################################# +$(B)/baseq3/cgame/%.o: $(CGDIR)/%.c + $(DO_SHLIB_CC) + +$(B)/missionpack/cgame/%.o: $(CGDIR)/%.c + $(DO_SHLIB_CC) -DMISSIONPACK + +$(B)/baseq3/game/%.o: $(GDIR)/%.c + $(DO_SHLIB_CC) + +$(B)/missionpack/game/%.o: $(GDIR)/%.c + $(DO_SHLIB_CC) -DMISSIONPACK + +$(B)/baseq3/ui/%.o: $(Q3UIDIR)/%.c + $(DO_SHLIB_CC) + +$(B)/missionpack/ui/%.o: $(UIDIR)/%.c + $(DO_SHLIB_CC) -DMISSIONPACK + + + ############################################################################# # MISC ############################################################################# From DONOTREPLY at icculus.org Tue Oct 4 14:34:21 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 4 Oct 2005 14:34:21 -0400 Subject: r136 - in trunk/code/tools: . asm lcc Message-ID: <20051004183421.21000.qmail@icculus.org> Author: tma Date: 2005-10-04 14:34:21 -0400 (Tue, 04 Oct 2005) New Revision: 136 Added: trunk/code/tools/asm/ Removed: trunk/code/tools/q3asm/ Modified: trunk/code/tools/asm/Makefile trunk/code/tools/lcc/makefile Log: * Added install/uninstall rules to the lcc and q3asm Makefiles * Moved the q3asm dir to asm so that is doesn't clash with the binary when installed Copied: trunk/code/tools/asm (from rev 134, trunk/code/tools/q3asm) Modified: trunk/code/tools/asm/Makefile =================================================================== --- trunk/code/tools/q3asm/Makefile 2005-10-04 15:18:22 UTC (rev 134) +++ trunk/code/tools/asm/Makefile 2005-10-04 18:34:21 UTC (rev 136) @@ -11,3 +11,8 @@ clean: rm -f q3asm *~ *.o +install: default + install -s -m 0755 q3asm ../ + +uninstall: + -rm ../q3asm Modified: trunk/code/tools/lcc/makefile =================================================================== --- trunk/code/tools/lcc/makefile 2005-10-04 17:45:22 UTC (rev 135) +++ trunk/code/tools/lcc/makefile 2005-10-04 18:34:21 UTC (rev 136) @@ -231,22 +231,14 @@ $(RM) $Tyacc$E $Tyacc.s $Tyacc.2 $Tyacc.1 install:: all - install -d /usr/local/lib/lcc - install -d /usr/local/lib/lcc/gcc - install $Bq3lcc$E /usr/local/bin - install $Bq3cpp$E /usr/local/lib/lcc/gcc - install $Bq3rcc$E /usr/local/lib/lcc - install $Bliblcc$A /usr/local/lib/lcc - install $Blibrcc$A /usr/local/lib/lcc + install -s -m 0755 $Bq3lcc$E ../ + install -s -m 0755 $Bq3cpp$E ../ + install -s -m 0755 $Bq3rcc$E ../ uninstall:: - $(RM) /usr/local/lib/lcc/librcc$A - $(RM) /usr/local/lib/lcc/liblcc$A - $(RM) /usr/local/lib/lcc/q3rcc$E - $(RM) /usr/local/lib/lcc/gcc/q3cpp$E - $(RM) /usr/local/bin/lcc$E - $(RMDIR) /usr/local/lib/lcc/gcc - $(RMDIR) /usr/local/lib/lcc + -$(RM) ../q3lcc$E + -$(RM) ../q3cpp$E + -$(RM) ../q3rcc$E clean:: testclean $(RM) $B*$O From DONOTREPLY at icculus.org Tue Oct 4 15:15:34 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 4 Oct 2005 15:15:34 -0400 Subject: r137 - in trunk/code/tools: asm lcc Message-ID: <20051004191534.26759.qmail@icculus.org> Author: tma Date: 2005-10-04 15:15:34 -0400 (Tue, 04 Oct 2005) New Revision: 137 Modified: trunk/code/tools/asm/Makefile trunk/code/tools/lcc/makefile Log: * MinGW fixes to the tools Makefiles Modified: trunk/code/tools/asm/Makefile =================================================================== --- trunk/code/tools/asm/Makefile 2005-10-04 18:34:21 UTC (rev 136) +++ trunk/code/tools/asm/Makefile 2005-10-04 19:15:34 UTC (rev 137) @@ -1,5 +1,12 @@ # yeah, couldn't do more simple really +PLATFORM=$(shell uname|sed -e s/_.*//|tr A-Z a-z) +ifeq ($(PLATFORM),mingw32) + BINEXT=.exe +else + BINEXT= +endif + CC=gcc CFLAGS=-O2 -Wall -Werror -fno-strict-aliasing @@ -12,7 +19,7 @@ rm -f q3asm *~ *.o install: default - install -s -m 0755 q3asm ../ + install -s -m 0755 q3asm$(BINEXT) ../ uninstall: - -rm ../q3asm + -rm ../q3asm$(BINEXT) Modified: trunk/code/tools/lcc/makefile =================================================================== --- trunk/code/tools/lcc/makefile 2005-10-04 18:34:21 UTC (rev 136) +++ trunk/code/tools/lcc/makefile 2005-10-04 19:15:34 UTC (rev 137) @@ -3,7 +3,14 @@ TEMPDIR=/tmp A=.a O=.o -E= + +PLATFORM=$(shell uname|sed -e s/_.*//|tr A-Z a-z) +ifeq ($(PLATFORM),mingw32) + E=.exe +else + E= +endif + CC=gcc CFLAGS=-O2 -Wall -fno-strict-aliasing LDFLAGS= From DONOTREPLY at icculus.org Tue Oct 4 19:54:51 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 4 Oct 2005 19:54:51 -0400 Subject: r138 - in trunk: . code/tools/lcc code/unix Message-ID: <20051004235451.4418.qmail@icculus.org> Author: tma Date: 2005-10-04 19:54:51 -0400 (Tue, 04 Oct 2005) New Revision: 138 Removed: trunk/code/unix/Makefile.Game Modified: trunk/Makefile trunk/code/tools/lcc/makefile trunk/code/unix/Makefile Log: * VM game modules now built from the main Makefile Modified: trunk/Makefile =================================================================== --- trunk/Makefile 2005-10-04 19:15:34 UTC (rev 137) +++ trunk/Makefile 2005-10-04 23:54:51 UTC (rev 138) @@ -1,6 +1,6 @@ VERSION=1.33_SVN$(shell LANG=C svnversion .) -release debug clean: +release debug clean distclean: $(MAKE) -C code/unix $@ dist: @@ -9,4 +9,4 @@ tar --force-local -cjf quake3-$(VERSION).tar.bz2 quake3-$(VERSION) rm -rf quake3-$(VERSION) -.PHONY: release debug clean +.PHONY: release debug clean distclean Modified: trunk/code/tools/lcc/makefile =================================================================== --- trunk/code/tools/lcc/makefile 2005-10-04 19:15:34 UTC (rev 137) +++ trunk/code/tools/lcc/makefile 2005-10-04 23:54:51 UTC (rev 138) @@ -12,7 +12,7 @@ endif CC=gcc -CFLAGS=-O2 -Wall -fno-strict-aliasing +LCC_CFLAGS=-O2 -Wall -fno-strict-aliasing LDFLAGS= LD=gcc AR=ar ruv @@ -22,7 +22,7 @@ RMDIR=rmdir BUILDDIR=build TSTDIR=$(BUILDDIR)/$(TARGET)/tst -B=$(BUILDDIR)/ +BD=$(BUILDDIR)/ T=$(TSTDIR)/ # $Id: makefile 145 2001-10-17 21:53:10Z timo $ @@ -36,227 +36,227 @@ all:: q3rcc lburg q3cpp q3lcc bprint liblcc -q3rcc: makedirs $Bq3rcc$E -lburg: makedirs $Blburg$E -q3cpp: makedirs $Bq3cpp$E -q3lcc: makedirs $Bq3lcc$E -bprint: makedirs $Bbprint$E -liblcc: makedirs $Bliblcc$A +q3rcc: makedirs $(BD)q3rcc$(E) +lburg: makedirs $(BD)lburg$(E) +q3cpp: makedirs $(BD)q3cpp$(E) +q3lcc: makedirs $(BD)q3lcc$(E) +bprint: makedirs $(BD)bprint$(E) +liblcc: makedirs $(BD)liblcc$(A) -RCCOBJS=$Balloc$O \ - $Bbind$O \ - $Bdag$O \ - $Bdagcheck$O \ - $Bdecl$O \ - $Benode$O \ - $Berror$O \ - $Bexpr$O \ - $Bevent$O \ - $Binit$O \ - $Binits$O \ - $Binput$O \ - $Blex$O \ - $Blist$O \ - $Bmain$O \ - $Boutput$O \ - $Bprof$O \ - $Bprofio$O \ - $Bsimp$O \ - $Bstmt$O \ - $Bstring$O \ - $Bsym$O \ - $Btrace$O \ - $Btree$O \ - $Btypes$O \ - $Bnull$O \ - $Bsymbolic$O \ - $Bgen$O \ - $Bbytecode$O +RCCOBJS=$(BD)alloc$O \ + $(BD)bind$O \ + $(BD)dag$O \ + $(BD)dagcheck$O \ + $(BD)decl$O \ + $(BD)enode$O \ + $(BD)error$O \ + $(BD)expr$O \ + $(BD)event$O \ + $(BD)init$O \ + $(BD)inits$O \ + $(BD)input$O \ + $(BD)lex$O \ + $(BD)list$O \ + $(BD)main$O \ + $(BD)output$O \ + $(BD)prof$O \ + $(BD)profio$O \ + $(BD)simp$O \ + $(BD)stmt$O \ + $(BD)string$O \ + $(BD)sym$O \ + $(BD)trace$O \ + $(BD)tree$O \ + $(BD)types$O \ + $(BD)null$O \ + $(BD)symbolic$O \ + $(BD)gen$O \ + $(BD)bytecode$O -$Bq3rcc$E:: $Bmain$O $Blibrcc$A $(EXTRAOBJS) - $(LD) $(LDFLAGS) -o $@ $Bmain$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS) +$(BD)q3rcc$(E):: $(BD)main$O $(BD)librcc$(A) $(EXTRAOBJS) + $(LD) $(LDFLAGS) -o $@ $(BD)main$O $(EXTRAOBJS) $(BD)librcc$(A) $(EXTRALIBS) -$Blibrcc$A: $(RCCOBJS) +$(BD)librcc$(A): $(RCCOBJS) $(AR) $@ $(RCCOBJS); $(RANLIB) $@ || true $(RCCOBJS): src/c.h src/token.h src/config.h -$Balloc$O: src/alloc.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/alloc.c -$Bbind$O: src/bind.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/bind.c -$Bdag$O: src/dag.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/dag.c -$Bdecl$O: src/decl.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/decl.c -$Benode$O: src/enode.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/enode.c -$Berror$O: src/error.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/error.c -$Bevent$O: src/event.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/event.c -$Bexpr$O: src/expr.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/expr.c -$Bgen$O: src/gen.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/gen.c -$Binit$O: src/init.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/init.c -$Binits$O: src/inits.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/inits.c -$Binput$O: src/input.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/input.c -$Blex$O: src/lex.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/lex.c -$Blist$O: src/list.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/list.c -$Bmain$O: src/main.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/main.c -$Bnull$O: src/null.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/null.c -$Boutput$O: src/output.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/output.c -$Bprof$O: src/prof.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/prof.c -$Bprofio$O: src/profio.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/profio.c -$Bsimp$O: src/simp.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/simp.c -$Bstmt$O: src/stmt.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/stmt.c -$Bstring$O: src/string.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/string.c -$Bsym$O: src/sym.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/sym.c -$Bsymbolic$O: src/symbolic.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/symbolic.c -$Bbytecode$O: src/bytecode.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/bytecode.c -$Btrace$O: src/trace.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/trace.c -$Btree$O: src/tree.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/tree.c -$Btypes$O: src/types.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/types.c -$Bstab$O: src/stab.c src/stab.h; $(CC) $(CFLAGS) -c -Isrc -o $@ src/stab.c +$(BD)alloc$O: src/alloc.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/alloc.c +$(BD)bind$O: src/bind.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/bind.c +$(BD)dag$O: src/dag.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/dag.c +$(BD)decl$O: src/decl.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/decl.c +$(BD)enode$O: src/enode.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/enode.c +$(BD)error$O: src/error.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/error.c +$(BD)event$O: src/event.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/event.c +$(BD)expr$O: src/expr.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/expr.c +$(BD)gen$O: src/gen.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/gen.c +$(BD)init$O: src/init.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/init.c +$(BD)inits$O: src/inits.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/inits.c +$(BD)input$O: src/input.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/input.c +$(BD)lex$O: src/lex.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/lex.c +$(BD)list$O: src/list.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/list.c +$(BD)main$O: src/main.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/main.c +$(BD)null$O: src/null.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/null.c +$(BD)output$O: src/output.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/output.c +$(BD)prof$O: src/prof.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/prof.c +$(BD)profio$O: src/profio.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/profio.c +$(BD)simp$O: src/simp.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/simp.c +$(BD)stmt$O: src/stmt.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/stmt.c +$(BD)string$O: src/string.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/string.c +$(BD)sym$O: src/sym.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/sym.c +$(BD)symbolic$O: src/symbolic.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/symbolic.c +$(BD)bytecode$O: src/bytecode.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/bytecode.c +$(BD)trace$O: src/trace.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/trace.c +$(BD)tree$O: src/tree.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/tree.c +$(BD)types$O: src/types.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/types.c +$(BD)stab$O: src/stab.c src/stab.h; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/stab.c -$Bdagcheck$O: $Bdagcheck.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bdagcheck.c -$Balpha$O: $Balpha.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Balpha.c -$Bmips$O: $Bmips.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bmips.c -$Bsparc$O: $Bsparc.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bsparc.c -$Bx86$O: $Bx86.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bx86.c -$Bx86linux$O: $Bx86linux.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bx86linux.c +$(BD)dagcheck$O: $(BD)dagcheck.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)dagcheck.c +$(BD)alpha$O: $(BD)alpha.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)alpha.c +$(BD)mips$O: $(BD)mips.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)mips.c +$(BD)sparc$O: $(BD)sparc.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)sparc.c +$(BD)x86$O: $(BD)x86.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)x86.c +$(BD)x86linux$O: $(BD)x86linux.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)x86linux.c -$Bdagcheck.c: $Blburg$E src/dagcheck.md; $Blburg src/dagcheck.md $@ -$Balpha.c: $Blburg$E src/alpha.md; $Blburg src/alpha.md $@ -$Bmips.c: $Blburg$E src/mips.md; $Blburg src/mips.md $@ -$Bsparc.c: $Blburg$E src/sparc.md; $Blburg src/sparc.md $@ -$Bx86.c: $Blburg$E src/x86.md; $Blburg src/x86.md $@ -$Bx86linux.c: $Blburg$E src/x86linux.md; $Blburg src/x86linux.md $@ +$(BD)dagcheck.c: $(BD)lburg$(E) src/dagcheck.md; $(BD)lburg src/dagcheck.md $@ +$(BD)alpha.c: $(BD)lburg$(E) src/alpha.md; $(BD)lburg src/alpha.md $@ +$(BD)mips.c: $(BD)lburg$(E) src/mips.md; $(BD)lburg src/mips.md $@ +$(BD)sparc.c: $(BD)lburg$(E) src/sparc.md; $(BD)lburg src/sparc.md $@ +$(BD)x86.c: $(BD)lburg$(E) src/x86.md; $(BD)lburg src/x86.md $@ +$(BD)x86linux.c: $(BD)lburg$(E) src/x86linux.md; $(BD)lburg src/x86linux.md $@ -$Bq3rcc.h: src/rcc.asdl; $(ASDL_HOME)/bin/asdlGen --c -d $B src/rcc.asdl -$Bq3rcc$O: $Brcc.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ $Brcc.c -$Basdl$O: src/asdl.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ src/asdl.c -$Bpass2$O: src/pass2.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ src/pass2.c -$B2html$O: src/2html.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ src/2html.c +$(BD)q3rcc.h: src/rcc.asdl; $(ASDL_HOME)/bin/asdlGen --c -d $(BD) src/rcc.asdl +$(BD)q3rcc$O: $(BD)rcc.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ $(BD)rcc.c +$(BD)asdl$O: src/asdl.c $(BD)rcc.h src/c.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ src/asdl.c +$(BD)pass2$O: src/pass2.c $(BD)rcc.h src/c.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ src/pass2.c +$(BD)2html$O: src/2html.c $(BD)rcc.h src/c.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ src/2html.c -$Bpass2$E: $Bpass2$O $(EXTRAOBJS) $Blibrcc$A; $(LD) $(LDFLAGS) -o $@ $Bpass2$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS) -$B2html$E: $B2html$O $Bq3rcc$O; $(LD) $(LDFLAGS) -o $@ $B2html$O $Bq3rcc$O $(EXTRALIBS) +$(BD)pass2$(E): $(BD)pass2$O $(EXTRAOBJS) $(BD)librcc$(A); $(LD) $(LDFLAGS) -o $@ $(BD)pass2$O $(EXTRAOBJS) $(BD)librcc$(A) $(EXTRALIBS) +$(BD)2html$(E): $(BD)2html$O $(BD)q3rcc$O; $(LD) $(LDFLAGS) -o $@ $(BD)2html$O $(BD)q3rcc$O $(EXTRALIBS) -$Bbprint$E: $Bbprint$O; $(LD) $(LDFLAGS) -o $@ $Bbprint$O +$(BD)bprint$(E): $(BD)bprint$O; $(LD) $(LDFLAGS) -o $@ $(BD)bprint$O -$Bbprint$O: etc/bprint.c; $(CC) $(CFLAGS) -c -Isrc -o $@ etc/bprint.c +$(BD)bprint$O: etc/bprint.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ etc/bprint.c -$Bq3lcc$E: $Bq3lcc$O $Bhost$O; $(LD) $(LDFLAGS) -o $@ $Bq3lcc$O $Bhost$O +$(BD)q3lcc$(E): $(BD)q3lcc$O $(BD)host$O; $(LD) $(LDFLAGS) -o $@ $(BD)q3lcc$O $(BD)host$O SYSTEM=$(shell cc -print-search-dirs | head -n 1 | cut -b 10-) -$Bq3lcc$O: etc/lcc.c; $(CC) $(CFLAGS) -c -DTEMPDIR=\"$(TEMPDIR)\" -o $@ etc/lcc.c -$Bhost$O: $(HOSTFILE); $(CC) $(CFLAGS) -c -DSYSTEM=\"$(SYSTEM)\" -o $@ $(HOSTFILE) +$(BD)q3lcc$O: etc/lcc.c; $(CC) $(LCC_CFLAGS) -c -DTEMPDIR=\"$(TEMPDIR)\" -o $@ etc/lcc.c +$(BD)host$O: $(HOSTFILE); $(CC) $(LCC_CFLAGS) -c -DSYSTEM=\"$(SYSTEM)\" -o $@ $(HOSTFILE) -LIBOBJS=$Bassert$O $Bbbexit$O $Byynull$O +LIBOBJS=$(BD)assert$O $(BD)bbexit$O $(BD)yynull$O -$Bliblcc$A: $(LIBOBJS); $(AR) $@ $Bassert$O $Bbbexit$O $Byynull$O; $(RANLIB) $@ || true +$(BD)liblcc$(A): $(LIBOBJS); $(AR) $@ $(BD)assert$O $(BD)bbexit$O $(BD)yynull$O; $(RANLIB) $@ || true -$Bassert$O: lib/assert.c; $(CC) $(CFLAGS) -c -o $@ lib/assert.c -$Byynull$O: lib/yynull.c; $(CC) $(CFLAGS) -c -o $@ lib/yynull.c -$Bbbexit$O: lib/bbexit.c; $(CC) $(CFLAGS) -c -o $@ lib/bbexit.c +$(BD)assert$O: lib/assert.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/assert.c +$(BD)yynull$O: lib/yynull.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/yynull.c +$(BD)bbexit$O: lib/bbexit.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/bbexit.c -$Blburg$E: $Blburg$O $Bgram$O; $(LD) $(LDFLAGS) -o $@ $Blburg$O $Bgram$O +$(BD)lburg$(E): $(BD)lburg$O $(BD)gram$O; $(LD) $(LDFLAGS) -o $@ $(BD)lburg$O $(BD)gram$O -$Blburg$O $Bgram$O: lburg/lburg.h +$(BD)lburg$O $(BD)gram$O: lburg/lburg.h -$Blburg$O: lburg/lburg.c; $(CC) $(CFLAGS) -c -Ilburg -o $@ lburg/lburg.c -$Bgram$O: lburg/gram.c; $(CC) $(CFLAGS) -c -Ilburg -o $@ lburg/gram.c +$(BD)lburg$O: lburg/lburg.c; $(CC) $(LCC_CFLAGS) -c -Ilburg -o $@ lburg/lburg.c +$(BD)gram$O: lburg/gram.c; $(CC) $(LCC_CFLAGS) -c -Ilburg -o $@ lburg/gram.c -CPPOBJS=$Bq3cpp$O $Blexer$O $Bnlist$O $Btokens$O $Bmacro$O $Beval$O \ - $Binclude$O $Bhideset$O $Bgetopt$O $Bunix$O +CPPOBJS=$(BD)q3cpp$O $(BD)lexer$O $(BD)nlist$O $(BD)tokens$O $(BD)macro$O $(BD)eval$O \ + $(BD)include$O $(BD)hideset$O $(BD)getopt$O $(BD)unix$O -$Bq3cpp$E: $(CPPOBJS) +$(BD)q3cpp$(E): $(CPPOBJS) $(LD) $(LDFLAGS) -o $@ $(CPPOBJS) $(CPPOBJS): cpp/cpp.h -$Bq3cpp$O: cpp/cpp.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/cpp.c -$Blexer$O: cpp/lex.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/lex.c -$Bnlist$O: cpp/nlist.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/nlist.c -$Btokens$O: cpp/tokens.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/tokens.c -$Bmacro$O: cpp/macro.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/macro.c -$Beval$O: cpp/eval.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/eval.c -$Binclude$O: cpp/include.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/include.c -$Bhideset$O: cpp/hideset.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/hideset.c -$Bgetopt$O: cpp/getopt.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/getopt.c -$Bunix$O: cpp/unix.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/unix.c +$(BD)q3cpp$O: cpp/cpp.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/cpp.c +$(BD)lexer$O: cpp/lex.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/lex.c +$(BD)nlist$O: cpp/nlist.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/nlist.c +$(BD)tokens$O: cpp/tokens.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/tokens.c +$(BD)macro$O: cpp/macro.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/macro.c +$(BD)eval$O: cpp/eval.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/eval.c +$(BD)include$O: cpp/include.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/include.c +$(BD)hideset$O: cpp/hideset.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/hideset.c +$(BD)getopt$O: cpp/getopt.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/getopt.c +$(BD)unix$O: cpp/unix.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/unix.c -test: $T8q.s \ - $Tarray.s \ - $Tcf.s \ - $Tcq.s \ - $Tcvt.s \ - $Tfields.s \ - $Tfront.s \ - $Tincr.s \ - $Tinit.s \ - $Tlimits.s \ - $Tparanoia.s \ - $Tsort.s \ - $Tspill.s \ - $Tstdarg.s \ - $Tstruct.s \ - $Tswitch.s \ - $Twf1.s \ - $Tyacc.s +test: $(T)8q.s \ + $(T)array.s \ + $(T)cf.s \ + $(T)cq.s \ + $(T)cvt.s \ + $(T)fields.s \ + $(T)front.s \ + $(T)incr.s \ + $(T)init.s \ + $(T)limits.s \ + $(T)paranoia.s \ + $(T)sort.s \ + $(T)spill.s \ + $(T)stdarg.s \ + $(T)struct.s \ + $(T)switch.s \ + $(T)wf1.s \ + $(T)yacc.s -$T8q.s: tst/8q.c tst/8q.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tarray.s: tst/array.c tst/array.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tcf.s: tst/cf.c tst/cf.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tcq.s: tst/cq.c tst/cq.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tcvt.s: tst/cvt.c tst/cvt.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tfields.s: tst/fields.c tst/fields.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tfront.s: tst/front.c tst/front.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tincr.s: tst/incr.c tst/incr.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tinit.s: tst/init.c tst/init.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tlimits.s: tst/limits.c tst/limits.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tparanoia.s: tst/paranoia.c tst/paranoia.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tsort.s: tst/sort.c tst/sort.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tspill.s: tst/spill.c tst/spill.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tstdarg.s: tst/stdarg.c tst/stdarg.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tstruct.s: tst/struct.c tst/struct.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tswitch.s: tst/switch.c tst/switch.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Twf1.s: tst/wf1.c tst/wf1.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ -$Tyacc.s: tst/yacc.c tst/yacc.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)8q.s: tst/8q.c tst/8q.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)array.s: tst/array.c tst/array.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)cf.s: tst/cf.c tst/cf.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)cq.s: tst/cq.c tst/cq.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)cvt.s: tst/cvt.c tst/cvt.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)fields.s: tst/fields.c tst/fields.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)front.s: tst/front.c tst/front.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)incr.s: tst/incr.c tst/incr.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)init.s: tst/init.c tst/init.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)limits.s: tst/limits.c tst/limits.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)paranoia.s: tst/paranoia.c tst/paranoia.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)sort.s: tst/sort.c tst/sort.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)spill.s: tst/spill.c tst/spill.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)stdarg.s: tst/stdarg.c tst/stdarg.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)struct.s: tst/struct.c tst/struct.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)switch.s: tst/switch.c tst/switch.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)wf1.s: tst/wf1.c tst/wf1.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$(T)yacc.s: tst/yacc.c tst/yacc.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ testclean: - $(RM) $T8q$E $T8q.s $T8q.2 $T8q.1 - $(RM) $Tarray$E $Tarray.s $Tarray.2 $Tarray.1 - $(RM) $Tcf$E $Tcf.s $Tcf.2 $Tcf.1 - $(RM) $Tcq$E $Tcq.s $Tcq.2 $Tcq.1 - $(RM) $Tcvt$E $Tcvt.s $Tcvt.2 $Tcvt.1 - $(RM) $Tfields$E $Tfields.s $Tfields.2 $Tfields.1 - $(RM) $Tfront$E $Tfront.s $Tfront.2 $Tfront.1 - $(RM) $Tincr$E $Tincr.s $Tincr.2 $Tincr.1 - $(RM) $Tinit$E $Tinit.s $Tinit.2 $Tinit.1 - $(RM) $Tlimits$E $Tlimits.s $Tlimits.2 $Tlimits.1 - $(RM) $Tparanoia$E $Tparanoia.s $Tparanoia.2 $Tparanoia.1 - $(RM) $Tsort$E $Tsort.s $Tsort.2 $Tsort.1 - $(RM) $Tspill$E $Tspill.s $Tspill.2 $Tspill.1 - $(RM) $Tstdarg$E $Tstdarg.s $Tstdarg.2 $Tstdarg.1 - $(RM) $Tstruct$E $Tstruct.s $Tstruct.2 $Tstruct.1 - $(RM) $Tswitch$E $Tswitch.s $Tswitch.2 $Tswitch.1 - $(RM) $Twf1$E $Twf1.s $Twf1.2 $Twf1.1 - $(RM) $Tyacc$E $Tyacc.s $Tyacc.2 $Tyacc.1 + $(RM) $(T)8q$(E) $(T)8q.s $(T)8q.2 $(T)8q.1 + $(RM) $(T)array$(E) $(T)array.s $(T)array.2 $(T)array.1 + $(RM) $(T)cf$(E) $(T)cf.s $(T)cf.2 $(T)cf.1 + $(RM) $(T)cq$(E) $(T)cq.s $(T)cq.2 $(T)cq.1 + $(RM) $(T)cvt$(E) $(T)cvt.s $(T)cvt.2 $(T)cvt.1 + $(RM) $(T)fields$(E) $(T)fields.s $(T)fields.2 $(T)fields.1 + $(RM) $(T)front$(E) $(T)front.s $(T)front.2 $(T)front.1 + $(RM) $(T)incr$(E) $(T)incr.s $(T)incr.2 $(T)incr.1 + $(RM) $(T)init$(E) $(T)init.s $(T)init.2 $(T)init.1 + $(RM) $(T)limits$(E) $(T)limits.s $(T)limits.2 $(T)limits.1 + $(RM) $(T)paranoia$(E) $(T)paranoia.s $(T)paranoia.2 $(T)paranoia.1 + $(RM) $(T)sort$(E) $(T)sort.s $(T)sort.2 $(T)sort.1 + $(RM) $(T)spill$(E) $(T)spill.s $(T)spill.2 $(T)spill.1 + $(RM) $(T)stdarg$(E) $(T)stdarg.s $(T)stdarg.2 $(T)stdarg.1 + $(RM) $(T)struct$(E) $(T)struct.s $(T)struct.2 $(T)struct.1 + $(RM) $(T)switch$(E) $(T)switch.s $(T)switch.2 $(T)switch.1 + $(RM) $(T)wf1$(E) $(T)wf1.s $(T)wf1.2 $(T)wf1.1 + $(RM) $(T)yacc$(E) $(T)yacc.s $(T)yacc.2 $(T)yacc.1 install:: all - install -s -m 0755 $Bq3lcc$E ../ - install -s -m 0755 $Bq3cpp$E ../ - install -s -m 0755 $Bq3rcc$E ../ + install -s -m 0755 $(BD)q3lcc$(E) ../ + install -s -m 0755 $(BD)q3cpp$(E) ../ + install -s -m 0755 $(BD)q3rcc$(E) ../ uninstall:: - -$(RM) ../q3lcc$E - -$(RM) ../q3cpp$E - -$(RM) ../q3rcc$E + -$(RM) ../q3lcc$(E) + -$(RM) ../q3cpp$(E) + -$(RM) ../q3rcc$(E) clean:: testclean - $(RM) $B*$O - $(RM) $Bdagcheck.c $Balpha.c $Bmips.c $Bx86.c $Bsparc.c $Bx86linux.c $Bgram.c - $(RM) $Brcc.c $Brcc.h - $(RM) $Brcc1$E $Brcc1$E $B1rcc$E $B2rcc$E - $(RM) $B*.ilk + $(RM) $(BD)*$O + $(RM) $(BD)dagcheck.c $(BD)alpha.c $(BD)mips.c $(BD)x86.c $(BD)sparc.c $(BD)x86linux.c $(BD)gram.c + $(RM) $(BD)rcc.c $(BD)rcc.h + $(RM) $(BD)rcc1$(E) $(BD)rcc1$(E) $(BD)1rcc$(E) $(BD)2rcc$(E) + $(RM) $(BD)*.ilk clobber:: clean - $(RM) $Bq3rcc$E $B2html$E $Bpass2$E $Blburg$E $Bq3cpp$E $Bq3lcc$E $Bbprint$E $B*$A - $(RM) $B*.pdb $B*.pch + $(RM) $(BD)q3rcc$(E) $(BD)2html$(E) $(BD)pass2$(E) $(BD)lburg$(E) $(BD)q3cpp$(E) $(BD)q3lcc$(E) $(BD)bprint$(E) $(BD)*$(A) + $(RM) $(BD)*.pdb $(BD)*.pch RCCSRCS=src/alloc.c \ src/bind.c \ @@ -287,20 +287,20 @@ src/bytecode.c \ src/gen.c \ src/stab.c \ - $Bdagcheck.c \ - $Balpha.c \ - $Bmips.c \ - $Bsparc.c \ - $Bx86linux.c \ - $Bx86.c + $(BD)dagcheck.c \ + $(BD)alpha.c \ + $(BD)mips.c \ + $(BD)sparc.c \ + $(BD)x86linux.c \ + $(BD)x86.c -C=$Bq3lcc -A -d0.6 -Wo-lccdir=$(BUILDDIR) -Isrc -I$(BUILDDIR) -triple: $Bq3rcc$E $Bq3lcc$E $Bq3cpp$E - $C -o $B1rcc$E -B$B $(RCCSRCS) - $C -o $B2rcc$E -B$B1 $(RCCSRCS) - strip $B1rcc$E $B2rcc$E - dd if=$B1rcc$E of=$Brcc1$E bs=512 skip=1 - dd if=$B2rcc$E of=$Brcc2$E bs=512 skip=1 - if cmp $Brcc1$E $Brcc2$E; then \ - mv $B2rcc$E $Bq3rcc$E; \ - $(RM) $B1rcc$E $Bq3rcc[12]$E; fi +C=$(BD)q3lcc -A -d0.6 -Wo-lccdir=$(BUILDDIR) -Isrc -I$(BUILDDIR) +triple: $(BD)q3rcc$(E) $(BD)q3lcc$(E) $(BD)q3cpp$(E) + $C -o $(BD)1rcc$(E) -B$(BD) $(RCCSRCS) + $C -o $(BD)2rcc$(E) -B$(BD)1 $(RCCSRCS) + strip $(BD)1rcc$(E) $(BD)2rcc$(E) + dd if=$(BD)1rcc$(E) of=$(BD)rcc1$(E) bs=512 skip=1 + dd if=$(BD)2rcc$(E) of=$(BD)rcc2$(E) bs=512 skip=1 + if cmp $(BD)rcc1$(E) $(BD)rcc2$(E); then \ + mv $(BD)2rcc$(E) $(BD)q3rcc$(E); \ + $(RM) $(BD)1rcc$(E) $(BD)q3rcc[12]$(E); fi Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-04 19:15:34 UTC (rev 137) +++ trunk/code/unix/Makefile 2005-10-04 23:54:51 UTC (rev 138) @@ -194,12 +194,12 @@ $(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) \ $(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) \ $(B)/missionpack/ui$(ARCH).$(SHLIBEXT) \ -# $(B)/baseq3/vm/qagame.qvm \ -# $(B)/baseq3/vm/cgame.qvm \ -# $(B)/baseq3/vm/ui.qvm \ -# $(B)/missionpack/vm/qagame.qvm \ -# $(B)/missionpack/vm/cgame.qvm \ -# $(B)/missionpack/vm/ui.qvm + $(B)/baseq3/vm/cgame.qvm \ + $(B)/baseq3/vm/qagame.qvm \ + $(B)/baseq3/vm/ui.qvm \ + $(B)/missionpack/vm/qagame.qvm \ + $(B)/missionpack/vm/cgame.qvm \ + $(B)/missionpack/vm/ui.qvm # $(B)/$(PLATFORM)quake3-smp \ endif @@ -244,6 +244,8 @@ SHLIBCFLAGS= SHLIBLDFLAGS=-shared $(LDFLAGS) + BINEXT=.exe + LDFLAGS= -mwindows -lwsock32 -lgdi32 -lwinmm -lole32 GLLDFLAGS= @@ -266,13 +268,13 @@ $(B)/baseq3/ui$(ARCH).$(SHLIBEXT) \ $(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) \ $(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) \ - $(B)/missionpack/ui$(ARCH).$(SHLIBEXT) -# $(B)/baseq3/vm/qagame.qvm \ -# $(B)/baseq3/vm/cgame.qvm \ -# $(B)/baseq3/vm/ui.qvm \ -# $(B)/missionpack/vm/qagame.qvm \ -# $(B)/missionpack/vm/cgame.qvm \ -# $(B)/missionpack/vm/ui.qvm + $(B)/missionpack/ui$(ARCH).$(SHLIBEXT) \ + $(B)/baseq3/vm/cgame.qvm \ + $(B)/baseq3/vm/qagame.qvm \ + $(B)/baseq3/vm/ui.qvm \ + $(B)/missionpack/vm/qagame.qvm \ + $(B)/missionpack/vm/cgame.qvm \ + $(B)/missionpack/vm/ui.qvm else # ifeq mingw32 @@ -325,12 +327,19 @@ else TARGETS=\ $(B)/$(PLATFORM)quake3 \ + $(B)/$(PLATFORM)q3ded \ $(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) \ $(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) \ $(B)/baseq3/ui$(ARCH).$(SHLIBEXT) \ $(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) \ $(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) \ - $(B)/missionpack/ui$(ARCH).$(SHLIBEXT) + $(B)/missionpack/ui$(ARCH).$(SHLIBEXT) \ + $(B)/baseq3/vm/cgame.qvm \ + $(B)/baseq3/vm/qagame.qvm \ + $(B)/baseq3/vm/ui.qvm \ + $(B)/missionpack/vm/qagame.qvm \ + $(B)/missionpack/vm/cgame.qvm \ + $(B)/missionpack/vm/ui.qvm endif else # ifeq freebsd @@ -357,8 +366,8 @@ LDFLAGS=-ldl -lm GLLDFLAGS=-L/usr/X11/$(LIB) -lGL -lX11 -lXext -lm - TARGETS=$(B)/sgiquake3 \ - $(B)/q3ded + TARGETS=$(B)/$(PLATFORM)quake3 \ + $(B)/$(PLATFORM)q3ded else # ifeq IRIX @@ -404,9 +413,25 @@ DO_DED_CC=$(CC) -DDEDICATED -DC_ONLY $(CFLAGS) -o $@ -c $< DO_WINDRES=$(WINDRES) -i $< -o $@ -#DO_LCC=$(LCC) -o $@ -S -Wf-target=bytecode -Wf-g -DQ3_VM -I$(CGDIR) -I$(GDIR) -I$(UIDIR) $< +############################################################################# +# QVM BUILD TOOLS +############################################################################# -#### DEFAULT TARGET +Q3LCC=../tools/q3lcc$(BINEXT) +Q3ASM=../tools/q3asm$(BINEXT) + +$(Q3LCC): + $(MAKE) -C ../tools/lcc install + +$(Q3ASM): + $(MAKE) -C ../tools/asm install + +DO_Q3LCC=$(Q3LCC) -o $@ -S -DQ3_VM -I$(CGDIR) -I$(GDIR) -I$(UIDIR) $< + +############################################################################# +# MAIN TARGETS +############################################################################# + default:build_release debug: build_debug @@ -1054,41 +1079,13 @@ $(B)/ded/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_DED_CC) -############################################################################# -## QVM -############################################################################# -$(B)/baseq3/vm/cgame.qvm: - cd $(CGDIR) && ./cgame.sh - mv /tmp/quake3/baseq3/vm/cgame.qvm $@ - -$(B)/baseq3/vm/ui.qvm: - cd $(Q3UIDIR) && ./q3_ui.sh - mv /tmp/quake3/baseq3/vm/ui.qvm $@ - -$(B)/baseq3/vm/qagame.qvm: - cd $(GDIR) && ./game.sh - mv /tmp/quake3/baseq3/vm/qagame.qvm $@ - -$(B)/missionpack/vm/cgame.qvm: - cd $(CGDIR) && ./cgame_ta.sh - mv /tmp/quake3/missionpack/vm/cgame.qvm $@ - -$(B)/missionpack/vm/qagame.qvm: - cd $(GDIR) && ./game_ta.sh - mv /tmp/quake3/missionpack/vm/qagame.qvm $@ - -$(B)/missionpack/vm/ui.qvm: - cd $(UIDIR) && ./ui.sh - mv /tmp/quake3/missionpack/vm/ui.qvm $@ - - - ############################################################################# ## BASEQ3 CGAME ############################################################################# -Q3CGOBJ = \ +Q3CGOBJ_ = \ + $(B)/baseq3/cgame/cg_main.o \ $(B)/baseq3/game/bg_misc.o \ $(B)/baseq3/game/bg_pmove.o \ $(B)/baseq3/game/bg_slidemove.o \ @@ -1100,7 +1097,6 @@ $(B)/baseq3/cgame/cg_event.o \ $(B)/baseq3/cgame/cg_info.o \ $(B)/baseq3/cgame/cg_localents.o \ - $(B)/baseq3/cgame/cg_main.o \ $(B)/baseq3/cgame/cg_marks.o \ $(B)/baseq3/cgame/cg_players.o \ $(B)/baseq3/cgame/cg_playerstate.o \ @@ -1108,20 +1104,26 @@ $(B)/baseq3/cgame/cg_scoreboard.o \ $(B)/baseq3/cgame/cg_servercmds.o \ $(B)/baseq3/cgame/cg_snapshot.o \ - $(B)/baseq3/cgame/cg_syscalls.o \ $(B)/baseq3/cgame/cg_view.o \ $(B)/baseq3/cgame/cg_weapons.o \ $(B)/baseq3/game/q_math.o \ $(B)/baseq3/game/q_shared.o +Q3CGOBJ = $(Q3CGOBJ_) $(B)/baseq3/cgame/cg_syscalls.o +Q3CGVMOBJ = $(Q3CGOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm + $(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) : $(Q3CGOBJ) $(CC) $(SHLIBLDFLAGS) -o $@ $(Q3CGOBJ) +$(B)/baseq3/vm/cgame.qvm: $(Q3CGVMOBJ) $(CGDIR)/cg_syscalls.asm $(Q3ASM) + $(Q3ASM) -o $@ $(Q3CGVMOBJ) $(CGDIR)/cg_syscalls.asm + ############################################################################# ## MISSIONPACK CGAME ############################################################################# -MPCGOBJ = \ +MPCGOBJ_ = \ + $(B)/missionpack/cgame/cg_main.o \ $(B)/missionpack/game/bg_misc.o \ $(B)/missionpack/game/bg_pmove.o \ $(B)/missionpack/game/bg_slidemove.o \ @@ -1134,7 +1136,6 @@ $(B)/missionpack/cgame/cg_event.o \ $(B)/missionpack/cgame/cg_info.o \ $(B)/missionpack/cgame/cg_localents.o \ - $(B)/missionpack/cgame/cg_main.o \ $(B)/missionpack/cgame/cg_marks.o \ $(B)/missionpack/cgame/cg_players.o \ $(B)/missionpack/cgame/cg_playerstate.o \ @@ -1142,23 +1143,29 @@ $(B)/missionpack/cgame/cg_scoreboard.o \ $(B)/missionpack/cgame/cg_servercmds.o \ $(B)/missionpack/cgame/cg_snapshot.o \ - $(B)/missionpack/cgame/cg_syscalls.o \ $(B)/missionpack/cgame/cg_view.o \ $(B)/missionpack/cgame/cg_weapons.o \ $(B)/missionpack/game/q_math.o \ $(B)/missionpack/game/q_shared.o \ $(B)/missionpack/ui/ui_shared.o +MPCGOBJ = $(MPCGOBJ_) $(B)/missionpack/cgame/cg_syscalls.o +MPCGVMOBJ = $(MPCGOBJ_:%.o=%.asm) $(B)/missionpack/game/bg_lib.asm + $(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) : $(MPCGOBJ) $(CC) $(SHLIBLDFLAGS) -o $@ $(MPCGOBJ) +$(B)/missionpack/vm/cgame.qvm: $(MPCGVMOBJ) $(CGDIR)/cg_syscalls.asm $(Q3ASM) + $(Q3ASM) -o $@ $(MPCGVMOBJ) $(CGDIR)/cg_syscalls.asm + ############################################################################# ## BASEQ3 GAME ############################################################################# -Q3GOBJ = \ +Q3GOBJ_ = \ + $(B)/baseq3/game/g_main.o \ $(B)/baseq3/game/ai_chat.o \ $(B)/baseq3/game/ai_cmd.o \ $(B)/baseq3/game/ai_dmnet.o \ @@ -1176,7 +1183,6 @@ $(B)/baseq3/game/g_cmds.o \ $(B)/baseq3/game/g_combat.o \ $(B)/baseq3/game/g_items.o \ - $(B)/baseq3/game/g_main.o \ $(B)/baseq3/game/g_mem.o \ $(B)/baseq3/game/g_misc.o \ $(B)/baseq3/game/g_missile.o \ @@ -1184,7 +1190,6 @@ $(B)/baseq3/game/g_session.o \ $(B)/baseq3/game/g_spawn.o \ $(B)/baseq3/game/g_svcmds.o \ - $(B)/baseq3/game/g_syscalls.o \ $(B)/baseq3/game/g_target.o \ $(B)/baseq3/game/g_team.o \ $(B)/baseq3/game/g_trigger.o \ @@ -1194,14 +1199,21 @@ $(B)/baseq3/game/q_math.o \ $(B)/baseq3/game/q_shared.o +Q3GOBJ = $(Q3GOBJ_) $(B)/baseq3/game/g_syscalls.o +Q3GVMOBJ = $(Q3GOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm + $(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) : $(Q3GOBJ) $(CC) $(SHLIBLDFLAGS) -o $@ $(Q3GOBJ) +$(B)/baseq3/vm/qagame.qvm: $(Q3GVMOBJ) $(GDIR)/g_syscalls.asm $(Q3ASM) + $(Q3ASM) -o $@ $(Q3GVMOBJ) $(GDIR)/g_syscalls.asm + ############################################################################# ## MISSIONPACK GAME ############################################################################# -MPGOBJ = \ +MPGOBJ_ = \ + $(B)/missionpack/game/g_main.o \ $(B)/missionpack/game/ai_chat.o \ $(B)/missionpack/game/ai_cmd.o \ $(B)/missionpack/game/ai_dmnet.o \ @@ -1219,7 +1231,6 @@ $(B)/missionpack/game/g_cmds.o \ $(B)/missionpack/game/g_combat.o \ $(B)/missionpack/game/g_items.o \ - $(B)/missionpack/game/g_main.o \ $(B)/missionpack/game/g_mem.o \ $(B)/missionpack/game/g_misc.o \ $(B)/missionpack/game/g_missile.o \ @@ -1227,7 +1238,6 @@ $(B)/missionpack/game/g_session.o \ $(B)/missionpack/game/g_spawn.o \ $(B)/missionpack/game/g_svcmds.o \ - $(B)/missionpack/game/g_syscalls.o \ $(B)/missionpack/game/g_target.o \ $(B)/missionpack/game/g_team.o \ $(B)/missionpack/game/g_trigger.o \ @@ -1237,74 +1247,84 @@ $(B)/missionpack/game/q_math.o \ $(B)/missionpack/game/q_shared.o +MPGOBJ = $(MPGOBJ_) $(B)/missionpack/game/g_syscalls.o +MPGVMOBJ = $(MPGOBJ_:%.o=%.asm) $(B)/missionpack/game/bg_lib.asm + $(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) : $(MPGOBJ) $(CC) $(SHLIBLDFLAGS) -o $@ $(MPGOBJ) +$(B)/missionpack/vm/qagame.qvm: $(MPGVMOBJ) $(GDIR)/g_syscalls.asm $(Q3ASM) + $(Q3ASM) -o $@ $(MPGVMOBJ) $(GDIR)/g_syscalls.asm + ############################################################################# ## BASEQ3 UI ############################################################################# -Q3UIOBJ = \ - $(B)/baseq3/game/bg_misc.o \ - $(B)/baseq3/ui/ui_addbots.o \ - $(B)/baseq3/ui/ui_atoms.o \ - $(B)/baseq3/ui/ui_cdkey.o \ - $(B)/baseq3/ui/ui_cinematics.o \ - $(B)/baseq3/ui/ui_confirm.o \ - $(B)/baseq3/ui/ui_connect.o \ - $(B)/baseq3/ui/ui_controls2.o \ - $(B)/baseq3/ui/ui_credits.o \ - $(B)/baseq3/ui/ui_demo2.o \ - $(B)/baseq3/ui/ui_display.o \ - $(B)/baseq3/ui/ui_gameinfo.o \ - $(B)/baseq3/ui/ui_ingame.o \ - $(B)/baseq3/ui/ui_loadconfig.o \ - $(B)/baseq3/ui/ui_main.o \ - $(B)/baseq3/ui/ui_menu.o \ - $(B)/baseq3/ui/ui_mfield.o \ - $(B)/baseq3/ui/ui_mods.o \ - $(B)/baseq3/ui/ui_network.o \ - $(B)/baseq3/ui/ui_options.o \ - $(B)/baseq3/ui/ui_playermodel.o \ - $(B)/baseq3/ui/ui_players.o \ - $(B)/baseq3/ui/ui_playersettings.o \ - $(B)/baseq3/ui/ui_preferences.o \ - $(B)/baseq3/ui/ui_qmenu.o \ - $(B)/baseq3/ui/ui_removebots.o \ - $(B)/baseq3/ui/ui_saveconfig.o \ - $(B)/baseq3/ui/ui_serverinfo.o \ - $(B)/baseq3/ui/ui_servers2.o \ - $(B)/baseq3/ui/ui_setup.o \ - $(B)/baseq3/ui/ui_sound.o \ - $(B)/baseq3/ui/ui_sparena.o \ - $(B)/baseq3/ui/ui_specifyserver.o \ - $(B)/baseq3/ui/ui_splevel.o \ - $(B)/baseq3/ui/ui_sppostgame.o \ - $(B)/baseq3/ui/ui_spskill.o \ - $(B)/baseq3/ui/ui_startserver.o \ - $(B)/missionpack/ui/ui_syscalls.o \ - $(B)/baseq3/ui/ui_team.o \ - $(B)/baseq3/ui/ui_teamorders.o \ - $(B)/baseq3/ui/ui_video.o \ - \ - $(B)/baseq3/game/q_math.o \ - $(B)/baseq3/game/q_shared.o +Q3UIOBJ_ = \ + $(B)/baseq3/ui/ui_main.o \ + $(B)/baseq3/game/bg_misc.o \ + $(B)/baseq3/ui/ui_addbots.o \ + $(B)/baseq3/ui/ui_atoms.o \ + $(B)/baseq3/ui/ui_cdkey.o \ + $(B)/baseq3/ui/ui_cinematics.o \ + $(B)/baseq3/ui/ui_confirm.o \ + $(B)/baseq3/ui/ui_connect.o \ + $(B)/baseq3/ui/ui_controls2.o \ + $(B)/baseq3/ui/ui_credits.o \ + $(B)/baseq3/ui/ui_demo2.o \ + $(B)/baseq3/ui/ui_display.o \ + $(B)/baseq3/ui/ui_gameinfo.o \ + $(B)/baseq3/ui/ui_ingame.o \ + $(B)/baseq3/ui/ui_loadconfig.o \ + $(B)/baseq3/ui/ui_menu.o \ + $(B)/baseq3/ui/ui_mfield.o \ + $(B)/baseq3/ui/ui_mods.o \ + $(B)/baseq3/ui/ui_network.o \ + $(B)/baseq3/ui/ui_options.o \ + $(B)/baseq3/ui/ui_playermodel.o \ + $(B)/baseq3/ui/ui_players.o \ + $(B)/baseq3/ui/ui_playersettings.o \ + $(B)/baseq3/ui/ui_preferences.o \ + $(B)/baseq3/ui/ui_qmenu.o \ + $(B)/baseq3/ui/ui_removebots.o \ + $(B)/baseq3/ui/ui_saveconfig.o \ + $(B)/baseq3/ui/ui_serverinfo.o \ + $(B)/baseq3/ui/ui_servers2.o \ + $(B)/baseq3/ui/ui_setup.o \ + $(B)/baseq3/ui/ui_sound.o \ + $(B)/baseq3/ui/ui_sparena.o \ + $(B)/baseq3/ui/ui_specifyserver.o \ + $(B)/baseq3/ui/ui_splevel.o \ + $(B)/baseq3/ui/ui_sppostgame.o \ + $(B)/baseq3/ui/ui_spskill.o \ + $(B)/baseq3/ui/ui_startserver.o \ + $(B)/baseq3/ui/ui_team.o \ + $(B)/baseq3/ui/ui_teamorders.o \ + $(B)/baseq3/ui/ui_video.o \ + \ + $(B)/baseq3/game/q_math.o \ + $(B)/baseq3/game/q_shared.o +Q3UIOBJ = $(Q3UIOBJ_) $(B)/missionpack/ui/ui_syscalls.o +Q3UIVMOBJ = $(Q3UIOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm + $(B)/baseq3/ui$(ARCH).$(SHLIBEXT) : $(Q3UIOBJ) $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3UIOBJ) +$(B)/baseq3/vm/ui.qvm: $(Q3UIVMOBJ) $(UIDIR)/ui_syscalls.asm $(Q3ASM) + $(Q3ASM) -o $@ $(Q3UIVMOBJ) $(UIDIR)/ui_syscalls.asm + ############################################################################# ## MISSIONPACK UI ############################################################################# -MPUIOBJ = \ +MPUIOBJ_ = \ + $(B)/missionpack/ui/ui_main.o \ $(B)/missionpack/ui/ui_atoms.o \ $(B)/missionpack/ui/ui_gameinfo.o \ - $(B)/missionpack/ui/ui_main.o \ $(B)/missionpack/ui/ui_players.o \ - $(B)/missionpack/ui/ui_syscalls.o \ $(B)/missionpack/ui/ui_util.o \ $(B)/missionpack/ui/ui_shared.o \ \ @@ -1313,11 +1333,17 @@ $(B)/missionpack/game/q_math.o \ $(B)/missionpack/game/q_shared.o +MPUIOBJ = $(MPUIOBJ_) $(B)/missionpack/ui/ui_syscalls.o +MPUIVMOBJ = $(MPUIOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm + $(B)/missionpack/ui$(ARCH).$(SHLIBEXT) : $(MPUIOBJ) $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(MPUIOBJ) +$(B)/missionpack/vm/ui.qvm: $(MPUIVMOBJ) $(UIDIR)/ui_syscalls.asm $(Q3ASM) + $(Q3ASM) -o $@ $(MPUIVMOBJ) $(UIDIR)/ui_syscalls.asm + ############################################################################# ## GAME MODULE RULES ############################################################################# @@ -1325,23 +1351,43 @@ $(B)/baseq3/cgame/%.o: $(CGDIR)/%.c $(DO_SHLIB_CC) +$(B)/baseq3/cgame/%.asm: $(CGDIR)/%.c $(Q3LCC) + $(DO_Q3LCC) + $(B)/missionpack/cgame/%.o: $(CGDIR)/%.c $(DO_SHLIB_CC) -DMISSIONPACK +$(B)/missionpack/cgame/%.asm: $(CGDIR)/%.c $(Q3LCC) + $(DO_Q3LCC) -DMISSIONPACK + + $(B)/baseq3/game/%.o: $(GDIR)/%.c $(DO_SHLIB_CC) +$(B)/baseq3/game/%.asm: $(GDIR)/%.c $(Q3LCC) + $(DO_Q3LCC) + $(B)/missionpack/game/%.o: $(GDIR)/%.c $(DO_SHLIB_CC) -DMISSIONPACK +$(B)/missionpack/game/%.asm: $(GDIR)/%.c $(Q3LCC) + $(DO_Q3LCC) -DMISSIONPACK + + $(B)/baseq3/ui/%.o: $(Q3UIDIR)/%.c $(DO_SHLIB_CC) +$(B)/baseq3/ui/%.asm: $(Q3UIDIR)/%.c $(Q3LCC) + $(DO_Q3LCC) + $(B)/missionpack/ui/%.o: $(UIDIR)/%.c $(DO_SHLIB_CC) -DMISSIONPACK +$(B)/missionpack/ui/%.asm: $(UIDIR)/%.c $(Q3LCC) + $(DO_Q3LCC) -DMISSIONPACK + ############################################################################# # MISC ############################################################################# @@ -1367,31 +1413,14 @@ install -s -m 0755 $(BR)/missionpack/ui$(ARCH).$(SHLIBEXT) \ $(COPYDIR)/missionpack/. -# TTimo: FIXME: doesn't clean the binary and .so - clean:clean-debug clean-release -clean2: clean-bins - rm -f $(Q3OBJ) $(Q3POBJ) $(Q3POBJ_SMP) $(Q3DOBJ) $(MPGOBJ) $(Q3GOBJ) $(Q3CGOBJ) $(MPCGOBJ) $(Q3UIOBJ) $(MPUIOBJ) - rm -f $(CGDIR)/vm/*.asm - rm -f $(GDIR)/vm/*.asm - rm -f $(UIDIR)/vm/*.asm - rm -f $(Q3UIDIR)/vm/*.asm - -# TTimo: linuxq3ded linuxquake3 linuxquake3-smp .. hardcoded the names .. maybe not such a good thing -# FIXME: also, removing the *.so is crappy .. I just want to avoid rm -rf debugi386-glibc to save the symlinks to pk3's for testing -clean-bins: - if [ -d $(B) ];then (find $(B) -name '*.so' -exec rm {} \;)fi - rm -f $(B)/linuxq3ded - rm -f $(B)/linuxquake3 - rm -f $(B)/linuxquake3-smp - rm -f $(B)/baseq3/vm/cgame.qvm - rm -f $(B)/baseq3/vm/ui.qvm - rm -f $(B)/baseq3/vm/qagame.qvm - rm -f $(B)/missionpack/vm/cgame.qvm - rm -f $(B)/missionpack/vm/qagame.qvm - rm -f $(B)/missionpack/vm/ui.qvm +clean2: if [ -d $(B) ];then (find $(B) -name '*.d' -exec rm {} \;)fi + rm -f $(Q3OBJ) $(Q3POBJ) $(Q3POBJ_SMP) $(Q3DOBJ) \ + $(MPGOBJ) $(Q3GOBJ) $(Q3CGOBJ) $(MPCGOBJ) $(Q3UIOBJ) $(MPUIOBJ) \ + $(MPGVMOBJ) $(Q3GVMOBJ) $(Q3CGVMOBJ) $(MPCGVMOBJ) $(Q3UIVMOBJ) $(MPUIVMOBJ) + rm -f $(TARGETS) clean-debug: $(MAKE) clean2 B=$(BD) CFLAGS="$(DEBUG_CFLAGS)" @@ -1399,6 +1428,10 @@ clean-release: $(MAKE) clean2 B=$(BR) CFLAGS="$(DEBUG_CFLAGS)" +distclean: clean + $(MAKE) -C ../tools/asm clean uninstall + $(MAKE) -C ../tools/lcc clean uninstall + ############################################################################# # DEPENDENCIES ############################################################################# Deleted: trunk/code/unix/Makefile.Game =================================================================== --- trunk/code/unix/Makefile.Game 2005-10-04 19:15:34 UTC (rev 137) +++ trunk/code/unix/Makefile.Game 2005-10-04 23:54:51 UTC (rev 138) @@ -1,285 +0,0 @@ -# -# Quake3 Unix Game Makefile -# -# GNU Make required -# - -### -### These paths are where you probably want to change things -### - -#The main Quake3 directory -BDIR=.. - -#This is the game dir -GAMEDIR=baseq3 - -#Where the source is, assumed to be same directory as this Makefile -SRCDIR=. - -#Location of binaries -BINDIR=../bin -LCC=$(BINDIR)/lcc # -lccdir=$(BINDIR)/ -Q3ASM=$(BINDIR)/q3asm - - -############################################################################# -## -## You shouldn't have to touch anything below here -## -############################################################################# - -GDIR=$(SRCDIR)/game -CGDIR=$(SRCDIR)/cgame -UIDIR=$(SRCDIR)/ui - -LCCFLAGS=-DQ3_VM -S -Wf-target=bytecode -Wf-g -I..\cgame -I..\game -I..\ui - -DO_LCC=$(LCC) $(LCCFLAGS) -o $@ -c $< - -TARGETS=\ - $(BDIR)/$(GAMEDIR)/vm/cgame.qvm \ - $(BDIR)/$(GAMEDIR)/vm/qagame.qvm \ - $(BDIR)/$(GAMEDIR)/vm/ui.qvm - -default: makedir $(TARGETS) - -makedir: - @-mkdir $(GDIR)/vm - @-mkdir $(CGDIR)/vm - @-mkdir $(UIDIR)/vm - -############################################################################# -# GAME VM -############################################################################# - -##NOTE: g_main must be first. Control passes to first function in the vm - -GVMASM = \ - $(GDIR)/vm/g_main.asm \ - $(GDIR)/vm/bg_misc.asm \ - $(GDIR)/vm/bg_lib.asm \ - $(GDIR)/vm/bg_pmove.asm \ - $(GDIR)/vm/bg_slidemove.asm \ - $(GDIR)/vm/q_math.asm \ - $(GDIR)/vm/q_shared.asm \ - $(GDIR)/vm/ai_dmnet.asm \ - $(GDIR)/vm/ai_dmq3.asm \ - $(GDIR)/vm/ai_team.asm \ - $(GDIR)/vm/ai_main.asm \ - $(GDIR)/vm/ai_chat.asm \ - $(GDIR)/vm/ai_cmd.asm \ - $(GDIR)/vm/g_active.asm \ - $(GDIR)/vm/g_arenas.asm \ - $(GDIR)/vm/g_bot.asm \ - $(GDIR)/vm/g_client.asm \ - $(GDIR)/vm/g_cmds.asm \ - $(GDIR)/vm/g_combat.asm \ - $(GDIR)/vm/g_items.asm \ - $(GDIR)/vm/g_mem.asm \ - $(GDIR)/vm/g_misc.asm \ - $(GDIR)/vm/g_missile.asm \ - $(GDIR)/vm/g_mover.asm \ - $(GDIR)/vm/g_session.asm \ - $(GDIR)/vm/g_spawn.asm \ - $(GDIR)/vm/g_svcmds.asm \ - $(GDIR)/vm/g_target.asm \ - $(GDIR)/vm/g_team.asm \ - $(GDIR)/vm/g_trigger.asm \ - $(GDIR)/vm/g_utils.asm \ - $(GDIR)/vm/g_weapon.asm - -$(BDIR)/$(GAMEDIR)/vm/qagame.qvm : $(GVMASM) - $(Q3ASM) -o $@ $(GVMASM) $(SRCDIR)/game/g_syscalls.asm - -$(GDIR)/vm/ai_chat.asm : $(GDIR)/ai_chat.c; $(DO_LCC) -$(GDIR)/vm/ai_cmd.asm : $(GDIR)/ai_cmd.c; $(DO_LCC) -$(GDIR)/vm/ai_dmnet.asm : $(GDIR)/ai_dmnet.c; $(DO_LCC) -$(GDIR)/vm/ai_dmq3.asm : $(GDIR)/ai_dmq3.c; $(DO_LCC) -$(GDIR)/vm/ai_main.asm : $(GDIR)/ai_main.c; $(DO_LCC) -$(GDIR)/vm/ai_team.asm : $(GDIR)/ai_team.c; $(DO_LCC) -$(GDIR)/vm/bg_lib.asm : $(GDIR)/bg_lib.c; $(DO_LCC) -$(GDIR)/vm/bg_misc.asm : $(GDIR)/bg_misc.c; $(DO_LCC) -$(GDIR)/vm/bg_pmove.asm : $(GDIR)/bg_pmove.c; $(DO_LCC) -$(GDIR)/vm/bg_slidemove.asm : $(GDIR)/bg_slidemove.c; $(DO_LCC) -$(GDIR)/vm/g_active.asm : $(GDIR)/g_active.c; $(DO_LCC) -$(GDIR)/vm/g_arenas.asm : $(GDIR)/g_arenas.c; $(DO_LCC) -$(GDIR)/vm/g_bot.asm : $(GDIR)/g_bot.c; $(DO_LCC) -$(GDIR)/vm/g_client.asm : $(GDIR)/g_client.c; $(DO_LCC) -$(GDIR)/vm/g_cmds.asm : $(GDIR)/g_cmds.c; $(DO_LCC) -$(GDIR)/vm/g_combat.asm : $(GDIR)/g_combat.c; $(DO_LCC) -$(GDIR)/vm/g_items.asm : $(GDIR)/g_items.c; $(DO_LCC) -$(GDIR)/vm/g_main.asm : $(GDIR)/g_main.c; $(DO_LCC) -$(GDIR)/vm/g_mem.asm : $(GDIR)/g_mem.c; $(DO_LCC) -$(GDIR)/vm/g_misc.asm : $(GDIR)/g_misc.c; $(DO_LCC) -$(GDIR)/vm/g_missile.asm : $(GDIR)/g_missile.c; $(DO_LCC) -$(GDIR)/vm/g_mover.asm : $(GDIR)/g_mover.c; $(DO_LCC) -$(GDIR)/vm/g_session.asm : $(GDIR)/g_session.c; $(DO_LCC) -$(GDIR)/vm/g_spawn.asm : $(GDIR)/g_spawn.c; $(DO_LCC) -$(GDIR)/vm/g_svcmds.asm : $(GDIR)/g_svcmds.c; $(DO_LCC) -$(GDIR)/vm/g_target.asm : $(GDIR)/g_target.c; $(DO_LCC) -$(GDIR)/vm/g_team.asm : $(GDIR)/g_team.c; $(DO_LCC) -$(GDIR)/vm/g_trigger.asm : $(GDIR)/g_trigger.c; $(DO_LCC) -$(GDIR)/vm/g_utils.asm : $(GDIR)/g_utils.c; $(DO_LCC) -$(GDIR)/vm/g_weapon.asm : $(GDIR)/g_weapon.c; $(DO_LCC) -$(GDIR)/vm/q_math.asm : $(GDIR)/q_math.c; $(DO_LCC) -$(GDIR)/vm/q_shared.asm : $(GDIR)/q_shared.c; $(DO_LCC) - -$(BDIR)/$(GAMEDIR)/vm/cgame.qvm : - echo cgame.qvm disabled - -$(BDIR)/$(GAMEDIR)/vm/ui.qvm : - echo ui.qvm disabled - -############################################################################# -# CGAME -############################################################################# - -CGOBJ = \ - $(SRCDIR)/cgame/bg_lib.o \ - $(SRCDIR)/cgame/bg_misc.o \ - $(SRCDIR)/cgame/bg_pmove.o \ - $(SRCDIR)/cgame/bg_slidemove.o \ - $(SRCDIR)/cgame/cg_consolecmds.o \ - $(SRCDIR)/cgame/cg_draw.o \ - $(SRCDIR)/cgame/cg_drawtools.o \ - $(SRCDIR)/cgame/cg_effects.o \ - $(SRCDIR)/cgame/cg_ents.o \ - $(SRCDIR)/cgame/cg_event.o \ - $(SRCDIR)/cgame/cg_info.o \ - $(SRCDIR)/cgame/cg_localents.o \ - $(SRCDIR)/cgame/cg_main.o \ - $(SRCDIR)/cgame/cg_marks.o \ - $(SRCDIR)/cgame/cg_players.o \ - $(SRCDIR)/cgame/cg_playerstate.o \ - $(SRCDIR)/cgame/cg_predict.o \ - $(SRCDIR)/cgame/cg_scoreboard.o \ - $(SRCDIR)/cgame/cg_servercmds.o \ - $(SRCDIR)/cgame/cg_snapshot.o \ - $(SRCDIR)/cgame/cg_view.o \ - $(SRCDIR)/cgame/cg_weapons.o \ - $(SRCDIR)/cgame/q_math.o \ - $(SRCDIR)/cgame/q_shared.o - -$(SRCDIR)/cgame$(ARCH).$(SHLIBEXT) : $(CGOBJ) - $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(CGOBJ) - -$(SRCDIR)/cgame/bg_lib.o : $(GDIR)/bg_lib.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/bg_pmove.o : $(GDIR)/bg_pmove.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/bg_slidemove.o : $(GDIR)/bg_slidemove.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_consolecmds.o : $(CGDIR)/cg_consolecmds.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_draw.o : $(CGDIR)/cg_draw.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_drawtools.o : $(CGDIR)/cg_drawtools.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_effects.o : $(CGDIR)/cg_effects.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_ents.o : $(CGDIR)/cg_ents.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_event.o : $(CGDIR)/cg_event.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_info.o : $(CGDIR)/cg_info.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_localents.o : $(CGDIR)/cg_localents.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_main.o : $(CGDIR)/cg_main.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_marks.o : $(CGDIR)/cg_marks.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_players.o : $(CGDIR)/cg_players.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_playerstate.o : $(CGDIR)/cg_playerstate.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_predict.o : $(CGDIR)/cg_predict.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_scoreboard.o : $(CGDIR)/cg_scoreboard.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_servercmds.o : $(CGDIR)/cg_servercmds.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_snapshot.o : $(CGDIR)/cg_snapshot.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_view.o : $(CGDIR)/cg_view.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/cg_weapons.o : $(CGDIR)/cg_weapons.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC) -$(SRCDIR)/cgame/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC) - -############################################################################# -# UI -############################################################################# - -UIOBJ = \ - $(SRCDIR)/ui/bg_lib.o \ - $(SRCDIR)/ui/bg_misc.o \ - $(SRCDIR)/ui/ui_addbots.o \ - $(SRCDIR)/ui/ui_atoms.o \ - $(SRCDIR)/ui/ui_cinematics.o \ - $(SRCDIR)/ui/ui_confirm.o \ - $(SRCDIR)/ui/ui_connect.o \ - $(SRCDIR)/ui/ui_controls2.o \ - $(SRCDIR)/ui/ui_credits.o \ - $(SRCDIR)/ui/ui_demo2.o \ - $(SRCDIR)/ui/ui_display.o \ - $(SRCDIR)/ui/ui_gameinfo.o \ - $(SRCDIR)/ui/ui_ingame.o \ - $(SRCDIR)/ui/ui_loadconfig.o \ - $(SRCDIR)/ui/ui_main.o \ - $(SRCDIR)/ui/ui_menu.o \ - $(SRCDIR)/ui/ui_mfield.o \ - $(SRCDIR)/ui/ui_network.o \ - $(SRCDIR)/ui/ui_playermodel.o \ - $(SRCDIR)/ui/ui_players.o \ - $(SRCDIR)/ui/ui_playersettings.o \ - $(SRCDIR)/ui/ui_preferences.o \ - $(SRCDIR)/ui/ui_qmenu.o \ - $(SRCDIR)/ui/ui_saveconfig.o \ - $(SRCDIR)/ui/ui_serverinfo.o \ - $(SRCDIR)/ui/ui_servers2.o \ - $(SRCDIR)/ui/ui_setup.o \ - $(SRCDIR)/ui/ui_sound.o \ - $(SRCDIR)/ui/ui_sparena.o \ - $(SRCDIR)/ui/ui_specifyserver.o \ - $(SRCDIR)/ui/ui_splevel.o \ - $(SRCDIR)/ui/ui_sppostgame.o \ - $(SRCDIR)/ui/ui_spskill.o \ - $(SRCDIR)/ui/ui_startserver.o \ - $(SRCDIR)/ui/ui_team.o \ - $(SRCDIR)/ui/ui_video.o \ - \ - $(SRCDIR)/ui/q_math.o \ - $(SRCDIR)/ui/q_shared.o - -$(SRCDIR)/ui$(ARCH).$(SHLIBEXT) : $(UIOBJ) - $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(UIOBJ) - -$(SRCDIR)/ui/bg_lib.o : $(GDIR)/bg_lib.c; $(DO_CC) -$(SRCDIR)/ui/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_CC) -$(SRCDIR)/ui/ui_addbots.o : $(UIDIR)/ui_addbots.c; $(DO_CC) -$(SRCDIR)/ui/ui_atoms.o : $(UIDIR)/ui_atoms.c; $(DO_CC) -$(SRCDIR)/ui/ui_cinematics.o : $(UIDIR)/ui_cinematics.c; $(DO_CC) -$(SRCDIR)/ui/ui_confirm.o : $(UIDIR)/ui_confirm.c; $(DO_CC) -$(SRCDIR)/ui/ui_connect.o : $(UIDIR)/ui_connect.c; $(DO_CC) -$(SRCDIR)/ui/ui_controls2.o : $(UIDIR)/ui_controls2.c; $(DO_CC) -$(SRCDIR)/ui/ui_credits.o : $(UIDIR)/ui_credits.c; $(DO_CC) -$(SRCDIR)/ui/ui_demo2.o : $(UIDIR)/ui_demo2.c; $(DO_CC) -$(SRCDIR)/ui/ui_display.o : $(UIDIR)/ui_display.c; $(DO_CC) -$(SRCDIR)/ui/ui_gameinfo.o : $(UIDIR)/ui_gameinfo.c; $(DO_CC) -$(SRCDIR)/ui/ui_ingame.o : $(UIDIR)/ui_ingame.c; $(DO_CC) -$(SRCDIR)/ui/ui_loadconfig.o : $(UIDIR)/ui_loadconfig.c; $(DO_CC) -$(SRCDIR)/ui/ui_main.o : $(UIDIR)/ui_main.c; $(DO_CC) -$(SRCDIR)/ui/ui_menu.o : $(UIDIR)/ui_menu.c; $(DO_CC) -$(SRCDIR)/ui/ui_mfield.o : $(UIDIR)/ui_mfield.c; $(DO_CC) -$(SRCDIR)/ui/ui_network.o : $(UIDIR)/ui_network.c; $(DO_CC) -$(SRCDIR)/ui/ui_playermodel.o : $(UIDIR)/ui_playermodel.c; $(DO_CC) -$(SRCDIR)/ui/ui_players.o : $(UIDIR)/ui_players.c; $(DO_CC) -$(SRCDIR)/ui/ui_playersettings.o : $(UIDIR)/ui_playersettings.c; $(DO_CC) -$(SRCDIR)/ui/ui_preferences.o : $(UIDIR)/ui_preferences.c; $(DO_CC) -$(SRCDIR)/ui/ui_qmenu.o : $(UIDIR)/ui_qmenu.c; $(DO_CC) -$(SRCDIR)/ui/ui_quit.o : $(UIDIR)/ui_quit.c; $(DO_CC) -$(SRCDIR)/ui/ui_saveconfig.o : $(UIDIR)/ui_saveconfig.c; $(DO_CC) -$(SRCDIR)/ui/ui_serverinfo.o : $(UIDIR)/ui_serverinfo.c; $(DO_CC) -$(SRCDIR)/ui/ui_servers2.o : $(UIDIR)/ui_servers2.c; $(DO_CC) -$(SRCDIR)/ui/ui_setup.o : $(UIDIR)/ui_setup.c; $(DO_CC) -$(SRCDIR)/ui/ui_sound.o : $(UIDIR)/ui_sound.c; $(DO_CC) -$(SRCDIR)/ui/ui_sparena.o : $(UIDIR)/ui_sparena.c; $(DO_CC) -$(SRCDIR)/ui/ui_specifyserver.o : $(UIDIR)/ui_specifyserver.c; $(DO_CC) -$(SRCDIR)/ui/ui_splevel.o : $(UIDIR)/ui_splevel.c; $(DO_CC) -$(SRCDIR)/ui/ui_sppostgame.o : $(UIDIR)/ui_sppostgame.c; $(DO_CC) -$(SRCDIR)/ui/ui_spskill.o : $(UIDIR)/ui_spskill.c; $(DO_CC) -$(SRCDIR)/ui/ui_startserver.o : $(UIDIR)/ui_startserver.c; $(DO_CC) -$(SRCDIR)/ui/ui_team.o : $(UIDIR)/ui_team.c; $(DO_CC) -$(SRCDIR)/ui/ui_video.o : $(UIDIR)/ui_video.c; $(DO_CC) -$(SRCDIR)/ui/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC) -$(SRCDIR)/ui/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC) - -############################################################################# -# MISC -############################################################################# - -clean: - rm -f $(GVMASM) From DONOTREPLY at icculus.org Tue Oct 4 23:13:21 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 4 Oct 2005 23:13:21 -0400 Subject: r139 - in trunk/code: tools/asm tools/lcc tools/lcc/etc unix Message-ID: <20051005031321.2414.qmail@icculus.org> Author: tma Date: 2005-10-04 23:13:20 -0400 (Tue, 04 Oct 2005) New Revision: 139 Modified: trunk/code/tools/asm/q3asm.c trunk/code/tools/lcc/etc/lcc.c trunk/code/tools/lcc/etc/linux.c trunk/code/tools/lcc/makefile trunk/code/unix/Makefile Log: * Fixes to the MinGW vm compiler * General MinGW tweaks Modified: trunk/code/tools/asm/q3asm.c =================================================================== --- trunk/code/tools/asm/q3asm.c 2005-10-04 23:54:51 UTC (rev 138) +++ trunk/code/tools/asm/q3asm.c 2005-10-05 03:13:20 UTC (rev 139) @@ -925,6 +925,7 @@ currentFileName = asmFileNames[ i ]; currentFileLine = 0; printf("pass %i: %s\n", passNumber, currentFileName ); + fflush( NULL ); ptr = asmFiles[i]; while ( ptr ) { ptr = ExtractLine( ptr ); Modified: trunk/code/tools/lcc/etc/lcc.c =================================================================== --- trunk/code/tools/lcc/etc/lcc.c 2005-10-04 23:54:51 UTC (rev 138) +++ trunk/code/tools/lcc/etc/lcc.c 2005-10-05 03:13:20 UTC (rev 139) @@ -74,6 +74,31 @@ int main(int argc, char *argv[]) { int i, j, nf; +#ifdef _WIN32 + // Tim Angus 05/09/05 + // Append the base path of this file to the PATH + // There are probably (much) cleaner ways of doing this, but + // IANAWD (Windows Developer) + { + char basepath[ 1024 ]; + char path[ 4096 ]; + char *p; + + strncpy( basepath, argv[ 0 ], 1024 ); + p = strrchr( basepath, '\\' ); + + if( p ) + { + *p = '\0'; + strncpy( path, "PATH=", 4096 ); + strncat( path, getenv( "PATH" ), 4096 ); + strncat( path, ";", 4096 ); + strncat( path, basepath, 4096 ); + _putenv( path ); + } + } +#endif + progname = argv[0]; ac = argc + 50; av = alloc(ac*sizeof(char *)); Modified: trunk/code/tools/lcc/etc/linux.c =================================================================== --- trunk/code/tools/lcc/etc/linux.c 2005-10-04 23:54:51 UTC (rev 138) +++ trunk/code/tools/lcc/etc/linux.c 2005-10-05 03:13:20 UTC (rev 139) @@ -14,17 +14,23 @@ //#define LCCDIR "/usr/local/lib/lcc/" #endif +#ifdef _WIN32 +#define BINEXT ".exe" +#else +#define BINEXT "" +#endif + char *suffixes[] = { ".c", ".i", ".asm", ".o", ".out", 0 }; char inputs[256] = ""; // TTimo experimental: do not compile with the __linux__ define, we are doing bytecode! -char *cpp[] = { LCCDIR "q3cpp", +char *cpp[] = { LCCDIR "q3cpp" BINEXT, "-U__GNUC__", "-D_POSIX_SOURCE", "-D__STDC__=1", "-D__STRICT_ANSI__", "-Dunix", "-Di386", "-Dlinux", "-D__unix__", "-D__i386__", "-D__signed__=signed", "$1", "$2", "$3", 0 }; char *include[] = {"-I" LCCDIR "include", "-I" LCCDIR "gcc/include", "-I/usr/include", "-I" SYSTEM "include", 0 }; -char *com[] = {LCCDIR "q3rcc", "-target=bytecode", "$1", "$2", "$3", 0 }; +char *com[] = {LCCDIR "q3rcc" BINEXT, "-target=bytecode", "$1", "$2", "$3", 0 }; char *as[] = { "/usr/bin/as", "-o", "$3", "$1", "$2", 0 }; // NOTE TTimo I don't think we have any use with the native linkage // our target is always bytecode.. Modified: trunk/code/tools/lcc/makefile =================================================================== --- trunk/code/tools/lcc/makefile 2005-10-04 23:54:51 UTC (rev 138) +++ trunk/code/tools/lcc/makefile 2005-10-05 03:13:20 UTC (rev 139) @@ -1,10 +1,10 @@ # $Id: makefile 145 2001-10-17 21:53:10Z timo $ +PLATFORM=$(shell uname|sed -e s/_.*//|tr A-Z a-z) HOSTFILE=etc/linux.c TEMPDIR=/tmp A=.a O=.o -PLATFORM=$(shell uname|sed -e s/_.*//|tr A-Z a-z) ifeq ($(PLATFORM),mingw32) E=.exe else @@ -43,80 +43,80 @@ bprint: makedirs $(BD)bprint$(E) liblcc: makedirs $(BD)liblcc$(A) -RCCOBJS=$(BD)alloc$O \ - $(BD)bind$O \ - $(BD)dag$O \ - $(BD)dagcheck$O \ - $(BD)decl$O \ - $(BD)enode$O \ - $(BD)error$O \ - $(BD)expr$O \ - $(BD)event$O \ - $(BD)init$O \ - $(BD)inits$O \ - $(BD)input$O \ - $(BD)lex$O \ - $(BD)list$O \ - $(BD)main$O \ - $(BD)output$O \ - $(BD)prof$O \ - $(BD)profio$O \ - $(BD)simp$O \ - $(BD)stmt$O \ - $(BD)string$O \ - $(BD)sym$O \ - $(BD)trace$O \ - $(BD)tree$O \ - $(BD)types$O \ - $(BD)null$O \ - $(BD)symbolic$O \ - $(BD)gen$O \ - $(BD)bytecode$O +RCCOBJS=$(BD)alloc$(O) \ + $(BD)bind$(O) \ + $(BD)dag$(O) \ + $(BD)dagcheck$(O) \ + $(BD)decl$(O) \ + $(BD)enode$(O) \ + $(BD)error$(O) \ + $(BD)expr$(O) \ + $(BD)event$(O) \ + $(BD)init$(O) \ + $(BD)inits$(O) \ + $(BD)input$(O) \ + $(BD)lex$(O) \ + $(BD)list$(O) \ + $(BD)main$(O) \ + $(BD)output$(O) \ + $(BD)prof$(O) \ + $(BD)profio$(O) \ + $(BD)simp$(O) \ + $(BD)stmt$(O) \ + $(BD)string$(O) \ + $(BD)sym$(O) \ + $(BD)trace$(O) \ + $(BD)tree$(O) \ + $(BD)types$(O) \ + $(BD)null$(O) \ + $(BD)symbolic$(O) \ + $(BD)gen$(O) \ + $(BD)bytecode$(O) -$(BD)q3rcc$(E):: $(BD)main$O $(BD)librcc$(A) $(EXTRAOBJS) - $(LD) $(LDFLAGS) -o $@ $(BD)main$O $(EXTRAOBJS) $(BD)librcc$(A) $(EXTRALIBS) +$(BD)q3rcc$(E):: $(BD)main$(O) $(BD)librcc$(A) $(EXTRAOBJS) + $(LD) $(LDFLAGS) -o $@ $(BD)main$(O) $(EXTRAOBJS) $(BD)librcc$(A) $(EXTRALIBS) $(BD)librcc$(A): $(RCCOBJS) $(AR) $@ $(RCCOBJS); $(RANLIB) $@ || true $(RCCOBJS): src/c.h src/token.h src/config.h -$(BD)alloc$O: src/alloc.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/alloc.c -$(BD)bind$O: src/bind.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/bind.c -$(BD)dag$O: src/dag.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/dag.c -$(BD)decl$O: src/decl.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/decl.c -$(BD)enode$O: src/enode.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/enode.c -$(BD)error$O: src/error.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/error.c -$(BD)event$O: src/event.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/event.c -$(BD)expr$O: src/expr.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/expr.c -$(BD)gen$O: src/gen.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/gen.c -$(BD)init$O: src/init.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/init.c -$(BD)inits$O: src/inits.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/inits.c -$(BD)input$O: src/input.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/input.c -$(BD)lex$O: src/lex.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/lex.c -$(BD)list$O: src/list.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/list.c -$(BD)main$O: src/main.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/main.c -$(BD)null$O: src/null.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/null.c -$(BD)output$O: src/output.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/output.c -$(BD)prof$O: src/prof.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/prof.c -$(BD)profio$O: src/profio.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/profio.c -$(BD)simp$O: src/simp.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/simp.c -$(BD)stmt$O: src/stmt.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/stmt.c -$(BD)string$O: src/string.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/string.c -$(BD)sym$O: src/sym.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/sym.c -$(BD)symbolic$O: src/symbolic.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/symbolic.c -$(BD)bytecode$O: src/bytecode.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/bytecode.c -$(BD)trace$O: src/trace.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/trace.c -$(BD)tree$O: src/tree.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/tree.c -$(BD)types$O: src/types.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/types.c -$(BD)stab$O: src/stab.c src/stab.h; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/stab.c +$(BD)alloc$(O): src/alloc.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/alloc.c +$(BD)bind$(O): src/bind.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/bind.c +$(BD)dag$(O): src/dag.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/dag.c +$(BD)decl$(O): src/decl.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/decl.c +$(BD)enode$(O): src/enode.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/enode.c +$(BD)error$(O): src/error.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/error.c +$(BD)event$(O): src/event.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/event.c +$(BD)expr$(O): src/expr.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/expr.c +$(BD)gen$(O): src/gen.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/gen.c +$(BD)init$(O): src/init.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/init.c +$(BD)inits$(O): src/inits.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/inits.c +$(BD)input$(O): src/input.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/input.c +$(BD)lex$(O): src/lex.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/lex.c +$(BD)list$(O): src/list.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/list.c +$(BD)main$(O): src/main.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/main.c +$(BD)null$(O): src/null.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/null.c +$(BD)output$(O): src/output.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/output.c +$(BD)prof$(O): src/prof.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/prof.c +$(BD)profio$(O): src/profio.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/profio.c +$(BD)simp$(O): src/simp.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/simp.c +$(BD)stmt$(O): src/stmt.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/stmt.c +$(BD)string$(O): src/string.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/string.c +$(BD)sym$(O): src/sym.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/sym.c +$(BD)symbolic$(O): src/symbolic.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/symbolic.c +$(BD)bytecode$(O): src/bytecode.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/bytecode.c +$(BD)trace$(O): src/trace.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/trace.c +$(BD)tree$(O): src/tree.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/tree.c +$(BD)types$(O): src/types.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/types.c +$(BD)stab$(O): src/stab.c src/stab.h; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ src/stab.c -$(BD)dagcheck$O: $(BD)dagcheck.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)dagcheck.c -$(BD)alpha$O: $(BD)alpha.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)alpha.c -$(BD)mips$O: $(BD)mips.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)mips.c -$(BD)sparc$O: $(BD)sparc.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)sparc.c -$(BD)x86$O: $(BD)x86.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)x86.c -$(BD)x86linux$O: $(BD)x86linux.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)x86linux.c +$(BD)dagcheck$(O): $(BD)dagcheck.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)dagcheck.c +$(BD)alpha$(O): $(BD)alpha.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)alpha.c +$(BD)mips$(O): $(BD)mips.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)mips.c +$(BD)sparc$(O): $(BD)sparc.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)sparc.c +$(BD)x86$(O): $(BD)x86.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)x86.c +$(BD)x86linux$(O): $(BD)x86linux.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $(BD)x86linux.c $(BD)dagcheck.c: $(BD)lburg$(E) src/dagcheck.md; $(BD)lburg src/dagcheck.md $@ $(BD)alpha.c: $(BD)lburg$(E) src/alpha.md; $(BD)lburg src/alpha.md $@ @@ -126,58 +126,58 @@ $(BD)x86linux.c: $(BD)lburg$(E) src/x86linux.md; $(BD)lburg src/x86linux.md $@ $(BD)q3rcc.h: src/rcc.asdl; $(ASDL_HOME)/bin/asdlGen --c -d $(BD) src/rcc.asdl -$(BD)q3rcc$O: $(BD)rcc.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ $(BD)rcc.c -$(BD)asdl$O: src/asdl.c $(BD)rcc.h src/c.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ src/asdl.c -$(BD)pass2$O: src/pass2.c $(BD)rcc.h src/c.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ src/pass2.c -$(BD)2html$O: src/2html.c $(BD)rcc.h src/c.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ src/2html.c +$(BD)q3rcc$(O): $(BD)rcc.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ $(BD)rcc.c +$(BD)asdl$(O): src/asdl.c $(BD)rcc.h src/c.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ src/asdl.c +$(BD)pass2$(O): src/pass2.c $(BD)rcc.h src/c.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ src/pass2.c +$(BD)2html$(O): src/2html.c $(BD)rcc.h src/c.h; $(CC) $(LCC_CFLAGS) -c -Isrc -I$(BD) -I$(ASDL_HOME)/include/asdlGen -o $@ src/2html.c -$(BD)pass2$(E): $(BD)pass2$O $(EXTRAOBJS) $(BD)librcc$(A); $(LD) $(LDFLAGS) -o $@ $(BD)pass2$O $(EXTRAOBJS) $(BD)librcc$(A) $(EXTRALIBS) -$(BD)2html$(E): $(BD)2html$O $(BD)q3rcc$O; $(LD) $(LDFLAGS) -o $@ $(BD)2html$O $(BD)q3rcc$O $(EXTRALIBS) +$(BD)pass2$(E): $(BD)pass2$(O) $(EXTRAOBJS) $(BD)librcc$(A); $(LD) $(LDFLAGS) -o $@ $(BD)pass2$(O) $(EXTRAOBJS) $(BD)librcc$(A) $(EXTRALIBS) +$(BD)2html$(E): $(BD)2html$(O) $(BD)q3rcc$(O); $(LD) $(LDFLAGS) -o $@ $(BD)2html$(O) $(BD)q3rcc$(O) $(EXTRALIBS) -$(BD)bprint$(E): $(BD)bprint$O; $(LD) $(LDFLAGS) -o $@ $(BD)bprint$O +$(BD)bprint$(E): $(BD)bprint$(O); $(LD) $(LDFLAGS) -o $@ $(BD)bprint$(O) -$(BD)bprint$O: etc/bprint.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ etc/bprint.c +$(BD)bprint$(O): etc/bprint.c; $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ etc/bprint.c -$(BD)q3lcc$(E): $(BD)q3lcc$O $(BD)host$O; $(LD) $(LDFLAGS) -o $@ $(BD)q3lcc$O $(BD)host$O +$(BD)q3lcc$(E): $(BD)q3lcc$(O) $(BD)host$(O); $(LD) $(LDFLAGS) -o $@ $(BD)q3lcc$(O) $(BD)host$(O) SYSTEM=$(shell cc -print-search-dirs | head -n 1 | cut -b 10-) -$(BD)q3lcc$O: etc/lcc.c; $(CC) $(LCC_CFLAGS) -c -DTEMPDIR=\"$(TEMPDIR)\" -o $@ etc/lcc.c -$(BD)host$O: $(HOSTFILE); $(CC) $(LCC_CFLAGS) -c -DSYSTEM=\"$(SYSTEM)\" -o $@ $(HOSTFILE) +$(BD)q3lcc$(O): etc/lcc.c; $(CC) $(LCC_CFLAGS) -c -DTEMPDIR=\"$(TEMPDIR)\" -o $@ etc/lcc.c +$(BD)host$(O): $(HOSTFILE); $(CC) $(LCC_CFLAGS) -c -DSYSTEM=\"$(SYSTEM)\" -o $@ $(HOSTFILE) -LIBOBJS=$(BD)assert$O $(BD)bbexit$O $(BD)yynull$O +LIBOBJS=$(BD)assert$(O) $(BD)bbexit$(O) $(BD)yynull$(O) -$(BD)liblcc$(A): $(LIBOBJS); $(AR) $@ $(BD)assert$O $(BD)bbexit$O $(BD)yynull$O; $(RANLIB) $@ || true +$(BD)liblcc$(A): $(LIBOBJS); $(AR) $@ $(BD)assert$(O) $(BD)bbexit$(O) $(BD)yynull$(O); $(RANLIB) $@ || true -$(BD)assert$O: lib/assert.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/assert.c -$(BD)yynull$O: lib/yynull.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/yynull.c -$(BD)bbexit$O: lib/bbexit.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/bbexit.c +$(BD)assert$(O): lib/assert.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/assert.c +$(BD)yynull$(O): lib/yynull.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/yynull.c +$(BD)bbexit$(O): lib/bbexit.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/bbexit.c -$(BD)lburg$(E): $(BD)lburg$O $(BD)gram$O; $(LD) $(LDFLAGS) -o $@ $(BD)lburg$O $(BD)gram$O +$(BD)lburg$(E): $(BD)lburg$(O) $(BD)gram$(O); $(LD) $(LDFLAGS) -o $@ $(BD)lburg$(O) $(BD)gram$(O) -$(BD)lburg$O $(BD)gram$O: lburg/lburg.h +$(BD)lburg$(O) $(BD)gram$(O): lburg/lburg.h -$(BD)lburg$O: lburg/lburg.c; $(CC) $(LCC_CFLAGS) -c -Ilburg -o $@ lburg/lburg.c -$(BD)gram$O: lburg/gram.c; $(CC) $(LCC_CFLAGS) -c -Ilburg -o $@ lburg/gram.c +$(BD)lburg$(O): lburg/lburg.c; $(CC) $(LCC_CFLAGS) -c -Ilburg -o $@ lburg/lburg.c +$(BD)gram$(O): lburg/gram.c; $(CC) $(LCC_CFLAGS) -c -Ilburg -o $@ lburg/gram.c -CPPOBJS=$(BD)q3cpp$O $(BD)lexer$O $(BD)nlist$O $(BD)tokens$O $(BD)macro$O $(BD)eval$O \ - $(BD)include$O $(BD)hideset$O $(BD)getopt$O $(BD)unix$O +CPPOBJS=$(BD)q3cpp$(O) $(BD)lexer$(O) $(BD)nlist$(O) $(BD)tokens$(O) $(BD)macro$(O) $(BD)eval$(O) \ + $(BD)include$(O) $(BD)hideset$(O) $(BD)getopt$(O) $(BD)unix$(O) $(BD)q3cpp$(E): $(CPPOBJS) $(LD) $(LDFLAGS) -o $@ $(CPPOBJS) $(CPPOBJS): cpp/cpp.h -$(BD)q3cpp$O: cpp/cpp.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/cpp.c -$(BD)lexer$O: cpp/lex.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/lex.c -$(BD)nlist$O: cpp/nlist.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/nlist.c -$(BD)tokens$O: cpp/tokens.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/tokens.c -$(BD)macro$O: cpp/macro.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/macro.c -$(BD)eval$O: cpp/eval.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/eval.c -$(BD)include$O: cpp/include.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/include.c -$(BD)hideset$O: cpp/hideset.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/hideset.c -$(BD)getopt$O: cpp/getopt.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/getopt.c -$(BD)unix$O: cpp/unix.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/unix.c +$(BD)q3cpp$(O): cpp/cpp.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/cpp.c +$(BD)lexer$(O): cpp/lex.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/lex.c +$(BD)nlist$(O): cpp/nlist.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/nlist.c +$(BD)tokens$(O): cpp/tokens.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/tokens.c +$(BD)macro$(O): cpp/macro.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/macro.c +$(BD)eval$(O): cpp/eval.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/eval.c +$(BD)include$(O): cpp/include.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/include.c +$(BD)hideset$(O): cpp/hideset.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/hideset.c +$(BD)getopt$(O): cpp/getopt.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/getopt.c +$(BD)unix$(O): cpp/unix.c; $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ cpp/unix.c test: $(T)8q.s \ $(T)array.s \ @@ -248,7 +248,7 @@ -$(RM) ../q3rcc$(E) clean:: testclean - $(RM) $(BD)*$O + $(RM) $(BD)*$(O) $(RM) $(BD)dagcheck.c $(BD)alpha.c $(BD)mips.c $(BD)x86.c $(BD)sparc.c $(BD)x86linux.c $(BD)gram.c $(RM) $(BD)rcc.c $(BD)rcc.h $(RM) $(BD)rcc1$(E) $(BD)rcc1$(E) $(BD)1rcc$(E) $(BD)2rcc$(E) Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-04 23:54:51 UTC (rev 138) +++ trunk/code/unix/Makefile 2005-10-05 03:13:20 UTC (rev 139) @@ -262,7 +262,7 @@ endif TARGETS=\ - $(B)/$(PLATFORM)quake3 \ + $(B)/$(PLATFORM)quake3$(BINEXT) \ $(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) \ $(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) \ $(B)/baseq3/ui$(ARCH).$(SHLIBEXT) \ @@ -726,14 +726,14 @@ endif #IRIX endif #FreeBSD -$(B)/$(PLATFORM)quake3 : $(Q3OBJ) $(Q3POBJ) +$(B)/$(PLATFORM)quake3$(BINEXT): $(Q3OBJ) $(Q3POBJ) $(CC) -o $@ $(Q3OBJ) $(Q3POBJ) $(GLLDFLAGS) $(LDFLAGS) # TTimo: splines code requires C++ linking, but splines have # not been officially included in the codebase # $(CXX) -o $@ $(Q3OBJ) $(Q3POBJ) $(GLLDFLAGS) $(LDFLAGS) -$(B)/$(PLATFORM)quake3-smp : $(Q3OBJ) $(Q3POBJ_SMP) +$(B)/$(PLATFORM)quake3-smp$(BINEXT): $(Q3OBJ) $(Q3POBJ_SMP) $(CC) -o $@ $(Q3OBJ) $(Q3POBJ_SMP) $(GLLDFLAGS) \ $(THREAD_LDFLAGS) $(LDFLAGS) @@ -1001,7 +1001,7 @@ endif endif -$(B)/$(PLATFORM)q3ded : $(Q3DOBJ) +$(B)/$(PLATFORM)q3ded$(BINEXT): $(Q3DOBJ) $(CC) -o $@ $(Q3DOBJ) $(LDFLAGS) $(B)/ded/sv_bot.o : $(SDIR)/sv_bot.c; $(DO_DED_CC) From DONOTREPLY at icculus.org Wed Oct 5 10:50:46 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 5 Oct 2005 10:50:46 -0400 Subject: r140 - in trunk/code: game q3_ui ui unix Message-ID: <20051005145046.15763.qmail@icculus.org> Author: tma Date: 2005-10-05 10:50:45 -0400 (Wed, 05 Oct 2005) New Revision: 140 Removed: trunk/code/ui/ui_util.c Modified: trunk/code/game/g_client.c trunk/code/game/g_items.c trunk/code/game/g_misc.c trunk/code/game/g_spawn.c trunk/code/game/g_trigger.c trunk/code/q3_ui/ui_atoms.c trunk/code/q3_ui/ui_ingame.c trunk/code/q3_ui/ui_menu.c trunk/code/q3_ui/ui_servers2.c trunk/code/ui/ui_shared.c trunk/code/unix/Makefile Log: * Fixed some vm build warnings Modified: trunk/code/game/g_client.c =================================================================== --- trunk/code/game/g_client.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/game/g_client.c 2005-10-05 14:50:45 UTC (rev 140) @@ -1004,8 +1004,8 @@ trap_UnlinkEntity( ent ); } G_InitGentity( ent ); - ent->touch = NULL; - ent->pain = NULL; + ent->touch = 0; + ent->pain = 0; ent->client = client; client->pers.connected = CON_CONNECTED; Modified: trunk/code/game/g_items.c =================================================================== --- trunk/code/game/g_items.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/game/g_items.c 2005-10-05 14:50:45 UTC (rev 140) @@ -542,7 +542,7 @@ // events such as ctf flags if ( respawn <= 0 ) { ent->nextthink = 0; - ent->think = NULL; + ent->think = 0; } else { ent->nextthink = level.time + respawn * 1000; ent->think = RespawnItem; Modified: trunk/code/game/g_misc.c =================================================================== --- trunk/code/game/g_misc.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/game/g_misc.c 2005-10-05 14:50:45 UTC (rev 140) @@ -288,7 +288,7 @@ static void InitShooter_Finish( gentity_t *ent ) { ent->enemy = G_PickTarget( ent->target ); - ent->think = NULL; + ent->think = 0; ent->nextthink = 0; } Modified: trunk/code/game/g_spawn.c =================================================================== --- trunk/code/game/g_spawn.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/game/g_spawn.c 2005-10-05 14:50:45 UTC (rev 140) @@ -191,7 +191,7 @@ void SP_team_redobelisk( gentity_t *ent ); void SP_team_neutralobelisk( gentity_t *ent ); #endif -void SP_item_botroam( gentity_t *ent ) {}; +void SP_item_botroam( gentity_t *ent ) { } spawn_t spawns[] = { // info entities don't do anything at all, but provide positional @@ -266,7 +266,7 @@ #endif {"item_botroam", SP_item_botroam}, - {NULL, NULL} + {NULL, 0} }; /* Modified: trunk/code/game/g_trigger.c =================================================================== --- trunk/code/game/g_trigger.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/game/g_trigger.c 2005-10-05 14:50:45 UTC (rev 140) @@ -67,7 +67,7 @@ } else { // we can't just remove (self) here, because this is a touch function // called while looping through area links... - ent->touch = NULL; + ent->touch = 0; ent->nextthink = level.time + FRAMETIME; ent->think = G_FreeEntity; } Modified: trunk/code/q3_ui/ui_atoms.c =================================================================== --- trunk/code/q3_ui/ui_atoms.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/q3_ui/ui_atoms.c 2005-10-05 14:50:45 UTC (rev 140) @@ -821,10 +821,10 @@ UI_MainMenu(); return; case UIMENU_NEED_CD: - UI_ConfirmMenu( "Insert the CD", (voidfunc_f)NULL, NeedCDAction ); + UI_ConfirmMenu( "Insert the CD", 0, NeedCDAction ); return; case UIMENU_BAD_CD_KEY: - UI_ConfirmMenu( "Bad CD Key", (voidfunc_f)NULL, NeedCDKeyAction ); + UI_ConfirmMenu( "Bad CD Key", 0, NeedCDKeyAction ); return; case UIMENU_INGAME: /* Modified: trunk/code/q3_ui/ui_ingame.c =================================================================== --- trunk/code/q3_ui/ui_ingame.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/q3_ui/ui_ingame.c 2005-10-05 14:50:45 UTC (rev 140) @@ -120,11 +120,11 @@ break; case ID_RESTART: - UI_ConfirmMenu( "RESTART ARENA?", (voidfunc_f)NULL, InGame_RestartAction ); + UI_ConfirmMenu( "RESTART ARENA?", 0, InGame_RestartAction ); break; case ID_QUIT: - UI_ConfirmMenu( "EXIT GAME?", (voidfunc_f)NULL, InGame_QuitAction ); + UI_ConfirmMenu( "EXIT GAME?", 0, InGame_QuitAction ); break; case ID_SERVERINFO: Modified: trunk/code/q3_ui/ui_menu.c =================================================================== --- trunk/code/q3_ui/ui_menu.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/q3_ui/ui_menu.c 2005-10-05 14:50:45 UTC (rev 140) @@ -126,7 +126,7 @@ break; case ID_EXIT: - UI_ConfirmMenu( "EXIT GAME?", NULL, MainMenu_ExitAction ); + UI_ConfirmMenu( "EXIT GAME?", 0, MainMenu_ExitAction ); break; } } Modified: trunk/code/q3_ui/ui_servers2.c =================================================================== --- trunk/code/q3_ui/ui_servers2.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/q3_ui/ui_servers2.c 2005-10-05 14:50:45 UTC (rev 140) @@ -1265,11 +1265,11 @@ case ID_PUNKBUSTER: if (g_arenaservers.punkbuster.curvalue) { - UI_ConfirmMenu_Style( "Enable Punkbuster?", UI_CENTER|UI_INVERSE|UI_SMALLFONT, (voidfunc_f)NULL, Punkbuster_ConfirmEnable ); + UI_ConfirmMenu_Style( "Enable Punkbuster?", UI_CENTER|UI_INVERSE|UI_SMALLFONT, 0, Punkbuster_ConfirmEnable ); } else { - UI_ConfirmMenu_Style( "Disable Punkbuster?", UI_CENTER|UI_INVERSE|UI_SMALLFONT, (voidfunc_f)NULL, Punkbuster_ConfirmDisable ); + UI_ConfirmMenu_Style( "Disable Punkbuster?", UI_CENTER|UI_INVERSE|UI_SMALLFONT, 0, Punkbuster_ConfirmDisable ); } break; } Modified: trunk/code/ui/ui_shared.c =================================================================== --- trunk/code/ui/ui_shared.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/ui/ui_shared.c 2005-10-05 14:50:45 UTC (rev 140) @@ -42,7 +42,7 @@ static scrollInfo_t scrollInfo; -static void (*captureFunc) (void *p) = NULL; +static void (*captureFunc) (void *p) = 0; static void *captureData = NULL; static itemDef_t *itemCapture = NULL; // item that has the mouse captured ( if any ) @@ -2371,7 +2371,7 @@ if (itemCapture) { Item_StopCapture(itemCapture); itemCapture = NULL; - captureFunc = NULL; + captureFunc = 0; captureData = NULL; } else { // bk001206 - parentheses @@ -5134,7 +5134,7 @@ {"hideCvar", ItemParse_hideCvar, NULL}, {"cinematic", ItemParse_cinematic, NULL}, {"doubleclick", ItemParse_doubleClick, NULL}, - {NULL, NULL, NULL} + {NULL, 0, NULL} }; keywordHash_t *itemParseKeywordHash[KEYWORDHASH_SIZE]; @@ -5535,7 +5535,7 @@ {"fadeClamp", MenuParse_fadeClamp, NULL}, {"fadeCycle", MenuParse_fadeCycle, NULL}, {"fadeAmount", MenuParse_fadeAmount, NULL}, - {NULL, NULL, NULL} + {NULL, 0, NULL} }; keywordHash_t *menuParseKeywordHash[KEYWORDHASH_SIZE]; Deleted: trunk/code/ui/ui_util.c =================================================================== --- trunk/code/ui/ui_util.c 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/ui/ui_util.c 2005-10-05 14:50:45 UTC (rev 140) @@ -1,29 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// ui_util.c -// -// origin: rad -// new ui support stuff -// -// memory, string alloc - - Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-05 03:13:20 UTC (rev 139) +++ trunk/code/unix/Makefile 2005-10-05 14:50:45 UTC (rev 140) @@ -1325,7 +1325,6 @@ $(B)/missionpack/ui/ui_atoms.o \ $(B)/missionpack/ui/ui_gameinfo.o \ $(B)/missionpack/ui/ui_players.o \ - $(B)/missionpack/ui/ui_util.o \ $(B)/missionpack/ui/ui_shared.o \ \ $(B)/missionpack/game/bg_misc.o \ From DONOTREPLY at icculus.org Wed Oct 5 13:59:11 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 5 Oct 2005 13:59:11 -0400 Subject: r141 - trunk/code/tools/asm Message-ID: <20051005175911.10178.qmail@icculus.org> Author: tma Date: 2005-10-05 13:59:10 -0400 (Wed, 05 Oct 2005) New Revision: 141 Modified: trunk/code/tools/asm/Makefile trunk/code/tools/asm/q3asm.c Log: * Applied q3asm-turbo patches from http://www.icculus.org/~phaethon/q3/q3asm-turbo/q3asm-turbo.html * Added -m option to q3asm to write a map file (which is now disabled by default) * q3asm now returns an error code on failure Modified: trunk/code/tools/asm/Makefile =================================================================== --- trunk/code/tools/asm/Makefile 2005-10-05 14:50:45 UTC (rev 140) +++ trunk/code/tools/asm/Makefile 2005-10-05 17:59:10 UTC (rev 141) @@ -8,12 +8,12 @@ endif CC=gcc -CFLAGS=-O2 -Wall -Werror -fno-strict-aliasing +Q3ASM_CFLAGS=-O2 -Wall -Werror -fno-strict-aliasing default: q3asm q3asm: q3asm.c cmdlib.c - $(CC) $(CFLAGS) -o $@ $^ + $(CC) $(Q3ASM_CFLAGS) -o $@ $^ clean: rm -f q3asm *~ *.o Modified: trunk/code/tools/asm/q3asm.c =================================================================== --- trunk/code/tools/asm/q3asm.c 2005-10-05 14:50:45 UTC (rev 140) +++ trunk/code/tools/asm/q3asm.c 2005-10-05 17:59:10 UTC (rev 141) @@ -25,8 +25,14 @@ #include "qfiles.h" /* MSVC-ism fix. */ +#ifdef _WIN32 #define atoi(s) strtoul(s,NULL,10) +#endif +/* 19079 total symbols in FI, 2002 Jan 23 */ +#define Q3ASM_TURBO +#define DEFAULT_HASHTABLE_SIZE 2048 + char outputFilename[MAX_OS_PATH]; // the zero page size is just used for detecting run time faults @@ -149,7 +155,22 @@ int value; } symbol_t; +#ifdef Q3ASM_TURBO +typedef struct hashchain_s { + void *data; + struct hashchain_s *next; +} hashchain_t; +typedef struct hashtable_s { + int buckets; + hashchain_t **table; +} hashtable_t; + +int symtablelen = DEFAULT_HASHTABLE_SIZE; +hashtable_t *symtable; +hashtable_t *optable; +#endif /* Q3ASM_TURBO */ + segment_t segment[NUM_SEGMENTS]; segment_t *currentSegment; @@ -157,9 +178,11 @@ int numSymbols; int errorCount; +qboolean optionVerbose = qfalse; +qboolean optionWriteMapFile = qfalse; symbol_t *symbols; -symbol_t *lastSymbol; +symbol_t *lastSymbol = 0; /* Most recent symbol defined. */ #define MAX_ASM_FILES 256 @@ -202,11 +225,252 @@ int opcodesHash[ NUM_SOURCE_OPS ]; +#ifdef Q3ASM_TURBO + +int +vreport (const char* fmt, va_list vp) +{ + if (optionVerbose != qtrue) + return 0; + return vprintf(fmt, vp); +} + +int +report (const char *fmt, ...) +{ + va_list va; + int retval; + + va_start(va, fmt); + retval = vreport(fmt, va); + va_end(va); + return retval; +} + +/* The chain-and-bucket hash table. -PH */ + +void +hashtable_init (hashtable_t *H, int buckets) +{ + H->buckets = buckets; + H->table = calloc(H->buckets, sizeof(*(H->table))); + return; +} + +hashtable_t * +hashtable_new (int buckets) +{ + hashtable_t *H; + + H = malloc(sizeof(hashtable_t)); + hashtable_init(H, buckets); + return H; +} + +/* No destroy/destructor. No need. */ + +void +hashtable_add (hashtable_t *H, int hashvalue, void *datum) +{ + hashchain_t *hc, **hb; + + hashvalue = (abs(hashvalue) % H->buckets); + hb = &(H->table[hashvalue]); + if (*hb == 0) + { + /* Empty bucket. Create new one. */ + *hb = calloc(1, sizeof(**hb)); + hc = *hb; + } + else + { + /* Get hc to point to last node in chain. */ + for (hc = *hb; hc && hc->next; hc = hc->next); + hc->next = calloc(1, sizeof(*hc)); + hc = hc->next; + } + hc->data = datum; + hc->next = 0; + return; +} + +hashchain_t * +hashtable_get (hashtable_t *H, int hashvalue) +{ + hashvalue = (abs(hashvalue) % H->buckets); + return (H->table[hashvalue]); +} + +void +hashtable_stats (hashtable_t *H) +{ + int len, empties, longest, nodes; + int i; + float meanlen; + hashchain_t *hc; + + report("Stats for hashtable %08X", H); + empties = 0; + longest = 0; + nodes = 0; + for (i = 0; i < H->buckets; i++) + { + if (H->table[i] == 0) + { empties++; continue; } + for (hc = H->table[i], len = 0; hc; hc = hc->next, len++); + if (len > longest) { longest = len; } + nodes += len; + } + meanlen = (float)(nodes) / (H->buckets - empties); +#if 0 +/* Long stats display */ + report(" Total buckets: %d\n", H->buckets); + report(" Total stored nodes: %d\n", nodes); + report(" Longest chain: %d\n", longest); + report(" Empty chains: %d\n", empties); + report(" Mean non-empty chain length: %f\n", meanlen); +#else //0 +/* Short stats display */ + report(", %d buckets, %d nodes", H->buckets, nodes); + report("\n"); + report(" Longest chain: %d, empty chains: %d, mean non-empty: %f", longest, empties, meanlen); +#endif //0 + report("\n"); +} + + +/* Kludge. */ +/* Check if symbol already exists. */ +/* Returns 0 if symbol does NOT already exist, non-zero otherwise. */ +int +hashtable_symbol_exists (hashtable_t *H, int hash, char *sym) +{ + hashchain_t *hc; + symbol_t *s; + + hash = (abs(hash) % H->buckets); + hc = H->table[hash]; + if (hc == 0) + { + /* Empty chain means this symbol has not yet been defined. */ + return 0; + } + for (; hc; hc = hc->next) + { + s = (symbol_t*)hc->data; +// if ((hash == s->hash) && (strcmp(sym, s->name) == 0)) +/* We _already_ know the hash is the same. That's why we're probing! */ + if (strcmp(sym, s->name) == 0) + { + /* Symbol collisions -- symbol already exists. */ + return 1; + } + } + return 0; /* Can't find collision. */ +} + + + + +/* Comparator function for quicksorting. */ +int +symlist_cmp (const void *e1, const void *e2) +{ + const symbol_t *a, *b; + + a = *(const symbol_t **)e1; + b = *(const symbol_t **)e2; +//crumb("Symbol comparison (1) %d to (2) %d\n", a->value, b->value); + return ( a->value - b->value); +} + /* + Sort the symbols list by using QuickSort (qsort()). + This may take a LOT of memory (a few megabytes?), but memory is cheap these days. + However, qsort(3) already exists, and I'm really lazy. + -PH +*/ +void +sort_symbols () +{ + int i, elems; + symbol_t *s; + symbol_t **symlist; + +//crumb("sort_symbols: Constructing symlist array\n"); + for (elems = 0, s = symbols; s; s = s->next, elems++) /* nop */ ; + symlist = malloc(elems * sizeof(symbol_t*)); + for (i = 0, s = symbols; s; s = s->next, i++) + { + symlist[i] = s; + } +//crumbf("sort_symbols: Quick-sorting %d symbols\n", elems); + qsort(symlist, elems, sizeof(symbol_t*), symlist_cmp); +//crumbf("sort_symbols: Reconstructing symbols list\n"); + s = symbols = symlist[0]; + for (i = 1; i < elems; i++) + { + s->next = symlist[i]; + s = s->next; + } + lastSymbol = s; + s->next = 0; +//crumbf("sort_symbols: verifying..."); fflush(stdout); + for (i = 0, s = symbols; s; s = s->next, i++) /*nop*/ ; +//crumbf(" %d elements\n", i); + free(symlist); /* d'oh. no gc. */ +} + + + + +/* + Problem: + BYTE values are specified as signed decimal string. + A properly functional atoi() will cap large signed values at 0x7FFFFFFF. + Negative word values are often specified as very large decimal values by lcc. + Therefore, values that should be between 0x7FFFFFFF and 0xFFFFFFFF come out as 0x7FFFFFFF when using atoi(). + Bad. + + This function is one big evil hack to work around this problem. +*/ +/* FIXME: Find out maximum token length for VC++ -PH */ +int +ThingToConvertDecimalIntoSigned32SoThatAtoiDoesntCapAt7FFFFFFF (const char *s) +{ + /* Variable `l' should be an integer variant larger than 32 bits. + On gnu-x86, "long long" is 64 bits. -PH + */ + long long int l; + union { + unsigned int u; + signed int i; + } retval; + + l = atoll(s); + /* Now smash to signed 32 bits accordingly. */ + if (l < 0) { + retval.i = (int)l; + } else { + retval.u = (unsigned int)l; + } + return retval.i; /* <- union hackage. I feel dirty with this. -PH */ +} + +/* Programmer Attribute #1: laziness */ +#ifndef _WIN32 +#define atoi ThingToConvertDecimalIntoSigned32SoThatAtoiDoesntCapAt7FFFFFFF +#endif + + +#endif /* Q3ASM_TURBO */ + +/* ============= HashString ============= */ +#ifndef Q3ASM_TURBO int HashString( char *s ) { int v = 0; @@ -216,8 +480,33 @@ } return v; } +#else /* Q3ASM_TURBO */ +/* Default hash function of Kazlib 1.19, slightly modified. */ +unsigned int HashString (const char *key) +{ + static unsigned long randbox[] = { + 0x49848f1bU, 0xe6255dbaU, 0x36da5bdcU, 0x47bf94e9U, + 0x8cbcce22U, 0x559fc06aU, 0xd268f536U, 0xe10af79aU, + 0xc1af4d69U, 0x1d2917b5U, 0xec4c304dU, 0x9ee5016cU, + 0x69232f74U, 0xfead7bb3U, 0xe9089ab6U, 0xf012f6aeU, + }; + const char *str = key; + unsigned int acc = 0; + while (*str) { + acc ^= randbox[(*str + acc) & 0xf]; + acc = (acc << 1) | (acc >> 31); + acc &= 0xffffffffU; + acc ^= randbox[((*str++ >> 4) + acc) & 0xf]; + acc = (acc << 2) | (acc >> 30); + acc &= 0xffffffffU; + } + return abs(acc); +} +#endif /* Q3ASM_TURBO */ + + /* ============ CodeError @@ -228,7 +517,7 @@ errorCount++; - printf( "%s:%i ", currentFileName, currentFileLine ); + report( "%s:%i ", currentFileName, currentFileLine ); va_start( argptr,fmt ); vprintf( fmt,argptr ); @@ -272,6 +561,7 @@ ============ */ void DefineSymbol( char *sym, int value ) { +#ifndef Q3ASM_TURBO symbol_t *s, *after; char expanded[MAX_LINE_LENGTH]; int hash; @@ -279,7 +569,7 @@ if ( passNumber == 1 ) { return; } - + // TTimo // https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=381 // as a security, bail out if vmMain entry point is not first @@ -321,6 +611,53 @@ } s->next = after->next; after->next = s; +#else /* Q3ASM_TURBO */ + /* Hand optimization by PhaethonH */ + symbol_t *s; + char expanded[MAX_LINE_LENGTH]; + int hash; + + if ( passNumber == 1 ) { + return; + } + + // add the file prefix to local symbols to guarantee unique + if ( sym[0] == '$' ) { + sprintf( expanded, "%s_%i", sym, currentFileIndex ); + sym = expanded; + } + + hash = HashString( sym ); + + if (hashtable_symbol_exists(symtable, hash, sym)) { + CodeError( "Multiple definitions for %s\n", sym ); + return; + } + + s = malloc( sizeof( *s ) ); + s->next = NULL; + s->name = copystring( sym ); + s->hash = hash; + s->value = value; + s->segment = currentSegment; + + hashtable_add(symtable, hash, s); + +/* + Hash table lookup already speeds up symbol lookup enormously. + We postpone sorting until end of pass 0. + Since we're not doing the insertion sort, lastSymbol should always + wind up pointing to the end of list. + This allows constant time for adding to the list. + -PH +*/ + if (symbols == 0) { + lastSymbol = symbols = s; + } else { + lastSymbol->next = s; + lastSymbol = s; + } +#endif /* Q3ASM_TURBO */ } @@ -332,6 +669,7 @@ ============ */ int LookupSymbol( char *sym ) { +#ifndef Q3ASM_TURBO symbol_t *s; char expanded[MAX_LINE_LENGTH]; int hash; @@ -358,6 +696,43 @@ DefineSymbol( sym, 0 ); // so more errors aren't printed passNumber = 1; return 0; +#else /* Q3ASM_TURBO */ + symbol_t *s; + char expanded[MAX_LINE_LENGTH]; + int hash; + hashchain_t *hc; + + if ( passNumber == 0 ) { + return 0; + } + + // add the file prefix to local symbols to guarantee unique + if ( sym[0] == '$' ) { + sprintf( expanded, "%s_%i", sym, currentFileIndex ); + sym = expanded; + } + + hash = HashString( sym ); + +/* + Hand optimization by PhaethonH + + Using a hash table with chain/bucket for lookups alone sped up q3asm by almost 3x for me. + -PH +*/ + for (hc = hashtable_get(symtable, hash); hc; hc = hc->next) { + s = (symbol_t*)hc->data; /* ugly typecasting, but it's fast! */ + if ( (hash == s->hash) && !strcmp(sym, s->name) ) { + return s->segment->segmentBase + s->value; + } + } + + CodeError( "error: symbol %s undefined\n", sym ); + passNumber = 0; + DefineSymbol( sym, 0 ); // so more errors aren't printed + passNumber = 1; + return 0; +#endif /* Q3ASM_TURBO */ } @@ -371,6 +746,7 @@ =============== */ char *ExtractLine( char *data ) { +#ifndef Q3ASM_TURBO int i; currentFileLine++; @@ -398,6 +774,38 @@ data++; } return data; +#else /* Q3ASM_TURBO */ +/* Goal: + Given a string `data', extract one text line into buffer `lineBuffer' that is no longer than MAX_LINE_LENGTH characters long. + Return value is remainder of `data' that isn't part of `lineBuffer'. + -PH +*/ + /* Hand-optimized by PhaethonH */ + char *p, *q; + + currentFileLine++; + + lineParseOffset = 0; + token[0] = 0; + *lineBuffer = 0; + + p = q = data; + if (!*q) { + return NULL; + } + + for ( ; !((*p == 0) || (*p == '\n')); p++) /* nop */ ; + + if ((p - q) >= MAX_LINE_LENGTH) { + CodeError( "MAX_LINE_LENGTH" ); + return data; + } + + memcpy( lineBuffer, data, (p - data) ); + lineBuffer[(p - data)] = 0; + p += (*p == '\n') ? 1 : 0; /* Skip over final newline. */ + return p; +#endif /* Q3ASM_TURBO */ } @@ -409,6 +817,7 @@ ============== */ qboolean Parse( void ) { +#ifndef Q3ASM_TURBO int c; int len; @@ -440,6 +849,35 @@ token[len] = 0; return qtrue; +#else /* Q3ASM_TURBO */ + /* Hand-optimized by PhaethonH */ + const char *p, *q; + + /* Because lineParseOffset is only updated just before exit, this makes this code version somewhat harder to debug under a symbolic debugger. */ + + *token = 0; /* Clear token. */ + + // skip whitespace + for (p = lineBuffer + lineParseOffset; *p && (*p <= ' '); p++) /* nop */ ; + + // skip ; comments + /* die on end-of-string */ + if ((*p == ';') || (*p == 0)) { + lineParseOffset = p - lineBuffer; + return qfalse; + } + + q = p; /* Mark the start of token. */ + /* Find separator first. */ + for ( ; *p > 32; p++) /* nop */ ; /* XXX: unsafe assumptions. */ + /* *p now sits on separator. Mangle other values accordingly. */ + strncpy(token, q, p - q); + token[p - q] = 0; + + lineParseOffset = p - lineBuffer; + + return qtrue; +#endif /* Q3ASM_TURBO */ } @@ -460,6 +898,7 @@ ============== */ int ParseExpression(void) { +#ifndef Q3ASM_TURBO int i, j; char sym[MAX_LINE_LENGTH]; int v; @@ -506,6 +945,59 @@ } return v; +#else /* Q3ASM_TURBO */ + /* Hand optimization, PhaethonH */ + int i, j; + char sym[MAX_LINE_LENGTH]; + int v; + + /* Skip over a leading minus. */ + for ( i = ((token[0] == '-') ? 1 : 0) ; i < MAX_LINE_LENGTH ; i++ ) { + if ( token[i] == '+' || token[i] == '-' || token[i] == 0 ) { + break; + } + } + + memcpy( sym, token, i ); + sym[i] = 0; + + switch (*sym) { /* Resolve depending on first character. */ +/* Optimizing compilers can convert cases into "calculated jumps". I think these are faster. -PH */ + case '-': + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + v = atoi(sym); + break; + default: + v = LookupSymbol(sym); + break; + } + + // parse add / subtract offsets + while ( token[i] != 0 ) { + for ( j = i + 1 ; j < MAX_LINE_LENGTH ; j++ ) { + if ( token[j] == '+' || token[j] == '-' || token[j] == 0 ) { + break; + } + } + + memcpy( sym, token+i+1, j-i-1 ); + sym[j-i-1] = 0; + + switch (token[i]) { + case '+': + v += atoi(sym); + break; + case '-': + v -= atoi(sym); + break; + } + + i = j; + } + + return v; +#endif /* Q3ASM_TURBO */ } @@ -537,14 +1029,379 @@ } } + + + + + + +#ifdef Q3ASM_TURBO + +//#define STAT(L) report("STAT " L "\n"); +#define STAT(L) +#define ASM(O) int TryAssemble##O () + + /* + These clauses were moved out from AssembleLine() to allow reordering of if's. + An optimizing compiler should reconstruct these back into inline code. + -PH +*/ + + // call instructions reset currentArgOffset +ASM(CALL) +{ + if ( !strncmp( token, "CALL", 4 ) ) { +STAT("CALL"); + EmitByte( &segment[CODESEG], OP_CALL ); + instructionCount++; + currentArgOffset = 0; + return 1; + } + return 0; +} + + // arg is converted to a reversed store +ASM(ARG) +{ + if ( !strncmp( token, "ARG", 3 ) ) { +STAT("ARG"); + EmitByte( &segment[CODESEG], OP_ARG ); + instructionCount++; + if ( 8 + currentArgOffset >= 256 ) { + CodeError( "currentArgOffset >= 256" ); + return 1; + } + EmitByte( &segment[CODESEG], 8 + currentArgOffset ); + currentArgOffset += 4; + return 1; + } + return 0; +} + + // ret just leaves something on the op stack +ASM(RET) +{ + if ( !strncmp( token, "RET", 3 ) ) { +STAT("RET"); + EmitByte( &segment[CODESEG], OP_LEAVE ); + instructionCount++; + EmitInt( &segment[CODESEG], 8 + currentLocals + currentArgs ); + return 1; + } + return 0; +} + + // pop is needed to discard the return value of + // a function +ASM(POP) +{ + if ( !strncmp( token, "pop", 3 ) ) { +STAT("POP"); + EmitByte( &segment[CODESEG], OP_POP ); + instructionCount++; + return 1; + } + return 0; +} + + // address of a parameter is converted to OP_LOCAL +ASM(ADDRF) +{ + int v; + if ( !strncmp( token, "ADDRF", 5 ) ) { +STAT("ADDRF"); + instructionCount++; + Parse(); + v = ParseExpression(); + v = 16 + currentArgs + currentLocals + v; + EmitByte( &segment[CODESEG], OP_LOCAL ); + EmitInt( &segment[CODESEG], v ); + return 1; + } + return 0; +} + + // address of a local is converted to OP_LOCAL +ASM(ADDRL) +{ + int v; + if ( !strncmp( token, "ADDRL", 5 ) ) { +STAT("ADDRL"); + instructionCount++; + Parse(); + v = ParseExpression(); + v = 8 + currentArgs + v; + EmitByte( &segment[CODESEG], OP_LOCAL ); + EmitInt( &segment[CODESEG], v ); + return 1; + } + return 0; +} + +ASM(PROC) +{ + char name[1024]; + if ( !strcmp( token, "proc" ) ) { +STAT("PROC"); + Parse(); // function name + strcpy( name, token ); + + DefineSymbol( token, instructionCount ); // segment[CODESEG].imageUsed ); + + currentLocals = ParseValue(); // locals + currentLocals = ( currentLocals + 3 ) & ~3; + currentArgs = ParseValue(); // arg marshalling + currentArgs = ( currentArgs + 3 ) & ~3; + + if ( 8 + currentLocals + currentArgs >= 32767 ) { + CodeError( "Locals > 32k in %s\n", name ); + } + + instructionCount++; + EmitByte( &segment[CODESEG], OP_ENTER ); + EmitInt( &segment[CODESEG], 8 + currentLocals + currentArgs ); + return 1; + } + return 0; +} + + +ASM(ENDPROC) +{ + int v, v2; + if ( !strcmp( token, "endproc" ) ) { +STAT("ENDPROC"); + Parse(); // skip the function name + v = ParseValue(); // locals + v2 = ParseValue(); // arg marshalling + + // all functions must leave something on the opstack + instructionCount++; + EmitByte( &segment[CODESEG], OP_PUSH ); + + instructionCount++; + EmitByte( &segment[CODESEG], OP_LEAVE ); + EmitInt( &segment[CODESEG], 8 + currentLocals + currentArgs ); + + return 1; + } + return 0; +} + + +ASM(ADDRESS) +{ + int v; + if ( !strcmp( token, "address" ) ) { +STAT("ADDRESS"); + Parse(); + v = ParseExpression(); + +/* Addresses are 32 bits wide, and therefore go into data segment. */ + HackToSegment( DATASEG ); + EmitInt( currentSegment, v ); + return 1; + } + return 0; +} + +ASM(EXPORT) +{ + if ( !strcmp( token, "export" ) ) { +STAT("EXPORT"); + return 1; + } + return 0; +} + +ASM(IMPORT) +{ + if ( !strcmp( token, "import" ) ) { +STAT("IMPORT"); + return 1; + } + return 0; +} + +ASM(CODE) +{ + if ( !strcmp( token, "code" ) ) { +STAT("CODE"); + currentSegment = &segment[CODESEG]; + return 1; + } + return 0; +} + +ASM(BSS) +{ + if ( !strcmp( token, "bss" ) ) { +STAT("BSS"); + currentSegment = &segment[BSSSEG]; + return 1; + } + return 0; +} + +ASM(DATA) +{ + if ( !strcmp( token, "data" ) ) { +STAT("DATA"); + currentSegment = &segment[DATASEG]; + return 1; + } + return 0; +} + +ASM(LIT) +{ + if ( !strcmp( token, "lit" ) ) { +STAT("LIT"); + currentSegment = &segment[LITSEG]; + return 1; + } + return 0; +} + +ASM(LINE) +{ + if ( !strcmp( token, "line" ) ) { +STAT("LINE"); + return 1; + } + return 0; +} + +ASM(FILE) +{ + if ( !strcmp( token, "file" ) ) { +STAT("FILE"); + return 1; + } + return 0; +} + +ASM(EQU) +{ + char name[1024]; + if ( !strcmp( token, "equ" ) ) { +STAT("EQU"); + Parse(); + strcpy( name, token ); + Parse(); + DefineSymbol( name, atoi(token) ); + return 1; + } + return 0; +} + +ASM(ALIGN) +{ + int v; + if ( !strcmp( token, "align" ) ) { +STAT("ALIGN"); + v = ParseValue(); + currentSegment->imageUsed = (currentSegment->imageUsed + v - 1 ) & ~( v - 1 ); + return 1; + } + return 0; +} + +ASM(SKIP) +{ + int v; + if ( !strcmp( token, "skip" ) ) { +STAT("SKIP"); + v = ParseValue(); + currentSegment->imageUsed += v; + return 1; + } + return 0; +} + +ASM(BYTE) +{ + int i, v, v2; + if ( !strcmp( token, "byte" ) ) { +STAT("BYTE"); + v = ParseValue(); + v2 = ParseValue(); + + if ( v == 1 ) { +/* Character (1-byte) values go into lit(eral) segment. */ + HackToSegment( LITSEG ); + } else if ( v == 4 ) { +/* 32-bit (4-byte) values go into data segment. */ + HackToSegment( DATASEG ); + } else if ( v == 2 ) { +/* and 16-bit (2-byte) values will cause q3asm to barf. */ + CodeError( "16 bit initialized data not supported" ); + } + + // emit little endien + for ( i = 0 ; i < v ; i++ ) { + EmitByte( currentSegment, (v2 & 0xFF) ); /* paranoid ANDing -PH */ + v2 >>= 8; + } + return 1; + } + return 0; +} + + // code labels are emited as instruction counts, not byte offsets, + // because the physical size of the code will change with + // different run time compilers and we want to minimize the + // size of the required translation table +ASM(LABEL) +{ + if ( !strncmp( token, "LABEL", 5 ) ) { +STAT("LABEL"); + Parse(); + if ( currentSegment == &segment[CODESEG] ) { + DefineSymbol( token, instructionCount ); + } else { + DefineSymbol( token, currentSegment->imageUsed ); + } + return 1; + } + return 0; +} + + + +#endif /* Q3ASM_TURBO */ + + + + + + + + + + + + + + + + + + +/* ============== AssembleLine ============== */ void AssembleLine( void ) { +#ifndef Q3ASM_TURBO int v, v2; +#else /* Q3ASM_TURBO */ + hashchain_t *hc; + sourceOps_t *op; +#endif /* Q3ASM_TURBO */ int i; int hash; @@ -555,6 +1412,7 @@ hash = HashString( token ); +#ifndef Q3ASM_TURBO for ( i = 0 ; i < NUM_SOURCE_OPS ; i++ ) { if ( hash == opcodesHash[i] && !strcmp( token, sourceOps[i].name ) ) { int opcode; @@ -796,7 +1654,125 @@ } return; } +#else /* Q3ASM_TURBO */ +/* + Opcode search using hash table. + Since the opcodes stays mostly fixed, this may benefit even more from a tree. + Always with the tree :) + -PH +*/ + for (hc = hashtable_get(optable, hash); hc; hc = hc->next) { + op = (sourceOps_t*)(hc->data); + i = op - sourceOps; + if ((hash == opcodesHash[i]) && (!strcmp(token, op->name))) { + int opcode; + int expression; + if ( op->opcode == OP_UNDEF ) { + CodeError( "Undefined opcode: %s\n", token ); + } + if ( op->opcode == OP_IGNORE ) { + return; // we ignore most conversions + } + + // sign extensions need to check next parm + opcode = op->opcode; + if ( opcode == OP_SEX8 ) { + Parse(); + if ( token[0] == '1' ) { + opcode = OP_SEX8; + } else if ( token[0] == '2' ) { + opcode = OP_SEX16; + } else { + CodeError( "Bad sign extension: %s\n", token ); + return; + } + } + + // check for expression + Parse(); + if ( token[0] && op->opcode != OP_CVIF + && op->opcode != OP_CVFI ) { + expression = ParseExpression(); + + // code like this can generate non-dword block copies: + // auto char buf[2] = " "; + // we are just going to round up. This might conceivably + // be incorrect if other initialized chars follow. + if ( opcode == OP_BLOCK_COPY ) { + expression = ( expression + 3 ) & ~3; + } + + EmitByte( &segment[CODESEG], opcode ); + EmitInt( &segment[CODESEG], expression ); + } else { + EmitByte( &segment[CODESEG], opcode ); + } + + instructionCount++; + return; + } + } + +/* This falls through if an assembly opcode is not found. -PH */ + +/* The following should be sorted in sequence of statistical frequency, most frequent first. -PH */ +/* +Empirical frequency statistics from FI 2001.01.23: + 109892 STAT ADDRL + 72188 STAT BYTE + 51150 STAT LINE + 50906 STAT ARG + 43704 STAT IMPORT + 34902 STAT LABEL + 32066 STAT ADDRF + 23704 STAT CALL + 7720 STAT POP + 7256 STAT RET + 5198 STAT ALIGN + 3292 STAT EXPORT + 2878 STAT PROC + 2878 STAT ENDPROC + 2812 STAT ADDRESS + 738 STAT SKIP + 374 STAT EQU + 280 STAT CODE + 176 STAT LIT + 102 STAT FILE + 100 STAT BSS + 68 STAT DATA + + -PH +*/ + +#undef ASM +#define ASM(O) if (TryAssemble##O ()) return; + + ASM(ADDRL) + ASM(BYTE) + ASM(LINE) + ASM(ARG) + ASM(IMPORT) + ASM(LABEL) + ASM(ADDRF) + ASM(CALL) + ASM(POP) + ASM(RET) + ASM(ALIGN) + ASM(EXPORT) + ASM(PROC) + ASM(ENDPROC) + ASM(ADDRESS) + ASM(SKIP) + ASM(EQU) + ASM(CODE) + ASM(LIT) + ASM(FILE) + ASM(BSS) + ASM(DATA) + +#endif /* Q3ASM_TURBO */ + CodeError( "Unknown token: %s\n", token ); } @@ -806,11 +1782,23 @@ ============== */ void InitTables( void ) { +#ifndef Q3ASM_TURBO int i; for ( i = 0 ; i < NUM_SOURCE_OPS ; i++ ) { opcodesHash[i] = HashString( sourceOps[i].name ); } +#else /* Q3ASM_TURBO */ + int i; + + symtable = hashtable_new(symtablelen); + optable = hashtable_new(100); /* There's hardly 100 opcodes anyway. */ + + for ( i = 0 ; i < NUM_SOURCE_OPS ; i++ ) { + opcodesHash[i] = HashString( sourceOps[i].name ); + hashtable_add(optable, opcodesHash[i], sourceOps + i); + } +#endif /* Q3ASM_TURBO */ } @@ -829,7 +1817,8 @@ StripExtension( imageName ); strcat( imageName, ".map" ); - printf( "Writing %s...\n", imageName ); + report( "Writing %s...\n", imageName ); + f = SafeOpenWrite( imageName ); for ( seg = CODESEG ; seg <= BSSSEG ; seg++ ) { for ( s = symbols ; s ; s = s->next ) { @@ -855,20 +1844,22 @@ vmHeader_t header; FILE *f; - printf( "%i total errors\n", errorCount ); + report( "%i total errors\n", errorCount ); + strcpy( imageName, outputFilename ); StripExtension( imageName ); strcat( imageName, ".qvm" ); remove( imageName ); - printf( "code segment: %7i\n", segment[CODESEG].imageUsed ); - printf( "data segment: %7i\n", segment[DATASEG].imageUsed ); - printf( "lit segment: %7i\n", segment[LITSEG].imageUsed ); - printf( "bss segment: %7i\n", segment[BSSSEG].imageUsed ); - printf( "instruction count: %i\n", instructionCount ); + report( "code segment: %7i\n", segment[CODESEG].imageUsed ); + report( "data segment: %7i\n", segment[DATASEG].imageUsed ); + report( "lit segment: %7i\n", segment[LITSEG].imageUsed ); + report( "bss segment: %7i\n", segment[BSSSEG].imageUsed ); + report( "instruction count: %i\n", instructionCount ); + if ( errorCount != 0 ) { - printf( "Not writing a file due to errors\n" ); + report( "Not writing a file due to errors\n" ); return; } @@ -881,7 +1872,7 @@ header.litLength = segment[LITSEG].imageUsed; header.bssLength = segment[BSSSEG].imageUsed; - printf( "Writing to %s\n", imageName ); + report( "Writing to %s\n", imageName ); CreatePath( imageName ); f = SafeOpenWrite( imageName ); @@ -902,7 +1893,7 @@ char filename[MAX_OS_PATH]; char *ptr; - printf( "outputFilename: %s\n", outputFilename ); + report( "outputFilename: %s\n", outputFilename ); for ( i = 0 ; i < numAsmFiles ; i++ ) { strcpy( filename, asmFileNames[ i ] ); @@ -924,7 +1915,7 @@ currentFileIndex = i; currentFileName = asmFileNames[ i ]; currentFileLine = 0; - printf("pass %i: %s\n", passNumber, currentFileName ); + report("pass %i: %s\n", passNumber, currentFileName ); fflush( NULL ); ptr = asmFiles[i]; while ( ptr ) { @@ -937,6 +1928,11 @@ for ( i = 0 ; i < NUM_SEGMENTS ; i++ ) { segment[i].imageUsed = (segment[i].imageUsed + 3) & ~3; } +#ifdef Q3ASM_TURBO + if (passNumber == 0) { + sort_symbols(); + } +#endif /* Q3ASM_TURBO */ } // reserve the stack in bss @@ -948,7 +1944,9 @@ WriteVmFile(); // write the map file even if there were errors - WriteMapFile(); + if( optionWriteMapFile ) { + WriteMapFile(); + } } @@ -998,11 +1996,24 @@ // _chdir( "/quake3/jccode/cgame/lccout" ); // hack for vc profiler if ( argc < 2 ) { +#ifndef Q3ASM_TURBO Error( "usage: q3asm [-o output] or q3asm -f \n" ); +#else /* Q3ASM_TURBO */ + Error("Usage: %s [OPTION]... [FILES]...\n\ +Assemble LCC bytecode assembly to Q3VM bytecode.\n\ +\n\ + -o OUTPUT Write assembled output to file OUTPUT.qvm\n\ + -f LISTFILE Read options and list of files to assemble from LISTFILE\n\ + -b BUCKETS Set symbol hash table to BUCKETS buckets\n\ + -v Verbose compilation report\n\ +", argv[0]); +#endif /* Q3ASM_TURBO */ } start = I_FloatTime (); +#ifndef Q3ASM_TURBO InitTables(); +#endif /* !Q3ASM_TURBO */ // default filename is "q3asm" strcpy( outputFilename, "q3asm" ); @@ -1016,6 +2027,7 @@ if ( i == argc - 1 ) { Error( "-o must preceed a filename" ); } +/* Timbo of Tremulous pointed out -o not working; stock ID q3asm folded in the change. Yay. */ strcpy( outputFilename, argv[ i+1 ] ); i++; continue; @@ -1029,6 +2041,33 @@ i++; continue; } + +#ifdef Q3ASM_TURBO + if (!strcmp(argv[i], "-b")) { + if (i == argc - 1) { + Error("-b requires an argument"); + } + i++; + symtablelen = atoi(argv[i]); + continue; + } +#endif /* Q3ASM_TURBO */ + + if( !strcmp( argv[ i ], "-v" ) ) { +/* Verbosity option added by Timbo, 2002.09.14. +By default (no -v option), q3asm remains silent except for critical errors. +Verbosity turns on all messages, error or not. +Motivation: not wanting to scrollback for pages to find asm error. +*/ + optionVerbose = qtrue; + continue; + } + + if( !strcmp( argv[ i ], "-m" ) ) { + optionWriteMapFile = qtrue; + continue; + } + Error( "Unknown option: %s", argv[i] ); } @@ -1038,11 +2077,29 @@ numAsmFiles++; } +#ifdef Q3ASM_TURBO + InitTables(); +#endif /* Q3ASM_TURBO */ Assemble(); +#ifdef Q3ASM_TURBO + { + symbol_t *s; + + for ( i = 0, s = symbols ; s ; s = s->next, i++ ) /* nop */ ; + + if (optionVerbose) + { + report("%d symbols defined\n", i); + hashtable_stats(symtable); + hashtable_stats(optable); + } + } +#endif /* Q3ASM_TURBO */ + end = I_FloatTime (); - printf ("%5.0f seconds elapsed\n", end-start); + report ("%5.0f seconds elapsed\n", end-start); - return 0; + return errorCount; } From DONOTREPLY at icculus.org Wed Oct 5 14:13:35 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 5 Oct 2005 14:13:35 -0400 Subject: r142 - trunk/code/unix Message-ID: <20051005181335.12368.qmail@icculus.org> Author: tma Date: 2005-10-05 14:13:34 -0400 (Wed, 05 Oct 2005) New Revision: 142 Modified: trunk/code/unix/Makefile Log: * A couple of small Makefile fixes Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-05 17:59:10 UTC (rev 141) +++ trunk/code/unix/Makefile 2005-10-05 18:13:34 UTC (rev 142) @@ -1425,7 +1425,7 @@ $(MAKE) clean2 B=$(BD) CFLAGS="$(DEBUG_CFLAGS)" clean-release: - $(MAKE) clean2 B=$(BR) CFLAGS="$(DEBUG_CFLAGS)" + $(MAKE) clean2 B=$(BR) CFLAGS="$(RELEASE_CFLAGS)" distclean: clean $(MAKE) -C ../tools/asm clean uninstall @@ -1435,4 +1435,8 @@ # DEPENDENCIES ############################################################################# --include $(shell find -name "*.d") +D_FILES=$(shell find -name "*.d") + +ifneq ($(strip $(D_FILES)),) + include $(D_FILES) +endif From DONOTREPLY at icculus.org Wed Oct 5 17:07:47 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 5 Oct 2005 17:07:47 -0400 Subject: r143 - trunk/code/tools/lcc Message-ID: <20051005210747.4551.qmail@icculus.org> Author: tma Date: 2005-10-05 17:07:47 -0400 (Wed, 05 Oct 2005) New Revision: 143 Modified: trunk/code/tools/lcc/makefile Log: * Fixed a foul-up with the lcc Makefile Modified: trunk/code/tools/lcc/makefile =================================================================== --- trunk/code/tools/lcc/makefile 2005-10-05 18:13:34 UTC (rev 142) +++ trunk/code/tools/lcc/makefile 2005-10-05 21:07:47 UTC (rev 143) @@ -31,7 +31,7 @@ - at echo make all q3rcc lburg q3cpp q3lcc bprint liblcc triple clean clobber makedirs: - @if [ ! -d $(B) ];then mkdir $(B);fi + @if [ ! -d $(BD) ];then mkdir $(BD);fi @if [ ! -d $(T) ];then mkdir $(T);fi all:: q3rcc lburg q3cpp q3lcc bprint liblcc From DONOTREPLY at icculus.org Wed Oct 5 17:46:03 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 5 Oct 2005 17:46:03 -0400 Subject: r144 - trunk/code/tools/lcc/etc Message-ID: <20051005214603.10538.qmail@icculus.org> Author: tma Date: 2005-10-05 17:46:03 -0400 (Wed, 05 Oct 2005) New Revision: 144 Modified: trunk/code/tools/lcc/etc/lcc.c Log: * Append LCC directory to the PATH variable on all platforms Modified: trunk/code/tools/lcc/etc/lcc.c =================================================================== --- trunk/code/tools/lcc/etc/lcc.c 2005-10-05 21:07:47 UTC (rev 143) +++ trunk/code/tools/lcc/etc/lcc.c 2005-10-05 21:46:03 UTC (rev 144) @@ -71,34 +71,49 @@ static char *progname; static List lccinputs; /* list of input directories */ +/* +=============== +AddLCCDirToPath + +Append the base path of this file to the PATH so that q3lcc can find q3cpp and +q3rcc in its own directory. There are probably (much) cleaner ways of doing +this. +Tim Angus 05/09/05 +=============== +*/ +void AddLCCDirToPath( const char *lccBinary ) +{ + char basepath[ 1024 ]; + char path[ 4096 ]; + char *p; + + strncpy( basepath, lccBinary, 1024 ); + p = strrchr( basepath, '/' ); + if( !p ) + p = strrchr( basepath, '\\' ); + + if( p ) + { + *p = '\0'; + strncpy( path, "PATH=", 4096 ); + strncat( path, getenv( "PATH" ), 4096 ); +#ifdef _WIN32 + strncat( path, ";", 4096 ); + strncat( path, basepath, 4096 ); + _putenv( path ); +#else + strncat( path, ":", 4096 ); + strncat( path, basepath, 4096 ); + putenv( path ); +#endif + } +} + int main(int argc, char *argv[]) { int i, j, nf; - -#ifdef _WIN32 - // Tim Angus 05/09/05 - // Append the base path of this file to the PATH - // There are probably (much) cleaner ways of doing this, but - // IANAWD (Windows Developer) - { - char basepath[ 1024 ]; - char path[ 4096 ]; - char *p; - strncpy( basepath, argv[ 0 ], 1024 ); - p = strrchr( basepath, '\\' ); + AddLCCDirToPath( argv[ 0 ] ); - if( p ) - { - *p = '\0'; - strncpy( path, "PATH=", 4096 ); - strncat( path, getenv( "PATH" ), 4096 ); - strncat( path, ";", 4096 ); - strncat( path, basepath, 4096 ); - _putenv( path ); - } - } -#endif - progname = argv[0]; ac = argc + 50; av = alloc(ac*sizeof(char *)); From DONOTREPLY at icculus.org Thu Oct 6 11:16:13 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 6 Oct 2005 11:16:13 -0400 Subject: r145 - trunk/code/unix Message-ID: <20051006151613.20602.qmail@icculus.org> Author: tma Date: 2005-10-06 11:16:12 -0400 (Thu, 06 Oct 2005) New Revision: 145 Modified: trunk/code/unix/Makefile Log: * Usage of find on FreeBSD fix from Andreas Kohn Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-05 21:46:03 UTC (rev 144) +++ trunk/code/unix/Makefile 2005-10-06 15:16:12 UTC (rev 145) @@ -1435,7 +1435,7 @@ # DEPENDENCIES ############################################################################# -D_FILES=$(shell find -name "*.d") +D_FILES=$(shell find . -name '*.d') ifneq ($(strip $(D_FILES)),) include $(D_FILES) From DONOTREPLY at icculus.org Thu Oct 6 11:33:54 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 6 Oct 2005 11:33:54 -0400 Subject: r146 - trunk/code/renderer Message-ID: <20051006153354.23982.qmail@icculus.org> Author: tma Date: 2005-10-06 11:33:54 -0400 (Thu, 06 Oct 2005) New Revision: 146 Modified: trunk/code/renderer/tr_shader.c Log: * ATI skybox bug fix Modified: trunk/code/renderer/tr_shader.c =================================================================== --- trunk/code/renderer/tr_shader.c 2005-10-06 15:16:12 UTC (rev 145) +++ trunk/code/renderer/tr_shader.c 2005-10-06 15:33:54 UTC (rev 146) @@ -1230,7 +1230,11 @@ for (i=0 ; i<6 ; i++) { Com_sprintf( pathname, sizeof(pathname), "%s_%s.tga" , token, suf[i] ); +#ifdef GL_CLAMP_TO_EDGE + shader.sky.outerbox[i] = R_FindImageFile( ( char * ) pathname, qtrue, qtrue, GL_CLAMP_TO_EDGE ); +#else shader.sky.outerbox[i] = R_FindImageFile( ( char * ) pathname, qtrue, qtrue, GL_CLAMP ); +#endif if ( !shader.sky.outerbox[i] ) { shader.sky.outerbox[i] = tr.defaultImage; } From DONOTREPLY at icculus.org Thu Oct 6 21:03:50 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 6 Oct 2005 21:03:50 -0400 Subject: r147 - in trunk/code/tools: asm lcc Message-ID: <20051007010350.25029.qmail@icculus.org> Author: tma Date: 2005-10-06 21:03:49 -0400 (Thu, 06 Oct 2005) New Revision: 147 Modified: trunk/code/tools/asm/cmdlib.c trunk/code/tools/lcc/makefile Log: * Patch from Andreas Kohn to fix q3asm build on FreeBSD * Removal of SYSTEM variable from the lcc makefile due to problems with FreeBSD Modified: trunk/code/tools/asm/cmdlib.c =================================================================== --- trunk/code/tools/asm/cmdlib.c 2005-10-06 15:33:54 UTC (rev 146) +++ trunk/code/tools/asm/cmdlib.c 2005-10-07 01:03:49 UTC (rev 147) @@ -28,16 +28,12 @@ #ifdef WIN32 #include #include -#endif - -#ifdef __linux +#elif defined(NeXT) +#include +#else #include #endif -#ifdef NeXT -#include -#endif - #define BASEDIRNAME "quake" // assumed to have a 2 or 3 following #define PATHSEPERATOR '/' Modified: trunk/code/tools/lcc/makefile =================================================================== --- trunk/code/tools/lcc/makefile 2005-10-06 15:33:54 UTC (rev 146) +++ trunk/code/tools/lcc/makefile 2005-10-07 01:03:49 UTC (rev 147) @@ -140,10 +140,8 @@ $(BD)q3lcc$(E): $(BD)q3lcc$(O) $(BD)host$(O); $(LD) $(LDFLAGS) -o $@ $(BD)q3lcc$(O) $(BD)host$(O) -SYSTEM=$(shell cc -print-search-dirs | head -n 1 | cut -b 10-) - $(BD)q3lcc$(O): etc/lcc.c; $(CC) $(LCC_CFLAGS) -c -DTEMPDIR=\"$(TEMPDIR)\" -o $@ etc/lcc.c -$(BD)host$(O): $(HOSTFILE); $(CC) $(LCC_CFLAGS) -c -DSYSTEM=\"$(SYSTEM)\" -o $@ $(HOSTFILE) +$(BD)host$(O): $(HOSTFILE); $(CC) $(LCC_CFLAGS) -c -DSYSTEM=\"\" -o $@ $(HOSTFILE) LIBOBJS=$(BD)assert$(O) $(BD)bbexit$(O) $(BD)yynull$(O) From DONOTREPLY at icculus.org Sat Oct 8 02:30:39 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 8 Oct 2005 02:30:39 -0400 Subject: r148 - in trunk/code: game macosx macosx/Quake3.pbproj Message-ID: <20051008063039.20811.qmail@icculus.org> Author: six Date: 2005-10-08 02:30:38 -0400 (Sat, 08 Oct 2005) New Revision: 148 Added: trunk/code/macosx/macosx_common.c Modified: trunk/code/game/q_shared.h trunk/code/macosx/Quake3.pbproj/project.pbxproj Log: Mac OS X needs Com_Memcpy and Com_Memset to be set to memcpy and memset. Modified: trunk/code/game/q_shared.h =================================================================== --- trunk/code/game/q_shared.h 2005-10-07 01:03:49 UTC (rev 147) +++ trunk/code/game/q_shared.h 2005-10-08 06:30:38 UTC (rev 148) @@ -476,7 +476,7 @@ void *Hunk_Alloc( int size, ha_pref preference ); #endif -#if defined(__GNUC__) && !defined(__MINGW32__) +#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(MACOS_X) // https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=371 // custom Snd_Memset implementation for glibc memset bug workaround void Snd_Memset (void* dest, const int val, const size_t count); Modified: trunk/code/macosx/Quake3.pbproj/project.pbxproj =================================================================== --- trunk/code/macosx/Quake3.pbproj/project.pbxproj 2005-10-07 01:03:49 UTC (rev 147) +++ trunk/code/macosx/Quake3.pbproj/project.pbxproj 2005-10-08 06:30:38 UTC (rev 148) @@ -136,6 +136,7 @@ 13380E3100ADFD58C697A10E, 13380E3200ADFD71C697A10E, 13380E3300ADFD85C697A10E, + 4F23A81708F4FA8F00CB90D3, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -257,6 +258,7 @@ 13380E4F00AE0112C697A10E, 13380E5000AE020FC697A10E, 13380E5200AE0235C697A10E, + 4F23A81B08F4FA8F00CB90D3, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -5003,6 +5005,7 @@ 016EAE1500B4BE42C697A10E, 016EAE1600B4BE42C697A10E, 016EAE1700B4BE53C697A10E, + 4F23A81908F4FA8F00CB90D3, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -5322,6 +5325,7 @@ 0170311600B48B5CC697A10E, F54951F40354EAA2011BCB42, 4FB23865047AB9F60098ACF3, + 4F23A81308F4FA8F00CB90D3, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -6427,9 +6431,9 @@ }; dependencies = ( 0170311D00B49352C697A10E, + 18A3D358065F663A006A719A, + 18A3D356065F6636006A719A, 4FF091EA04897B0000030DA8, - 18A3D356065F6636006A719A, - 18A3D358065F663A006A719A, 18A3D35A065F663F006A719A, ); isa = PBXAggregateTarget; @@ -6476,6 +6480,7 @@ 043627B600868916C697A10E, 043627B700868916C697A10E, 043627B800868916C697A10E, + 4F23A81108F4FA8F00CB90D3, ); isa = PBXGroup; name = "Mac OS X"; @@ -8160,6 +8165,7 @@ 016F1B6400ACDA9BC697A10E, 4FB23867047ABF780098ACF3, 4FEFFEDA047B008000719638, + 4F23A81D08F4FA8F00CB90D3, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -8809,6 +8815,56 @@ //4F2 //4F3 //4F4 + 4F23A81108F4FA8F00CB90D3 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + path = macosx_common.c; + refType = 4; + sourceTree = ""; + }; + 4F23A81308F4FA8F00CB90D3 = { + fileRef = 4F23A81108F4FA8F00CB90D3; + isa = PBXBuildFile; + settings = { + }; + }; + 4F23A81508F4FA8F00CB90D3 = { + fileRef = 4F23A81108F4FA8F00CB90D3; + isa = PBXBuildFile; + settings = { + }; + }; + 4F23A81708F4FA8F00CB90D3 = { + fileRef = 4F23A81108F4FA8F00CB90D3; + isa = PBXBuildFile; + settings = { + }; + }; + 4F23A81908F4FA8F00CB90D3 = { + fileRef = 4F23A81108F4FA8F00CB90D3; + isa = PBXBuildFile; + settings = { + }; + }; + 4F23A81B08F4FA8F00CB90D3 = { + fileRef = 4F23A81108F4FA8F00CB90D3; + isa = PBXBuildFile; + settings = { + }; + }; + 4F23A81D08F4FA8F00CB90D3 = { + fileRef = 4F23A81108F4FA8F00CB90D3; + isa = PBXBuildFile; + settings = { + }; + }; + 4F23A81F08F4FA8F00CB90D3 = { + fileRef = 4F23A81108F4FA8F00CB90D3; + isa = PBXBuildFile; + settings = { + }; + }; 4FB23863047AB9F60098ACF3 = { fileEncoding = 30; isa = PBXFileReference; @@ -9498,6 +9554,7 @@ 4FF0911504896C0E00030DA8, 4FF0911B04896C0E00030DA8, 4FF0911C04896C0E00030DA8, + 4F23A81508F4FA8F00CB90D3, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -10919,6 +10976,7 @@ 4FF091D904896C1600030DA8, 4FF091DD04896C1600030DA8, 4FF091DF04896C1600030DA8, + 4F23A81F08F4FA8F00CB90D3, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; Added: trunk/code/macosx/macosx_common.c =================================================================== --- trunk/code/macosx/macosx_common.c 2005-10-07 01:03:49 UTC (rev 147) +++ trunk/code/macosx/macosx_common.c 2005-10-08 06:30:38 UTC (rev 148) @@ -0,0 +1,31 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ +#include +#include + +void Com_Memcpy (void* dest, const void* src, const size_t count) { + memcpy(dest, src, count); +} + +void Com_Memset (void* dest, const int val, const size_t count) { + memset(dest, val, count); +} From DONOTREPLY at icculus.org Sat Oct 8 10:36:16 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 8 Oct 2005 10:36:16 -0400 Subject: r149 - in trunk: . code/unix Message-ID: <20051008143616.9194.qmail@icculus.org> Author: tma Date: 2005-10-08 10:36:15 -0400 (Sat, 08 Oct 2005) New Revision: 149 Modified: trunk/code/unix/Makefile trunk/i_o-q3-readme Log: * q3lcc is no longer the default target in the Makefile * Changed readme to suggest using the root Makefile instead of the one in code/unix Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-08 06:30:38 UTC (rev 148) +++ trunk/code/unix/Makefile 2005-10-08 14:36:15 UTC (rev 149) @@ -414,21 +414,6 @@ DO_WINDRES=$(WINDRES) -i $< -o $@ ############################################################################# -# QVM BUILD TOOLS -############################################################################# - -Q3LCC=../tools/q3lcc$(BINEXT) -Q3ASM=../tools/q3asm$(BINEXT) - -$(Q3LCC): - $(MAKE) -C ../tools/lcc install - -$(Q3ASM): - $(MAKE) -C ../tools/asm install - -DO_Q3LCC=$(Q3LCC) -o $@ -S -DQ3_VM -I$(CGDIR) -I$(GDIR) -I$(UIDIR) $< - -############################################################################# # MAIN TARGETS ############################################################################# @@ -469,6 +454,21 @@ @if [ ! -d $(B)/q3static ];then mkdir $(B)/q3static;fi ############################################################################# +# QVM BUILD TOOLS +############################################################################# + +Q3LCC=../tools/q3lcc$(BINEXT) +Q3ASM=../tools/q3asm$(BINEXT) + +$(Q3LCC): + $(MAKE) -C ../tools/lcc install + +$(Q3ASM): + $(MAKE) -C ../tools/asm install + +DO_Q3LCC=$(Q3LCC) -o $@ -S -DQ3_VM -I$(CGDIR) -I$(GDIR) -I$(UIDIR) $< + +############################################################################# # CLIENT/SERVER ############################################################################# Modified: trunk/i_o-q3-readme =================================================================== --- trunk/i_o-q3-readme 2005-10-08 06:30:38 UTC (rev 148) +++ trunk/i_o-q3-readme 2005-10-08 14:36:15 UTC (rev 149) @@ -38,7 +38,8 @@ Compiling (Under Linux) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -cd code/unix && make +1. If not already there, change to the directory containing this readme +2. Run 'make' Installing under Linux ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -70,7 +71,6 @@ Compiling under windows using MinGW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - It is possible to compile ioQ3 using the MinGW (Minimalist GNU for Windows) toolset. It's a little more involved than compiling for linux; steps are as follows: From DONOTREPLY at icculus.org Sun Oct 9 09:05:44 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 9 Oct 2005 09:05:44 -0400 Subject: r150 - trunk/code/qcommon Message-ID: <20051009130544.28635.qmail@icculus.org> Author: ludwig Date: 2005-10-09 09:05:44 -0400 (Sun, 09 Oct 2005) New Revision: 150 Modified: trunk/code/qcommon/vm.c Log: don't call VM_Compile if it's not supported so the VM_Compile symbol isn't needed Modified: trunk/code/qcommon/vm.c =================================================================== --- trunk/code/qcommon/vm.c 2005-10-08 14:36:15 UTC (rev 149) +++ trunk/code/qcommon/vm.c 2005-10-09 13:05:44 UTC (rev 150) @@ -558,12 +558,13 @@ Com_Printf("Architecture doesn't have a bytecode compiler, using interpreter\n"); interpret = VMI_BYTECODE; } -#endif - +#else if ( interpret >= VMI_COMPILED ) { vm->compiled = qtrue; VM_Compile( vm, header ); - } else { + } else +#endif + { vm->compiled = qfalse; VM_PrepareInterpreter( vm, header ); } From DONOTREPLY at icculus.org Sun Oct 9 09:06:33 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 9 Oct 2005 09:06:33 -0400 Subject: r151 - trunk/code/tools/lcc/cpp Message-ID: <20051009130633.28883.qmail@icculus.org> Author: ludwig Date: 2005-10-09 09:06:33 -0400 (Sun, 09 Oct 2005) New Revision: 151 Modified: trunk/code/tools/lcc/cpp/unix.c Log: ugly: undefine memmove to avoid build failure with gcc fortify extensions enabled Modified: trunk/code/tools/lcc/cpp/unix.c =================================================================== --- trunk/code/tools/lcc/cpp/unix.c 2005-10-09 13:05:44 UTC (rev 150) +++ trunk/code/tools/lcc/cpp/unix.c 2005-10-09 13:06:33 UTC (rev 151) @@ -92,6 +92,10 @@ /* memmove is defined here because some vendors don't provide it at all and others do a terrible job (like calling malloc) */ +// -- ouch, that hurts -- ln +#ifdef memmove +#undef memmove +#endif void * memmove(void *dp, const void *sp, size_t n) { From DONOTREPLY at icculus.org Sun Oct 9 09:07:54 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 9 Oct 2005 09:07:54 -0400 Subject: r152 - trunk/code/unix Message-ID: <20051009130754.29234.qmail@icculus.org> Author: ludwig Date: 2005-10-09 09:07:54 -0400 (Sun, 09 Oct 2005) New Revision: 152 Modified: trunk/code/unix/Makefile Log: - get rid of vm_none - if VM_PPC is set compiled vm support is enabled on ppc (default off atm) Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-09 13:06:33 UTC (rev 151) +++ trunk/code/unix/Makefile 2005-10-09 13:07:54 UTC (rev 152) @@ -85,6 +85,7 @@ ## Defaults DLL_ONLY=false USE_SDL=true +VM_PPC= # bk010215 - TODO - add all defaults / kill Ryan @@ -107,14 +108,10 @@ else ifeq ($(ARCH),s390x) LIB=lib64 - else - ifeq ($(ARCH),ppc) - VM_PPC=vm_none endif endif endif endif - endif BASE_CFLAGS = -pipe -Wall -Wimplicit -Wstrict-prototypes @@ -132,21 +129,23 @@ OPTIMIZE = -O3 -ffast-math -funroll-loops -fomit-frame-pointer \ -fno-strict-aliasing + BASE_CFLAGS += -DHAVE_VM_NATIVE ifeq ($(ARCH),x86_64) OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -falign-loops=2 \ -falign-jumps=2 -falign-functions=2 -fstrength-reduce \ -fno-strict-aliasing - BASE_CFLAGS += -DHAVE_VM_NATIVE else ifeq ($(ARCH),i386) OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math \ -falign-loops=2 -falign-jumps=2 -falign-functions=2 \ -fno-strict-aliasing -fstrength-reduce - BASE_CFLAGS += -DHAVE_VM_NATIVE -DHAVE_VM_COMPILED + BASE_CFLAGS += -DHAVE_VM_COMPILED else ifeq ($(ARCH),ppc) - BASE_CFLAGS += -DHAVE_VM_NATIVE + ifneq ($(VM_PPC),) + BASE_CFLAGS += -DHAVE_VM_COMPILED + endif endif endif endif @@ -618,12 +617,8 @@ Q3OBJ += $(B)/client/vm_x86.o endif -ifeq ($(ARCH),x86_64) - Q3OBJ += $(B)/client/vm_none.o -endif - ifeq ($(ARCH),ppc) - ifeq ($(DLL_ONLY),false) + ifneq ($(VM_PPC),) Q3OBJ += $(B)/client/$(VM_PPC).o endif endif @@ -905,8 +900,9 @@ $(B)/client/win_resource.o : $(W32DIR)/winquake.rc; $(DO_WINDRES) $(B)/client/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_CC) -$(B)/client/vm_none.o : $(CMDIR)/vm_none.c; $(DO_CC) +ifneq ($(VM_PPC),) $(B)/client/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_CC) +endif $(B)/client/unzip.o : $(CMDIR)/unzip.c; $(DO_CC) $(B)/client/vm.o : $(CMDIR)/vm.c; $(DO_CC) @@ -991,12 +987,8 @@ Q3DOBJ += $(B)/ded/vm_x86.o $(B)/ded/ftola.o $(B)/ded/snapvectora.o endif -ifeq ($(ARCH),x86_64) - Q3DOBJ += $(B)/ded/vm_none.o -endif - ifeq ($(ARCH),ppc) - ifeq ($(DLL_ONLY),false) + ifneq ($(VM_PPC),) Q3DOBJ += $(B)/ded/$(VM_PPC).o endif endif @@ -1075,8 +1067,9 @@ $(B)/ded/snapvectora.o : $(UDIR)/snapvectora.s; $(DO_AS) $(B)/ded/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_DED_CC) -$(B)/ded/vm_none.o : $(CMDIR)/vm_none.c; $(DO_DED_CC) +ifneq ($(VM_PPC),) $(B)/ded/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_DED_CC) +endif From DONOTREPLY at icculus.org Sun Oct 9 20:37:54 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 9 Oct 2005 20:37:54 -0400 Subject: r153 - trunk/code/renderer Message-ID: <20051010003754.17861.qmail@icculus.org> Author: tma Date: 2005-10-09 20:37:54 -0400 (Sun, 09 Oct 2005) New Revision: 153 Modified: trunk/code/renderer/tr_main.c Log: * Replaced drawSurfs qsort algorithm with a radix sort + Performance is comparable, although generally slightly worse, but... + Radix is a stable sort algorithm, so overlapping coplanar drawSurfs (i.e. with the same sort key) no longer flicker indeterminately + Also removes the dubious comment: "FIXME: this was lifted and modified from the microsoft lib source..." Modified: trunk/code/renderer/tr_main.c =================================================================== --- trunk/code/renderer/tr_main.c 2005-10-09 13:07:54 UTC (rev 152) +++ trunk/code/renderer/tr_main.c 2005-10-10 00:37:54 UTC (rev 153) @@ -1000,205 +1000,50 @@ */ /* -================= -qsort replacement - -================= +=============== +R_Radix +=============== */ -static __inline void SWAP_DRAW_SURF(drawSurf_t* a, drawSurf_t* b) +static __inline void R_Radix( int byte, int size, drawSurf_t *source, drawSurf_t *dest ) { - drawSurf_t t; - memcpy(&t, a, sizeof(t)); - memcpy(a, b, sizeof(t)); - memcpy(b, &t, sizeof(t)); -} + int count[ 256 ] = { 0 }; + int index[ 256 ]; + int i; + unsigned char *sortKey = NULL; + unsigned char *end = NULL; -/* this parameter defines the cutoff between using quick sort and - insertion sort for arrays; arrays with lengths shorter or equal to the - below value use insertion sort */ + sortKey = ( (unsigned char *)&source[ 0 ].sort ) + byte; + end = sortKey + ( size * sizeof( drawSurf_t ) ); + for( ; sortKey < end; sortKey += sizeof( drawSurf_t ) ) + ++count[ *sortKey ]; -#define CUTOFF 8 /* testing shows that this is good value */ + index[ 0 ] = 0; -static void shortsort( drawSurf_t *lo, drawSurf_t *hi ) { - drawSurf_t *p, *max; + for( i = 1; i < 256; ++i ) + index[ i ] = index[ i - 1 ] + count[ i - 1 ]; - while (hi > lo) { - max = lo; - for (p = lo + 1; p <= hi; p++ ) { - if ( p->sort > max->sort ) { - max = p; - } - } - SWAP_DRAW_SURF(max, hi); - hi--; - } + sortKey = ( (unsigned char *)&source[ 0 ].sort ) + byte; + for( i = 0; i < size; ++i, sortKey += sizeof( drawSurf_t ) ) + dest[ index[ *sortKey ]++ ] = source[ i ]; } +/* +=============== +R_RadixSort -/* sort the array between lo and hi (inclusive) -FIXME: this was lifted and modified from the microsoft lib source... - */ - -void qsortFast ( - void *base, - unsigned num, - unsigned width - ) +Radix sort with 4 byte size buckets +=============== +*/ +static void R_RadixSort( drawSurf_t *source, int size ) { - char *lo, *hi; /* ends of sub-array currently sorting */ - char *mid; /* points to middle of subarray */ - char *loguy, *higuy; /* traveling pointers for partition step */ - unsigned size; /* size of the sub-array */ - char *lostk[30], *histk[30]; - int stkptr; /* stack for saving sub-array to be processed */ + static drawSurf_t scratch[ MAX_DRAWSURFS ]; -#if 0 - if ( sizeof(drawSurf_t) != 8 ) { - ri.Error( ERR_DROP, "change SWAP_DRAW_SURF macro" ); - } -#endif - - /* Note: the number of stack entries required is no more than - 1 + log2(size), so 30 is sufficient for any array */ - - if (num < 2 || width == 0) - return; /* nothing to do */ - - stkptr = 0; /* initialize stack */ - - lo = base; - hi = (char *)base + width * (num-1); /* initialize limits */ - - /* this entry point is for pseudo-recursion calling: setting - lo and hi and jumping to here is like recursion, but stkptr is - prserved, locals aren't, so we preserve stuff on the stack */ -recurse: - - size = (hi - lo) / width + 1; /* number of el's to sort */ - - /* below a certain size, it is faster to use a O(n^2) sorting method */ - if (size <= CUTOFF) { - shortsort((drawSurf_t *)lo, (drawSurf_t *)hi); - } - else { - /* First we pick a partititioning element. The efficiency of the - algorithm demands that we find one that is approximately the - median of the values, but also that we select one fast. Using - the first one produces bad performace if the array is already - sorted, so we use the middle one, which would require a very - wierdly arranged array for worst case performance. Testing shows - that a median-of-three algorithm does not, in general, increase - performance. */ - - mid = lo + (size / 2) * width; /* find middle element */ - SWAP_DRAW_SURF((drawSurf_t *)mid, (drawSurf_t *)lo); /* swap it to beginning of array */ - - - /* We now wish to partition the array into three pieces, one - consisiting of elements <= partition element, one of elements - equal to the parition element, and one of element >= to it. This - is done below; comments indicate conditions established at every - step. */ - - loguy = lo; - higuy = hi + width; - - /* Note that higuy decreases and loguy increases on every iteration, - so loop must terminate. */ - for (;;) { - /* lo <= loguy < hi, lo < higuy <= hi + 1, - A[i] <= A[lo] for lo <= i <= loguy, - A[i] >= A[lo] for higuy <= i <= hi */ - - do { - loguy += width; - } while (loguy <= hi && - ( ((drawSurf_t *)loguy)->sort <= ((drawSurf_t *)lo)->sort ) ); - - /* lo < loguy <= hi+1, A[i] <= A[lo] for lo <= i < loguy, - either loguy > hi or A[loguy] > A[lo] */ - - do { - higuy -= width; - } while (higuy > lo && - ( ((drawSurf_t *)higuy)->sort >= ((drawSurf_t *)lo)->sort ) ); - - /* lo-1 <= higuy <= hi, A[i] >= A[lo] for higuy < i <= hi, - either higuy <= lo or A[higuy] < A[lo] */ - - if (higuy < loguy) - break; - - /* if loguy > hi or higuy <= lo, then we would have exited, so - A[loguy] > A[lo], A[higuy] < A[lo], - loguy < hi, highy > lo */ - - SWAP_DRAW_SURF((drawSurf_t *)loguy, (drawSurf_t *)higuy); - - /* A[loguy] < A[lo], A[higuy] > A[lo]; so condition at top - of loop is re-established */ - } - - /* A[i] >= A[lo] for higuy < i <= hi, - A[i] <= A[lo] for lo <= i < loguy, - higuy < loguy, lo <= higuy <= hi - implying: - A[i] >= A[lo] for loguy <= i <= hi, - A[i] <= A[lo] for lo <= i <= higuy, - A[i] = A[lo] for higuy < i < loguy */ - - SWAP_DRAW_SURF((drawSurf_t *)lo, (drawSurf_t *)higuy); /* put partition element in place */ - - /* OK, now we have the following: - A[i] >= A[higuy] for loguy <= i <= hi, - A[i] <= A[higuy] for lo <= i < higuy - A[i] = A[lo] for higuy <= i < loguy */ - - /* We've finished the partition, now we want to sort the subarrays - [lo, higuy-1] and [loguy, hi]. - We do the smaller one first to minimize stack usage. - We only sort arrays of length 2 or more.*/ - - if ( higuy - 1 - lo >= hi - loguy ) { - if (lo + width < higuy) { - lostk[stkptr] = lo; - histk[stkptr] = higuy - width; - ++stkptr; - } /* save big recursion for later */ - - if (loguy < hi) { - lo = loguy; - goto recurse; /* do small recursion */ - } - } - else { - if (loguy < hi) { - lostk[stkptr] = loguy; - histk[stkptr] = hi; - ++stkptr; /* save big recursion for later */ - } - - if (lo + width < higuy) { - hi = higuy - width; - goto recurse; /* do small recursion */ - } - } - } - - /* We have sorted the array, except for any pending sorts on the stack. - Check if there are any, and do them. */ - - --stkptr; - if (stkptr >= 0) { - lo = lostk[stkptr]; - hi = histk[stkptr]; - goto recurse; /* pop subarray from stack */ - } - else - return; /* all subarrays done */ + R_Radix( 0, size, source, scratch ); + R_Radix( 1, size, scratch, source ); + R_Radix( 2, size, source, scratch ); + R_Radix( 3, size, scratch, source ); } - //========================================================================================== /* @@ -1261,7 +1106,7 @@ } // sort the drawsurfs by sort type, then orientation, then shader - qsortFast (drawSurfs, numDrawSurfs, sizeof(drawSurf_t) ); + R_RadixSort( drawSurfs, numDrawSurfs ); // check for any pass through drawing, which // may cause another view to be rendered first From DONOTREPLY at icculus.org Mon Oct 10 21:52:29 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 10 Oct 2005 21:52:29 -0400 Subject: r154 - in trunk/code: client macosx/Quake3.pbproj renderer Message-ID: <20051011015229.3602.qmail@icculus.org> Author: six Date: 2005-10-10 21:52:29 -0400 (Mon, 10 Oct 2005) New Revision: 154 Modified: trunk/code/client/snd_mix.c trunk/code/macosx/Quake3.pbproj/project.pbxproj trunk/code/renderer/tr_shade.c trunk/code/renderer/tr_shade_calc.c trunk/code/renderer/tr_surface.c Log: Fix build problems under OS X Modified: trunk/code/client/snd_mix.c =================================================================== --- trunk/code/client/snd_mix.c 2005-10-10 00:37:54 UTC (rev 153) +++ trunk/code/client/snd_mix.c 2005-10-11 01:52:29 UTC (rev 154) @@ -22,7 +22,7 @@ // snd_mix.c -- portable code to mix sounds for snd_dma.c #include "snd_local.h" -#if idppc_altivec +#if idppc_altivec && !defined(MACOS_X) #include #endif Modified: trunk/code/macosx/Quake3.pbproj/project.pbxproj =================================================================== --- trunk/code/macosx/Quake3.pbproj/project.pbxproj 2005-10-10 00:37:54 UTC (rev 153) +++ trunk/code/macosx/Quake3.pbproj/project.pbxproj 2005-10-11 01:52:29 UTC (rev 154) @@ -3049,140 +3049,6 @@ refType = 4; sourceTree = ""; }; - 012ADAA400868211C697A10E = { - children = ( - 012ADAA500868211C697A10E, - 012ADAA600868211C697A10E, - 012ADAA700868211C697A10E, - 012ADAA800868211C697A10E, - 012ADAA900868211C697A10E, - 012ADAAA00868211C697A10E, - 012ADAAB00868211C697A10E, - 012ADAAC00868211C697A10E, - 012ADAAD00868211C697A10E, - 012ADAAE00868211C697A10E, - 012ADAAF00868211C697A10E, - 012ADAB000868211C697A10E, - 012ADAB100868211C697A10E, - 012ADAB200868211C697A10E, - ); - isa = PBXGroup; - path = mac; - refType = 4; - sourceTree = ""; - }; - 012ADAA500868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = mac_console.c; - refType = 4; - sourceTree = ""; - }; - 012ADAA600868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = mac_event.c; - refType = 4; - sourceTree = ""; - }; - 012ADAA700868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = mac_glimp2.c; - refType = 4; - sourceTree = ""; - }; - 012ADAA800868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = mac_input.c; - refType = 4; - sourceTree = ""; - }; - 012ADAA900868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = mac_local.h; - refType = 4; - sourceTree = ""; - }; - 012ADAAA00868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = mac_main.c; - refType = 4; - sourceTree = ""; - }; - 012ADAAB00868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = mac_net.c; - refType = 4; - sourceTree = ""; - }; - 012ADAAC00868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = mac_snddma.c; - refType = 4; - sourceTree = ""; - }; - 012ADAAD00868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = MacGamma.c; - refType = 4; - sourceTree = ""; - }; - 012ADAAE00868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = MacGamma.h; - refType = 4; - sourceTree = ""; - }; - 012ADAAF00868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = macprefix.h; - refType = 4; - sourceTree = ""; - }; - 012ADAB000868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.rez; - path = q3.r; - refType = 4; - sourceTree = ""; - }; - 012ADAB100868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = SetupGL.c; - refType = 4; - sourceTree = ""; - }; - 012ADAB200868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = SetupGL.h; - refType = 4; - sourceTree = ""; - }; 012ADAB300868211C697A10E = { children = ( 012ADAB400868211C697A10E, @@ -4453,7 +4319,6 @@ 012ADB4800868211C697A10E, 012ADB4900868211C697A10E, 012ADB4A00868211C697A10E, - 012ADB4B00868211C697A10E, ); isa = PBXGroup; path = ui; @@ -4540,14 +4405,6 @@ refType = 4; sourceTree = ""; }; - 012ADB4B00868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = ui_util.c; - refType = 4; - sourceTree = ""; - }; 012ADB4C00868211C697A10E = { children = ( 012ADB4D00868211C697A10E, @@ -4995,7 +4852,6 @@ 016EAE0A00B4BDD1C697A10E = { buildActionMask = 2147483647; files = ( - 016EAE0B00B4BDD1C697A10E, 016EAE0C00B4BDD1C697A10E, 016EAE0D00B4BDD1C697A10E, 016EAE0E00B4BDD1C697A10E, @@ -5010,12 +4866,6 @@ isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; }; - 016EAE0B00B4BDD1C697A10E = { - fileRef = 012ADB4B00868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 016EAE0C00B4BDD1C697A10E = { fileRef = 012ADB4A00868211C697A10E; isa = PBXBuildFile; @@ -8216,7 +8066,6 @@ 012AD9A500868211C697A10E, 012ADA2400868211C697A10E, 012ADA6500868211C697A10E, - 012ADAA400868211C697A10E, 012ADAB300868211C697A10E, 012ADABB00868211C697A10E, 012ADAEC00868211C697A10E, Modified: trunk/code/renderer/tr_shade.c =================================================================== --- trunk/code/renderer/tr_shade.c 2005-10-10 00:37:54 UTC (rev 153) +++ trunk/code/renderer/tr_shade.c 2005-10-11 01:52:29 UTC (rev 154) @@ -21,8 +21,8 @@ */ // tr_shade.c -#include "tr_local.h" -#if idppc_altivec +#include "tr_local.h" +#if idppc_altivec && !defined(MACOS_X) #include #endif Modified: trunk/code/renderer/tr_shade_calc.c =================================================================== --- trunk/code/renderer/tr_shade_calc.c 2005-10-10 00:37:54 UTC (rev 153) +++ trunk/code/renderer/tr_shade_calc.c 2005-10-11 01:52:29 UTC (rev 154) @@ -22,7 +22,7 @@ // tr_shade_calc.c #include "tr_local.h" -#if idppc_altivec +#if idppc_altivec && !defined(MACOS_X) #include #endif Modified: trunk/code/renderer/tr_surface.c =================================================================== --- trunk/code/renderer/tr_surface.c 2005-10-10 00:37:54 UTC (rev 153) +++ trunk/code/renderer/tr_surface.c 2005-10-11 01:52:29 UTC (rev 154) @@ -21,7 +21,7 @@ */ // tr_surf.c #include "tr_local.h" -#if idppc_altivec +#if idppc_altivec && !defined(MACOS_X) #include #endif From DONOTREPLY at icculus.org Wed Oct 12 21:55:32 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 12 Oct 2005 21:55:32 -0400 Subject: r155 - trunk/code/tools/asm Message-ID: <20051013015532.17002.qmail@icculus.org> Author: tma Date: 2005-10-12 21:55:31 -0400 (Wed, 12 Oct 2005) New Revision: 155 Removed: trunk/code/tools/asm/qfiles.h Modified: trunk/code/tools/asm/q3asm.c Log: * Removed Q3ASM_TURBO defines from q3asm * Removed q3asm qfiles.h and redirected it to qcommon qfiles.h Modified: trunk/code/tools/asm/q3asm.c =================================================================== --- trunk/code/tools/asm/q3asm.c 2005-10-11 01:52:29 UTC (rev 154) +++ trunk/code/tools/asm/q3asm.c 2005-10-13 01:55:31 UTC (rev 155) @@ -22,7 +22,7 @@ #include "cmdlib.h" #include "mathlib.h" -#include "qfiles.h" +#include "../../qcommon/qfiles.h" /* MSVC-ism fix. */ #ifdef _WIN32 @@ -30,7 +30,6 @@ #endif /* 19079 total symbols in FI, 2002 Jan 23 */ -#define Q3ASM_TURBO #define DEFAULT_HASHTABLE_SIZE 2048 char outputFilename[MAX_OS_PATH]; @@ -155,7 +154,6 @@ int value; } symbol_t; -#ifdef Q3ASM_TURBO typedef struct hashchain_s { void *data; struct hashchain_s *next; @@ -169,7 +167,6 @@ int symtablelen = DEFAULT_HASHTABLE_SIZE; hashtable_t *symtable; hashtable_t *optable; -#endif /* Q3ASM_TURBO */ segment_t segment[NUM_SEGMENTS]; segment_t *currentSegment; @@ -225,7 +222,6 @@ int opcodesHash[ NUM_SOURCE_OPS ]; -#ifdef Q3ASM_TURBO int vreport (const char* fmt, va_list vp) @@ -463,24 +459,12 @@ #endif -#endif /* Q3ASM_TURBO */ /* ============= HashString ============= */ -#ifndef Q3ASM_TURBO -int HashString( char *s ) { - int v = 0; - - while ( *s ) { - v += *s; - s++; - } - return v; -} -#else /* Q3ASM_TURBO */ /* Default hash function of Kazlib 1.19, slightly modified. */ unsigned int HashString (const char *key) { @@ -504,7 +488,6 @@ } return abs(acc); } -#endif /* Q3ASM_TURBO */ /* @@ -561,57 +544,6 @@ ============ */ void DefineSymbol( char *sym, int value ) { -#ifndef Q3ASM_TURBO - symbol_t *s, *after; - char expanded[MAX_LINE_LENGTH]; - int hash; - - if ( passNumber == 1 ) { - return; - } - - // TTimo - // https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=381 - // as a security, bail out if vmMain entry point is not first - if (!Q_stricmp(sym, "vmMain")) - if (value) - Error( "vmMain must be the first symbol in the qvm (got offset %d)\n", value ); - - // add the file prefix to local symbols to guarantee unique - if ( sym[0] == '$' ) { - sprintf( expanded, "%s_%i", sym, currentFileIndex ); - sym = expanded; - } - - hash = HashString( sym ); - - for ( s = symbols ; s ; s = s->next ) { - if ( hash == s->hash && !strcmp( sym, s->name ) ) { - CodeError( "Multiple definitions for %s\n", sym ); - return; - } - } - - s = malloc( sizeof( *s ) ); - s->name = copystring( sym ); - s->hash = hash; - s->value = value; - s->segment = currentSegment; - - lastSymbol = s; /* for the move-to-lit-segment byteswap hack */ - - // insert it in order - if ( !symbols || s->value < symbols->value ) { - s->next = symbols; - symbols = s; - return; - } - - for ( after = symbols ; after->next && after->next->value < value ; after = after->next ) { - } - s->next = after->next; - after->next = s; -#else /* Q3ASM_TURBO */ /* Hand optimization by PhaethonH */ symbol_t *s; char expanded[MAX_LINE_LENGTH]; @@ -657,7 +589,6 @@ lastSymbol->next = s; lastSymbol = s; } -#endif /* Q3ASM_TURBO */ } @@ -669,37 +600,9 @@ ============ */ int LookupSymbol( char *sym ) { -#ifndef Q3ASM_TURBO symbol_t *s; char expanded[MAX_LINE_LENGTH]; int hash; - - if ( passNumber == 0 ) { - return 0; - } - - // add the file prefix to local symbols to guarantee unique - if ( sym[0] == '$' ) { - sprintf( expanded, "%s_%i", sym, currentFileIndex ); - sym = expanded; - } - - hash = HashString( sym ); - for ( s = symbols ; s ; s = s->next ) { - if ( hash == s->hash && !strcmp( sym, s->name ) ) { - return s->segment->segmentBase + s->value; - } - } - - CodeError( "ERROR: symbol %s undefined\n", sym ); - passNumber = 0; - DefineSymbol( sym, 0 ); // so more errors aren't printed - passNumber = 1; - return 0; -#else /* Q3ASM_TURBO */ - symbol_t *s; - char expanded[MAX_LINE_LENGTH]; - int hash; hashchain_t *hc; if ( passNumber == 0 ) { @@ -732,7 +635,6 @@ DefineSymbol( sym, 0 ); // so more errors aren't printed passNumber = 1; return 0; -#endif /* Q3ASM_TURBO */ } @@ -746,38 +648,10 @@ =============== */ char *ExtractLine( char *data ) { -#ifndef Q3ASM_TURBO - int i; - - currentFileLine++; - lineParseOffset = 0; - token[0] = 0; - - if ( data[0] == 0 ) { - lineBuffer[0] = 0; - return NULL; - } - - for ( i = 0 ; i < MAX_LINE_LENGTH ; i++ ) { - if ( data[i] == 0 || data[i] == '\n' ) { - break; - } - } - if ( i == MAX_LINE_LENGTH ) { - CodeError( "MAX_LINE_LENGTH" ); - return data; - } - memcpy( lineBuffer, data, i ); - lineBuffer[i] = 0; - data += i; - if ( data[0] == '\n' ) { - data++; - } - return data; -#else /* Q3ASM_TURBO */ /* Goal: - Given a string `data', extract one text line into buffer `lineBuffer' that is no longer than MAX_LINE_LENGTH characters long. - Return value is remainder of `data' that isn't part of `lineBuffer'. + Given a string `data', extract one text line into buffer `lineBuffer' that + is no longer than MAX_LINE_LENGTH characters long. Return value is + remainder of `data' that isn't part of `lineBuffer'. -PH */ /* Hand-optimized by PhaethonH */ @@ -805,7 +679,6 @@ lineBuffer[(p - data)] = 0; p += (*p == '\n') ? 1 : 0; /* Skip over final newline. */ return p; -#endif /* Q3ASM_TURBO */ } @@ -817,39 +690,6 @@ ============== */ qboolean Parse( void ) { -#ifndef Q3ASM_TURBO - int c; - int len; - - len = 0; - token[0] = 0; - - // skip whitespace - while ( lineBuffer[ lineParseOffset ] <= ' ' ) { - if ( lineBuffer[ lineParseOffset ] == 0 ) { - return qfalse; - } - lineParseOffset++; - } - - // skip ; comments - c = lineBuffer[ lineParseOffset ]; - if ( c == ';' ) { - return qfalse; - } - - - // parse a regular word - do { - token[len] = c; - len++; - lineParseOffset++; - c = lineBuffer[ lineParseOffset ]; - } while (c>32); - - token[len] = 0; - return qtrue; -#else /* Q3ASM_TURBO */ /* Hand-optimized by PhaethonH */ const char *p, *q; @@ -877,7 +717,6 @@ lineParseOffset = p - lineBuffer; return qtrue; -#endif /* Q3ASM_TURBO */ } @@ -898,54 +737,6 @@ ============== */ int ParseExpression(void) { -#ifndef Q3ASM_TURBO - int i, j; - char sym[MAX_LINE_LENGTH]; - int v; - - if ( token[0] == '-' ) { - i = 1; - } else { - i = 0; - } - - for ( ; i < MAX_LINE_LENGTH ; i++ ) { - if ( token[i] == '+' || token[i] == '-' || token[i] == 0 ) { - break; - } - } - - memcpy( sym, token, i ); - sym[i] = 0; - - if ( ( sym[0] >= '0' && sym[0] <= '9' ) || sym[0] == '-' ) { - v = atoi( sym ); - } else { - v = LookupSymbol( sym ); - } - - // parse add / subtract offsets - while ( token[i] != 0 ) { - for ( j = i + 1 ; j < MAX_LINE_LENGTH ; j++ ) { - if ( token[j] == '+' || token[j] == '-' || token[j] == 0 ) { - break; - } - } - - memcpy( sym, token+i+1, j-i-1 ); - sym[j-i-1] = 0; - - if ( token[i] == '+' ) { - v += atoi( sym ); - } - if ( token[i] == '-' ) { - v -= atoi( sym ); - } - i = j; - } - - return v; -#else /* Q3ASM_TURBO */ /* Hand optimization, PhaethonH */ int i, j; char sym[MAX_LINE_LENGTH]; @@ -997,7 +788,6 @@ } return v; -#endif /* Q3ASM_TURBO */ } @@ -1035,8 +825,6 @@ -#ifdef Q3ASM_TURBO - //#define STAT(L) report("STAT " L "\n"); #define STAT(L) #define ASM(O) int TryAssemble##O () @@ -1370,25 +1158,6 @@ -#endif /* Q3ASM_TURBO */ - - - - - - - - - - - - - - - - - - /* ============== AssembleLine @@ -1396,12 +1165,8 @@ ============== */ void AssembleLine( void ) { -#ifndef Q3ASM_TURBO - int v, v2; -#else /* Q3ASM_TURBO */ hashchain_t *hc; sourceOps_t *op; -#endif /* Q3ASM_TURBO */ int i; int hash; @@ -1412,249 +1177,6 @@ hash = HashString( token ); -#ifndef Q3ASM_TURBO - for ( i = 0 ; i < NUM_SOURCE_OPS ; i++ ) { - if ( hash == opcodesHash[i] && !strcmp( token, sourceOps[i].name ) ) { - int opcode; - int expression; - - if ( sourceOps[i].opcode == OP_UNDEF ) { - CodeError( "Undefined opcode: %s\n", token ); - } - if ( sourceOps[i].opcode == OP_IGNORE ) { - return; // we ignore most conversions - } - - // sign extensions need to check next parm - opcode = sourceOps[i].opcode; - if ( opcode == OP_SEX8 ) { - Parse(); - if ( token[0] == '1' ) { - opcode = OP_SEX8; - } else if ( token[0] == '2' ) { - opcode = OP_SEX16; - } else { - CodeError( "Bad sign extension: %s\n", token ); - return; - } - } - - // check for expression - Parse(); - if ( token[0] && sourceOps[i].opcode != OP_CVIF - && sourceOps[i].opcode != OP_CVFI ) { - expression = ParseExpression(); - - // code like this can generate non-dword block copies: - // auto char buf[2] = " "; - // we are just going to round up. This might conceivably - // be incorrect if other initialized chars follow. - if ( opcode == OP_BLOCK_COPY ) { - expression = ( expression + 3 ) & ~3; - } - - EmitByte( &segment[CODESEG], opcode ); - EmitInt( &segment[CODESEG], expression ); - } else { - EmitByte( &segment[CODESEG], opcode ); - } - - instructionCount++; - return; - } - } - - // call instructions reset currentArgOffset - if ( !strncmp( token, "CALL", 4 ) ) { - EmitByte( &segment[CODESEG], OP_CALL ); - instructionCount++; - currentArgOffset = 0; - return; - } - - // arg is converted to a reversed store - if ( !strncmp( token, "ARG", 3 ) ) { - EmitByte( &segment[CODESEG], OP_ARG ); - instructionCount++; - if ( 8 + currentArgOffset >= 256 ) { - CodeError( "currentArgOffset >= 256" ); - return; - } - EmitByte( &segment[CODESEG], 8 + currentArgOffset ); - currentArgOffset += 4; - return; - } - - // ret just leaves something on the op stack - if ( !strncmp( token, "RET", 3 ) ) { - EmitByte( &segment[CODESEG], OP_LEAVE ); - instructionCount++; - EmitInt( &segment[CODESEG], 8 + currentLocals + currentArgs ); - return; - } - - // pop is needed to discard the return value of - // a function - if ( !strncmp( token, "pop", 3 ) ) { - EmitByte( &segment[CODESEG], OP_POP ); - instructionCount++; - return; - } - - // address of a parameter is converted to OP_LOCAL - if ( !strncmp( token, "ADDRF", 5 ) ) { - instructionCount++; - Parse(); - v = ParseExpression(); - v = 16 + currentArgs + currentLocals + v; - EmitByte( &segment[CODESEG], OP_LOCAL ); - EmitInt( &segment[CODESEG], v ); - return; - } - - // address of a local is converted to OP_LOCAL - if ( !strncmp( token, "ADDRL", 5 ) ) { - instructionCount++; - Parse(); - v = ParseExpression(); - v = 8 + currentArgs + v; - EmitByte( &segment[CODESEG], OP_LOCAL ); - EmitInt( &segment[CODESEG], v ); - return; - } - - if ( !strcmp( token, "proc" ) ) { - char name[1024]; - - Parse(); // function name - strcpy( name, token ); - - DefineSymbol( token, instructionCount ); // segment[CODESEG].imageUsed ); - - currentLocals = ParseValue(); // locals - currentLocals = ( currentLocals + 3 ) & ~3; - currentArgs = ParseValue(); // arg marshalling - currentArgs = ( currentArgs + 3 ) & ~3; - - if ( 8 + currentLocals + currentArgs >= 32767 ) { - CodeError( "Locals > 32k in %s\n", name ); - } - - instructionCount++; - EmitByte( &segment[CODESEG], OP_ENTER ); - EmitInt( &segment[CODESEG], 8 + currentLocals + currentArgs ); - return; - } - if ( !strcmp( token, "endproc" ) ) { - Parse(); // skip the function name - v = ParseValue(); // locals - v2 = ParseValue(); // arg marshalling - - // all functions must leave something on the opstack - instructionCount++; - EmitByte( &segment[CODESEG], OP_PUSH ); - - instructionCount++; - EmitByte( &segment[CODESEG], OP_LEAVE ); - EmitInt( &segment[CODESEG], 8 + currentLocals + currentArgs ); - - return; - } - - - if ( !strcmp( token, "address" ) ) { - Parse(); - v = ParseExpression(); - - HackToSegment( DATASEG ); - EmitInt( currentSegment, v ); - return; - } - if ( !strcmp( token, "export" ) ) { - return; - } - if ( !strcmp( token, "import" ) ) { - return; - } - if ( !strcmp( token, "code" ) ) { - currentSegment = &segment[CODESEG]; - return; - } - if ( !strcmp( token, "bss" ) ) { - currentSegment = &segment[BSSSEG]; - return; - } - if ( !strcmp( token, "data" ) ) { - currentSegment = &segment[DATASEG]; - return; - } - if ( !strcmp( token, "lit" ) ) { - currentSegment = &segment[LITSEG]; - return; - } - if ( !strcmp( token, "line" ) ) { - return; - } - if ( !strcmp( token, "file" ) ) { - return; - } - - if ( !strcmp( token, "equ" ) ) { - char name[1024]; - - Parse(); - strcpy( name, token ); - Parse(); - DefineSymbol( name, atoi(token) ); - return; - } - - if ( !strcmp( token, "align" ) ) { - v = ParseValue(); - currentSegment->imageUsed = (currentSegment->imageUsed + v - 1 ) & ~( v - 1 ); - return; - } - - if ( !strcmp( token, "skip" ) ) { - v = ParseValue(); - currentSegment->imageUsed += v; - return; - } - - if ( !strcmp( token, "byte" ) ) { - v = ParseValue(); - v2 = ParseValue(); - - if ( v == 1 ) { - HackToSegment( LITSEG ); - } else if ( v == 4 ) { - HackToSegment( DATASEG ); - } else if ( v == 2 ) { - CodeError( "16 bit initialized data not supported" ); - } - - // emit little endien - for ( i = 0 ; i < v ; i++ ) { - EmitByte( currentSegment, v2 ); - v2 >>= 8; - } - return; - } - - // code labels are emited as instruction counts, not byte offsets, - // because the physical size of the code will change with - // different run time compilers and we want to minimize the - // size of the required translation table - if ( !strncmp( token, "LABEL", 5 ) ) { - Parse(); - if ( currentSegment == &segment[CODESEG] ) { - DefineSymbol( token, instructionCount ); - } else { - DefineSymbol( token, currentSegment->imageUsed ); - } - return; - } -#else /* Q3ASM_TURBO */ /* Opcode search using hash table. Since the opcodes stays mostly fixed, this may benefit even more from a tree. @@ -1771,8 +1293,6 @@ ASM(BSS) ASM(DATA) -#endif /* Q3ASM_TURBO */ - CodeError( "Unknown token: %s\n", token ); } @@ -1782,13 +1302,6 @@ ============== */ void InitTables( void ) { -#ifndef Q3ASM_TURBO - int i; - - for ( i = 0 ; i < NUM_SOURCE_OPS ; i++ ) { - opcodesHash[i] = HashString( sourceOps[i].name ); - } -#else /* Q3ASM_TURBO */ int i; symtable = hashtable_new(symtablelen); @@ -1798,7 +1311,6 @@ opcodesHash[i] = HashString( sourceOps[i].name ); hashtable_add(optable, opcodesHash[i], sourceOps + i); } -#endif /* Q3ASM_TURBO */ } @@ -1928,11 +1440,9 @@ for ( i = 0 ; i < NUM_SEGMENTS ; i++ ) { segment[i].imageUsed = (segment[i].imageUsed + 3) & ~3; } -#ifdef Q3ASM_TURBO if (passNumber == 0) { sort_symbols(); } -#endif /* Q3ASM_TURBO */ } // reserve the stack in bss @@ -1996,9 +1506,6 @@ // _chdir( "/quake3/jccode/cgame/lccout" ); // hack for vc profiler if ( argc < 2 ) { -#ifndef Q3ASM_TURBO - Error( "usage: q3asm [-o output] or q3asm -f \n" ); -#else /* Q3ASM_TURBO */ Error("Usage: %s [OPTION]... [FILES]...\n\ Assemble LCC bytecode assembly to Q3VM bytecode.\n\ \n\ @@ -2007,13 +1514,9 @@ -b BUCKETS Set symbol hash table to BUCKETS buckets\n\ -v Verbose compilation report\n\ ", argv[0]); -#endif /* Q3ASM_TURBO */ } start = I_FloatTime (); -#ifndef Q3ASM_TURBO - InitTables(); -#endif /* !Q3ASM_TURBO */ // default filename is "q3asm" strcpy( outputFilename, "q3asm" ); @@ -2042,7 +1545,6 @@ continue; } -#ifdef Q3ASM_TURBO if (!strcmp(argv[i], "-b")) { if (i == argc - 1) { Error("-b requires an argument"); @@ -2051,7 +1553,6 @@ symtablelen = atoi(argv[i]); continue; } -#endif /* Q3ASM_TURBO */ if( !strcmp( argv[ i ], "-v" ) ) { /* Verbosity option added by Timbo, 2002.09.14. @@ -2077,12 +1578,9 @@ numAsmFiles++; } -#ifdef Q3ASM_TURBO InitTables(); -#endif /* Q3ASM_TURBO */ Assemble(); -#ifdef Q3ASM_TURBO { symbol_t *s; @@ -2095,7 +1593,6 @@ hashtable_stats(optable); } } -#endif /* Q3ASM_TURBO */ end = I_FloatTime (); report ("%5.0f seconds elapsed\n", end-start); Deleted: trunk/code/tools/asm/qfiles.h =================================================================== --- trunk/code/tools/asm/qfiles.h 2005-10-11 01:52:29 UTC (rev 154) +++ trunk/code/tools/asm/qfiles.h 2005-10-13 01:55:31 UTC (rev 155) @@ -1,485 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -#ifndef __QFILES_H__ -#define __QFILES_H__ - -// -// qfiles.h: quake file formats -// This file must be identical in the quake and utils directories -// - -// surface geometry should not exceed these limits -#define SHADER_MAX_VERTEXES 1000 -#define SHADER_MAX_INDEXES (6*SHADER_MAX_VERTEXES) - - -// the maximum size of game reletive pathnames -#define MAX_QPATH 64 - -/* -======================================================================== - -QVM files - -======================================================================== -*/ - -#define VM_MAGIC 0x12721444 -typedef struct { - int vmMagic; - - int instructionCount; - - int codeOffset; - int codeLength; - - int dataOffset; - int dataLength; - int litLength; // ( dataLength - litLength ) should be byteswapped on load - int bssLength; // zero filled memory appended to datalength -} vmHeader_t; - - -/* -======================================================================== - -PCX files are used for 8 bit images - -======================================================================== -*/ - -typedef struct { - char manufacturer; - char version; - char encoding; - char bits_per_pixel; - unsigned short xmin,ymin,xmax,ymax; - unsigned short hres,vres; - unsigned char palette[48]; - char reserved; - char color_planes; - unsigned short bytes_per_line; - unsigned short palette_type; - char filler[58]; - unsigned char data; // unbounded -} pcx_t; - - -/* -======================================================================== - -TGA files are used for 24/32 bit images - -======================================================================== -*/ - -typedef struct _TargaHeader { - unsigned char id_length, colormap_type, image_type; - unsigned short colormap_index, colormap_length; - unsigned char colormap_size; - unsigned short x_origin, y_origin, width, height; - unsigned char pixel_size, attributes; -} TargaHeader; - - - -/* -======================================================================== - -.MD3 triangle model file format - -======================================================================== -*/ - -#define MD3_IDENT (('3'<<24)+('P'<<16)+('D'<<8)+'I') -#define MD3_VERSION 15 - -// limits -#define MD3_MAX_LODS 3 -#define MD3_MAX_TRIANGLES 8192 // per surface -#define MD3_MAX_VERTS 4096 // per surface -#define MD3_MAX_SHADERS 256 // per surface -#define MD3_MAX_FRAMES 1024 // per model -#define MD3_MAX_SURFACES 32 // per model -#define MD3_MAX_TAGS 16 // per frame - -// vertex scales -#define MD3_XYZ_SCALE (1.0/64) - -typedef struct md3Frame_s { - vec3_t bounds[2]; - vec3_t localOrigin; - float radius; - char name[16]; -} md3Frame_t; - -typedef struct md3Tag_s { - char name[MAX_QPATH]; // tag name - vec3_t origin; - vec3_t axis[3]; -} md3Tag_t; - -/* -** md3Surface_t -** -** CHUNK SIZE -** header sizeof( md3Surface_t ) -** shaders sizeof( md3Shader_t ) * numShaders -** triangles[0] sizeof( md3Triangle_t ) * numTriangles -** st sizeof( md3St_t ) * numVerts -** XyzNormals sizeof( md3XyzNormal_t ) * numVerts * numFrames -*/ -typedef struct { - int ident; // - - char name[MAX_QPATH]; // polyset name - - int flags; - int numFrames; // all surfaces in a model should have the same - - int numShaders; // all surfaces in a model should have the same - int numVerts; - - int numTriangles; - int ofsTriangles; - - int ofsShaders; // offset from start of md3Surface_t - int ofsSt; // texture coords are common for all frames - int ofsXyzNormals; // numVerts * numFrames - - int ofsEnd; // next surface follows -} md3Surface_t; - -typedef struct { - char name[MAX_QPATH]; - int shaderIndex; // for in-game use -} md3Shader_t; - -typedef struct { - int indexes[3]; -} md3Triangle_t; - -typedef struct { - float st[2]; -} md3St_t; - -typedef struct { - short xyz[3]; - short normal; -} md3XyzNormal_t; - -typedef struct { - int ident; - int version; - - char name[MAX_QPATH]; // model name - - int flags; - - int numFrames; - int numTags; - int numSurfaces; - - int numSkins; - - int ofsFrames; // offset for first frame - int ofsTags; // numFrames * numTags - int ofsSurfaces; // first surface, others follow - - int ofsEnd; // end of file -} md3Header_t; - -/* -============================================================================== - -MD4 file format - -============================================================================== -*/ - -#define MD4_IDENT (('4'<<24)+('P'<<16)+('D'<<8)+'I') -#define MD4_VERSION 1 -#define MD4_MAX_BONES 128 - -typedef struct { - int boneIndex; // these are indexes into the boneReferences, - float boneWeight; // not the global per-frame bone list - vec3_t offset; -} md4Weight_t; - -typedef struct { - vec3_t normal; - vec2_t texCoords; - int numWeights; - md4Weight_t weights[1]; // variable sized -} md4Vertex_t; - -typedef struct { - int indexes[3]; -} md4Triangle_t; - -typedef struct { - int ident; - - char name[MAX_QPATH]; // polyset name - char shader[MAX_QPATH]; - int shaderIndex; // for in-game use - - int ofsHeader; // this will be a negative number - - int numVerts; - int ofsVerts; - - int numTriangles; - int ofsTriangles; - - // Bone references are a set of ints representing all the bones - // present in any vertex weights for this surface. This is - // needed because a model may have surfaces that need to be - // drawn at different sort times, and we don't want to have - // to re-interpolate all the bones for each surface. - int numBoneReferences; - int ofsBoneReferences; - - int ofsEnd; // next surface follows -} md4Surface_t; - -typedef struct { - float matrix[3][4]; -} md4Bone_t; - -typedef struct { - vec3_t bounds[2]; // bounds of all surfaces of all LOD's for this frame - vec3_t localOrigin; // midpoint of bounds, used for sphere cull - float radius; // dist from localOrigin to corner - char name[16]; - md4Bone_t bones[1]; // [numBones] -} md4Frame_t; - -typedef struct { - int numSurfaces; - int ofsSurfaces; // first surface, others follow - int ofsEnd; // next lod follows -} md4LOD_t; - -typedef struct { - int ident; - int version; - - char name[MAX_QPATH]; // model name - - // frames and bones are shared by all levels of detail - int numFrames; - int numBones; - int ofsFrames; // md4Frame_t[numFrames] - - // each level of detail has completely separate sets of surfaces - int numLODs; - int ofsLODs; - - int ofsEnd; // end of file -} md4Header_t; - - -/* -============================================================================== - - .BSP file format - -============================================================================== -*/ - - -#define BSP_IDENT (('P'<<24)+('S'<<16)+('B'<<8)+'I') - // little-endian "IBSP" - -#define BSP_VERSION 46 - - -// there shouldn't be any problem with increasing these values at the -// expense of more memory allocation in the utilities -#define MAX_MAP_MODELS 0x400 -#define MAX_MAP_BRUSHES 0x8000 -#define MAX_MAP_ENTITIES 0x800 -#define MAX_MAP_ENTSTRING 0x40000 -#define MAX_MAP_SHADERS 0x400 - -#define MAX_MAP_AREAS 0x100 // MAX_MAP_AREA_BYTES in q_shared must match! -#define MAX_MAP_FOGS 0x100 -#define MAX_MAP_PLANES 0x20000 -#define MAX_MAP_NODES 0x20000 -#define MAX_MAP_BRUSHSIDES 0x20000 -#define MAX_MAP_LEAFS 0x20000 -#define MAX_MAP_LEAFFACES 0x20000 -#define MAX_MAP_LEAFBRUSHES 0x40000 -#define MAX_MAP_PORTALS 0x20000 -#define MAX_MAP_LIGHTING 0x800000 -#define MAX_MAP_LIGHTGRID 0x800000 -#define MAX_MAP_VISIBILITY 0x200000 - -#define MAX_MAP_DRAW_SURFS 0x20000 -#define MAX_MAP_DRAW_VERTS 0x80000 -#define MAX_MAP_DRAW_INDEXES 0x80000 - - -// key / value pair sizes in the entities lump -#define MAX_KEY 32 -#define MAX_VALUE 1024 - -// the editor uses these predefined yaw angles to orient entities up or down -#define ANGLE_UP -1 -#define ANGLE_DOWN -2 - -#define LIGHTMAP_WIDTH 128 -#define LIGHTMAP_HEIGHT 128 - - -//============================================================================= - - -typedef struct { - int fileofs, filelen; -} lump_t; - -#define LUMP_ENTITIES 0 -#define LUMP_SHADERS 1 -#define LUMP_PLANES 2 -#define LUMP_NODES 3 -#define LUMP_LEAFS 4 -#define LUMP_LEAFSURFACES 5 -#define LUMP_LEAFBRUSHES 6 -#define LUMP_MODELS 7 -#define LUMP_BRUSHES 8 -#define LUMP_BRUSHSIDES 9 -#define LUMP_DRAWVERTS 10 -#define LUMP_DRAWINDEXES 11 -#define LUMP_FOGS 12 -#define LUMP_SURFACES 13 -#define LUMP_LIGHTMAPS 14 -#define LUMP_LIGHTGRID 15 -#define LUMP_VISIBILITY 16 -#define HEADER_LUMPS 17 - -typedef struct { - int ident; - int version; - - lump_t lumps[HEADER_LUMPS]; -} dheader_t; - -typedef struct { - float mins[3], maxs[3]; - int firstSurface, numSurfaces; - int firstBrush, numBrushes; -} dmodel_t; - -typedef struct { - char shader[MAX_QPATH]; - int surfaceFlags; - int contentFlags; -} dshader_t; - -// planes x^1 is allways the opposite of plane x - -typedef struct { - float normal[3]; - float dist; -} dplane_t; - -typedef struct { - int planeNum; - int children[2]; // negative numbers are -(leafs+1), not nodes - int mins[3]; // for frustom culling - int maxs[3]; -} dnode_t; - -typedef struct { - int cluster; // -1 = opaque cluster (do I still store these?) - int area; - - int mins[3]; // for frustum culling - int maxs[3]; - - int firstLeafSurface; - int numLeafSurfaces; - - int firstLeafBrush; - int numLeafBrushes; -} dleaf_t; - -typedef struct { - int planeNum; // positive plane side faces out of the leaf - int shaderNum; -} dbrushside_t; - -typedef struct { - int firstSide; - int numSides; - int shaderNum; // the shader that determines the contents flags -} dbrush_t; - -typedef struct { - char shader[MAX_QPATH]; - int brushNum; - int visibleSide; // the brush side that ray tests need to clip against (-1 == none) -} dfog_t; - -typedef struct { - vec3_t xyz; - float st[2]; - float lightmap[2]; - vec3_t normal; - byte color[4]; -} drawVert_t; - -typedef enum { - MST_BAD, - MST_PLANAR, - MST_PATCH, - MST_TRIANGLE_SOUP, - MST_FLARE -} mapSurfaceType_t; - -typedef struct { - int shaderNum; - int fogNum; - int surfaceType; - - int firstVert; - int numVerts; - - int firstIndex; - int numIndexes; - - int lightmapNum; - int lightmapX, lightmapY; - int lightmapWidth, lightmapHeight; - - vec3_t lightmapOrigin; - vec3_t lightmapVecs[3]; // for patches, [0] and [1] are lodbounds - - int patchWidth; - int patchHeight; -} dsurface_t; - - -#endif From DONOTREPLY at icculus.org Thu Oct 13 10:47:00 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 13 Oct 2005 10:47:00 -0400 Subject: r156 - in trunk/code: qcommon tools/asm Message-ID: <20051013144700.11067.qmail@icculus.org> Author: tma Date: 2005-10-13 10:47:00 -0400 (Thu, 13 Oct 2005) New Revision: 156 Modified: trunk/code/qcommon/qfiles.h trunk/code/qcommon/vm.c trunk/code/qcommon/vm_local.h trunk/code/qcommon/vm_x86.c trunk/code/tools/asm/q3asm.c Log: * (Non-trivial) fix to the "opStack corrupted in compiled code" bug Modified: trunk/code/qcommon/qfiles.h =================================================================== --- trunk/code/qcommon/qfiles.h 2005-10-13 01:55:31 UTC (rev 155) +++ trunk/code/qcommon/qfiles.h 2005-10-13 14:47:00 UTC (rev 156) @@ -43,7 +43,8 @@ ======================================================================== */ -#define VM_MAGIC 0x12721444 +#define VM_MAGIC 0x12721444 +#define VM_MAGIC_VER2 0x12721445 typedef struct { int vmMagic; @@ -56,6 +57,9 @@ int dataLength; int litLength; // ( dataLength - litLength ) should be byteswapped on load int bssLength; // zero filled memory appended to datalength + + //!!! below here is VM_MAGIC_VER2 !!! + int jtrgLength; // number of jump table targets } vmHeader_t; Modified: trunk/code/qcommon/vm.c =================================================================== --- trunk/code/qcommon/vm.c 2005-10-13 01:55:31 UTC (rev 155) +++ trunk/code/qcommon/vm.c 2005-10-13 14:47:00 UTC (rev 156) @@ -381,7 +381,7 @@ // load the image Com_Printf( "VM_Restart()\n", filename ); Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", vm->name ); - Com_Printf( "Loading vm file %s.\n", filename ); + Com_Printf( "Loading vm file %s...\n", filename ); length = FS_ReadFile( filename, (void **)&header ); if ( !header ) { Com_Error( ERR_DROP, "VM_Restart failed.\n" ); @@ -392,14 +392,28 @@ ((int *)header)[i] = LittleLong( ((int *)header)[i] ); } - // validate - if ( header->vmMagic != VM_MAGIC - || header->bssLength < 0 - || header->dataLength < 0 - || header->litLength < 0 - || header->codeLength <= 0 ) { - VM_Free( vm ); - Com_Error( ERR_FATAL, "%s has bad header", filename ); + if( header->vmMagic == VM_MAGIC_VER2 ) { + Com_Printf( "...which has vmMagic VM_MAGIC_VER2\n" ); + // validate + if ( header->vmMagic != VM_MAGIC_VER2 + || header->jtrgLength < 0 + || header->bssLength < 0 + || header->dataLength < 0 + || header->litLength < 0 + || header->codeLength <= 0 ) { + VM_Free( vm ); + Com_Error( ERR_FATAL, "%s has bad header", filename ); + } + } else { + // validate + if ( header->vmMagic != VM_MAGIC + || header->bssLength < 0 + || header->dataLength < 0 + || header->litLength < 0 + || header->codeLength <= 0 ) { + VM_Free( vm ); + Com_Error( ERR_FATAL, "%s has bad header", filename ); + } } // round up to next power of 2 so all data operations can @@ -420,6 +434,19 @@ *(int *)(vm->dataBase + i) = LittleLong( *(int *)(vm->dataBase + i ) ); } + if( header->vmMagic == VM_MAGIC_VER2 ) { + vm->numJumpTableTargets = header->jtrgLength >> 2; + Com_Printf( "Loading %d jump table targets\n", vm->numJumpTableTargets ); + Com_Memset( vm->jumpTableTargets, 0, header->jtrgLength ); + Com_Memcpy( vm->jumpTableTargets, (byte *)header + header->dataOffset + + header->dataLength + header->litLength, header->jtrgLength ); + + // byte swap the longs + for ( i = 0 ; i < header->jtrgLength ; i += 4 ) { + *(int *)(vm->jumpTableTargets + i) = LittleLong( *(int *)(vm->jumpTableTargets + i ) ); + } + } + // free the original file FS_FreeFile( header ); @@ -504,7 +531,7 @@ // load the image Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", vm->name ); - Com_Printf( "Loading vm file %s.\n", filename ); + Com_Printf( "Loading vm file %s...\n", filename ); length = FS_ReadFile( filename, (void **)&header ); if ( !header ) { Com_Printf( "Failed.\n" ); @@ -517,14 +544,28 @@ ((int *)header)[i] = LittleLong( ((int *)header)[i] ); } - // validate - if ( header->vmMagic != VM_MAGIC - || header->bssLength < 0 - || header->dataLength < 0 - || header->litLength < 0 - || header->codeLength <= 0 ) { - VM_Free( vm ); - Com_Error( ERR_FATAL, "%s has bad header", filename ); + if( header->vmMagic == VM_MAGIC_VER2 ) { + Com_Printf( "...which has vmMagic VM_MAGIC_VER2\n" ); + // validate + if ( header->vmMagic != VM_MAGIC_VER2 + || header->jtrgLength < 0 + || header->bssLength < 0 + || header->dataLength < 0 + || header->litLength < 0 + || header->codeLength <= 0 ) { + VM_Free( vm ); + Com_Error( ERR_FATAL, "%s has bad header", filename ); + } + } else { + // validate + if ( header->vmMagic != VM_MAGIC + || header->bssLength < 0 + || header->dataLength < 0 + || header->litLength < 0 + || header->codeLength <= 0 ) { + VM_Free( vm ); + Com_Error( ERR_FATAL, "%s has bad header", filename ); + } } // round up to next power of 2 so all data operations can @@ -546,6 +587,19 @@ *(int *)(vm->dataBase + i) = LittleLong( *(int *)(vm->dataBase + i ) ); } + if( header->vmMagic == VM_MAGIC_VER2 ) { + vm->numJumpTableTargets = header->jtrgLength >> 2; + Com_Printf( "Loading %d jump table targets\n", vm->numJumpTableTargets ); + vm->jumpTableTargets = Hunk_Alloc( header->jtrgLength, h_high ); + Com_Memcpy( vm->jumpTableTargets, (byte *)header + header->dataOffset + + header->dataLength + header->litLength, header->jtrgLength ); + + // byte swap the longs + for ( i = 0 ; i < header->jtrgLength ; i += 4 ) { + *(int *)(vm->jumpTableTargets + i) = LittleLong( *(int *)(vm->jumpTableTargets + i ) ); + } + } + // allocate space for the jump targets, which will be filled in by the compile/prep functions vm->instructionPointersLength = header->instructionCount * 4; vm->instructionPointers = Hunk_Alloc( vm->instructionPointersLength, h_high ); Modified: trunk/code/qcommon/vm_local.h =================================================================== --- trunk/code/qcommon/vm_local.h 2005-10-13 01:55:31 UTC (rev 155) +++ trunk/code/qcommon/vm_local.h 2005-10-13 14:47:00 UTC (rev 156) @@ -161,6 +161,9 @@ // fqpath member added 7/20/02 by T.Ray char fqpath[MAX_QPATH+1] ; + + byte *jumpTableTargets; + int numJumpTableTargets; }; Modified: trunk/code/qcommon/vm_x86.c =================================================================== --- trunk/code/qcommon/vm_x86.c 2005-10-13 01:55:31 UTC (rev 155) +++ trunk/code/qcommon/vm_x86.c 2005-10-13 14:47:00 UTC (rev 156) @@ -419,6 +419,12 @@ Com_Memset(jused, 0, header->instructionCount+2); + // ensure that the optimisation pass knows about all the jump + // table targets + for( i = 0; i < vm->numJumpTableTargets; i++ ) { + jused[ *(int *)(vm->jumpTableTargets + ( i * sizeof( int ) ) ) ] = 1; + } + for(pass=0;pass<2;pass++) { oc0 = -23423; oc1 = -234354; Modified: trunk/code/tools/asm/q3asm.c =================================================================== --- trunk/code/tools/asm/q3asm.c 2005-10-13 01:55:31 UTC (rev 155) +++ trunk/code/tools/asm/q3asm.c 2005-10-13 14:47:00 UTC (rev 156) @@ -135,6 +135,7 @@ DATASEG, // initialized 32 bit data, will be byte swapped LITSEG, // strings BSSSEG, // 0 filled + JTRGSEG, // psuedo-segment that contains only jump table targets NUM_SEGMENTS } segmentName_t; @@ -989,6 +990,8 @@ /* Addresses are 32 bits wide, and therefore go into data segment. */ HackToSegment( DATASEG ); EmitInt( currentSegment, v ); + if( passNumber == 1 && token[ 0 ] == '$' ) // crude test for labels + EmitInt( &segment[ JTRGSEG ], v ); return 1; } return 0; @@ -1375,7 +1378,7 @@ return; } - header.vmMagic = VM_MAGIC; + header.vmMagic = VM_MAGIC_VER2; header.instructionCount = instructionCount; header.codeOffset = sizeof( header ); header.codeLength = segment[CODESEG].imageUsed; @@ -1383,6 +1386,7 @@ header.dataLength = segment[DATASEG].imageUsed; header.litLength = segment[LITSEG].imageUsed; header.bssLength = segment[BSSSEG].imageUsed; + header.jtrgLength = segment[JTRGSEG].imageUsed; report( "Writing to %s\n", imageName ); @@ -1392,6 +1396,7 @@ SafeWrite( f, &segment[CODESEG].image, segment[CODESEG].imageUsed ); SafeWrite( f, &segment[DATASEG].image, segment[DATASEG].imageUsed ); SafeWrite( f, &segment[LITSEG].image, segment[LITSEG].imageUsed ); + SafeWrite( f, &segment[JTRGSEG].image, segment[JTRGSEG].imageUsed ); fclose( f ); } @@ -1417,6 +1422,7 @@ for ( passNumber = 0 ; passNumber < 2 ; passNumber++ ) { segment[LITSEG].segmentBase = segment[DATASEG].imageUsed; segment[BSSSEG].segmentBase = segment[LITSEG].segmentBase + segment[LITSEG].imageUsed; + segment[JTRGSEG].segmentBase = segment[BSSSEG].segmentBase + segment[BSSSEG].imageUsed; for ( i = 0 ; i < NUM_SEGMENTS ; i++ ) { segment[i].imageUsed = 0; } From DONOTREPLY at icculus.org Thu Oct 13 19:08:45 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 13 Oct 2005 19:08:45 -0400 Subject: r157 - trunk/code/qcommon Message-ID: <20051013230845.27172.qmail@icculus.org> Author: tma Date: 2005-10-13 19:08:45 -0400 (Thu, 13 Oct 2005) New Revision: 157 Modified: trunk/code/qcommon/vm.c Log: * Fixed some annoying code duplication Modified: trunk/code/qcommon/vm.c =================================================================== --- trunk/code/qcommon/vm.c 2005-10-13 14:47:00 UTC (rev 156) +++ trunk/code/qcommon/vm.c 2005-10-13 23:08:45 UTC (rev 157) @@ -351,40 +351,25 @@ /* ================= -VM_Restart +VM_LoadQVM -Reload the data, but leave everything else in place -This allows a server to do a map_restart without changing memory allocation +Load a .qvm file ================= */ -vm_t *VM_Restart( vm_t *vm ) { - vmHeader_t *header; +vmHeader_t *VM_LoadQVM( vm_t *vm, vmHeader_t *header, qboolean alloc ) { int length; int dataLength; int i; char filename[MAX_QPATH]; - // DLL's can't be restarted in place - if ( vm->dllHandle ) { - char name[MAX_QPATH]; - long (*systemCall)( long *parms ); - - systemCall = vm->systemCall; - Q_strncpyz( name, vm->name, sizeof( name ) ); - - VM_Free( vm ); - - vm = VM_Create( name, systemCall, VMI_NATIVE ); - return vm; - } - // load the image - Com_Printf( "VM_Restart()\n", filename ); Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", vm->name ); Com_Printf( "Loading vm file %s...\n", filename ); length = FS_ReadFile( filename, (void **)&header ); if ( !header ) { - Com_Error( ERR_DROP, "VM_Restart failed.\n" ); + Com_Printf( "Failed.\n" ); + VM_Free( vm ); + return NULL; } // byte swap the header @@ -423,8 +408,14 @@ } dataLength = 1 << i; - // clear the data - Com_Memset( vm->dataBase, 0, dataLength ); + if( alloc ) { + // allocate zero filled space for initialized and uninitialized data + vm->dataBase = Hunk_Alloc( dataLength, h_high ); + vm->dataMask = dataLength - 1; + } else { + // clear the data + Com_Memset( vm->dataBase, 0, dataLength ); + } // copy the intialized data Com_Memcpy( vm->dataBase, (byte *)header + header->dataOffset, header->dataLength + header->litLength ); @@ -437,7 +428,13 @@ if( header->vmMagic == VM_MAGIC_VER2 ) { vm->numJumpTableTargets = header->jtrgLength >> 2; Com_Printf( "Loading %d jump table targets\n", vm->numJumpTableTargets ); - Com_Memset( vm->jumpTableTargets, 0, header->jtrgLength ); + + if( alloc ) { + vm->jumpTableTargets = Hunk_Alloc( header->jtrgLength, h_high ); + } else { + Com_Memset( vm->jumpTableTargets, 0, header->jtrgLength ); + } + Com_Memcpy( vm->jumpTableTargets, (byte *)header + header->dataOffset + header->dataLength + header->litLength, header->jtrgLength ); @@ -447,6 +444,42 @@ } } + return header; +} + +/* +================= +VM_Restart + +Reload the data, but leave everything else in place +This allows a server to do a map_restart without changing memory allocation +================= +*/ +vm_t *VM_Restart( vm_t *vm ) { + vmHeader_t *header; + + // DLL's can't be restarted in place + if ( vm->dllHandle ) { + char name[MAX_QPATH]; + long (*systemCall)( long *parms ); + + systemCall = vm->systemCall; + Q_strncpyz( name, vm->name, sizeof( name ) ); + + VM_Free( vm ); + + vm = VM_Create( name, systemCall, VMI_NATIVE ); + return vm; + } + + // load the image + Com_Printf( "VM_Restart()\n" ); + + if( !( header = VM_LoadQVM( vm, header, qfalse ) ) ) { + Com_Error( ERR_DROP, "VM_Restart failed.\n" ); + return NULL; + } + // free the original file FS_FreeFile( header ); @@ -468,10 +501,7 @@ vmInterpret_t interpret ) { vm_t *vm; vmHeader_t *header; - int length; - int dataLength; int i, remaining; - char filename[MAX_QPATH]; if ( !module || !module[0] || !systemCalls ) { Com_Error( ERR_FATAL, "VM_Create: bad parms" ); @@ -530,76 +560,10 @@ #endif // load the image - Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", vm->name ); - Com_Printf( "Loading vm file %s...\n", filename ); - length = FS_ReadFile( filename, (void **)&header ); - if ( !header ) { - Com_Printf( "Failed.\n" ); - VM_Free( vm ); + if( !( header = VM_LoadQVM( vm, header, qtrue ) ) ) { return NULL; } - // byte swap the header - for ( i = 0 ; i < sizeof( *header ) / 4 ; i++ ) { - ((int *)header)[i] = LittleLong( ((int *)header)[i] ); - } - - if( header->vmMagic == VM_MAGIC_VER2 ) { - Com_Printf( "...which has vmMagic VM_MAGIC_VER2\n" ); - // validate - if ( header->vmMagic != VM_MAGIC_VER2 - || header->jtrgLength < 0 - || header->bssLength < 0 - || header->dataLength < 0 - || header->litLength < 0 - || header->codeLength <= 0 ) { - VM_Free( vm ); - Com_Error( ERR_FATAL, "%s has bad header", filename ); - } - } else { - // validate - if ( header->vmMagic != VM_MAGIC - || header->bssLength < 0 - || header->dataLength < 0 - || header->litLength < 0 - || header->codeLength <= 0 ) { - VM_Free( vm ); - Com_Error( ERR_FATAL, "%s has bad header", filename ); - } - } - - // round up to next power of 2 so all data operations can - // be mask protected - dataLength = header->dataLength + header->litLength + header->bssLength; - for ( i = 0 ; dataLength > ( 1 << i ) ; i++ ) { - } - dataLength = 1 << i; - - // allocate zero filled space for initialized and uninitialized data - vm->dataBase = Hunk_Alloc( dataLength, h_high ); - vm->dataMask = dataLength - 1; - - // copy the intialized data - Com_Memcpy( vm->dataBase, (byte *)header + header->dataOffset, header->dataLength + header->litLength ); - - // byte swap the longs - for ( i = 0 ; i < header->dataLength ; i += 4 ) { - *(int *)(vm->dataBase + i) = LittleLong( *(int *)(vm->dataBase + i ) ); - } - - if( header->vmMagic == VM_MAGIC_VER2 ) { - vm->numJumpTableTargets = header->jtrgLength >> 2; - Com_Printf( "Loading %d jump table targets\n", vm->numJumpTableTargets ); - vm->jumpTableTargets = Hunk_Alloc( header->jtrgLength, h_high ); - Com_Memcpy( vm->jumpTableTargets, (byte *)header + header->dataOffset + - header->dataLength + header->litLength, header->jtrgLength ); - - // byte swap the longs - for ( i = 0 ; i < header->jtrgLength ; i += 4 ) { - *(int *)(vm->jumpTableTargets + i) = LittleLong( *(int *)(vm->jumpTableTargets + i ) ); - } - } - // allocate space for the jump targets, which will be filled in by the compile/prep functions vm->instructionPointersLength = header->instructionCount * 4; vm->instructionPointers = Hunk_Alloc( vm->instructionPointersLength, h_high ); From DONOTREPLY at icculus.org Fri Oct 14 13:09:03 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 14 Oct 2005 13:09:03 -0400 Subject: r158 - trunk/code/qcommon Message-ID: <20051014170903.8473.qmail@icculus.org> Author: tma Date: 2005-10-14 13:09:03 -0400 (Fri, 14 Oct 2005) New Revision: 158 Modified: trunk/code/qcommon/vm.c Log: * Adjusted VM_LoadQVM interface Modified: trunk/code/qcommon/vm.c =================================================================== --- trunk/code/qcommon/vm.c 2005-10-13 23:08:45 UTC (rev 157) +++ trunk/code/qcommon/vm.c 2005-10-14 17:09:03 UTC (rev 158) @@ -356,11 +356,12 @@ Load a .qvm file ================= */ -vmHeader_t *VM_LoadQVM( vm_t *vm, vmHeader_t *header, qboolean alloc ) { - int length; - int dataLength; - int i; - char filename[MAX_QPATH]; +vmHeader_t *VM_LoadQVM( vm_t *vm, qboolean alloc ) { + int length; + int dataLength; + int i; + char filename[MAX_QPATH]; + vmHeader_t *header; // load the image Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", vm->name ); @@ -475,7 +476,7 @@ // load the image Com_Printf( "VM_Restart()\n" ); - if( !( header = VM_LoadQVM( vm, header, qfalse ) ) ) { + if( !( header = VM_LoadQVM( vm, qfalse ) ) ) { Com_Error( ERR_DROP, "VM_Restart failed.\n" ); return NULL; } @@ -560,7 +561,7 @@ #endif // load the image - if( !( header = VM_LoadQVM( vm, header, qtrue ) ) ) { + if( !( header = VM_LoadQVM( vm, qtrue ) ) ) { return NULL; } From DONOTREPLY at icculus.org Fri Oct 14 16:50:01 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 14 Oct 2005 16:50:01 -0400 Subject: r159 - trunk Message-ID: <20051014205001.31898.qmail@icculus.org> Author: zakk Date: 2005-10-14 16:50:01 -0400 (Fri, 14 Oct 2005) New Revision: 159 Added: trunk/todo Log: todo! Added: trunk/todo =================================================================== --- trunk/todo 2005-10-14 17:09:03 UTC (rev 158) +++ trunk/todo 2005-10-14 20:50:01 UTC (rev 159) @@ -0,0 +1,6 @@ +Fix sensitivity + + +xplat: +Amiga OS +PSP From DONOTREPLY at icculus.org Fri Oct 14 18:58:29 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 14 Oct 2005 18:58:29 -0400 Subject: r160 - in trunk/code: client unix Message-ID: <20051014225829.10258.qmail@icculus.org> Author: tma Date: 2005-10-14 18:58:28 -0400 (Fri, 14 Oct 2005) New Revision: 160 Modified: trunk/code/client/cl_input.c trunk/code/client/cl_main.c trunk/code/client/client.h trunk/code/unix/linux_glimp.c trunk/code/unix/sdl_glimp.c Log: * Removed hard coded mouse acceleration in the unix build(s) * Added CVAR_ROM cl_platformSensitivity to normalise the scale of cl_sensitivity across platforms Modified: trunk/code/client/cl_input.c =================================================================== --- trunk/code/client/cl_input.c 2005-10-14 20:50:01 UTC (rev 159) +++ trunk/code/client/cl_input.c 2005-10-14 22:58:28 UTC (rev 160) @@ -435,7 +435,8 @@ cl.mouseDy[cl.mouseIndex] = 0; rate = sqrt( mx * mx + my * my ) / (float)frame_msec; - accelSensitivity = cl_sensitivity->value + rate * cl_mouseAccel->value; + accelSensitivity = ( cl_sensitivity->value * + cl_platformSensitivity->value ) + rate * cl_mouseAccel->value; // scale by FOV accelSensitivity *= cl.cgameSensitivity; Modified: trunk/code/client/cl_main.c =================================================================== --- trunk/code/client/cl_main.c 2005-10-14 20:50:01 UTC (rev 159) +++ trunk/code/client/cl_main.c 2005-10-14 22:58:28 UTC (rev 160) @@ -48,6 +48,7 @@ cvar_t *cl_freelook; cvar_t *cl_sensitivity; +cvar_t *cl_platformSensitivity; cvar_t *cl_mouseAccel; cvar_t *cl_showMouseRate; @@ -2307,6 +2308,7 @@ cl_run = Cvar_Get ("cl_run", "1", CVAR_ARCHIVE); cl_sensitivity = Cvar_Get ("sensitivity", "5", CVAR_ARCHIVE); + cl_platformSensitivity = Cvar_Get ("cl_platformSensitivity", "1.0", CVAR_ROM); cl_mouseAccel = Cvar_Get ("cl_mouseAccel", "0", CVAR_ARCHIVE); cl_freelook = Cvar_Get( "cl_freelook", "1", CVAR_ARCHIVE ); Modified: trunk/code/client/client.h =================================================================== --- trunk/code/client/client.h 2005-10-14 20:50:01 UTC (rev 159) +++ trunk/code/client/client.h 2005-10-14 22:58:28 UTC (rev 160) @@ -330,6 +330,7 @@ extern cvar_t *cl_anglespeedkey; extern cvar_t *cl_sensitivity; +extern cvar_t *cl_platformSensitivity; extern cvar_t *cl_freelook; extern cvar_t *cl_mouseAccel; Modified: trunk/code/unix/linux_glimp.c =================================================================== --- trunk/code/unix/linux_glimp.c 2005-10-14 20:50:01 UTC (rev 159) +++ trunk/code/unix/linux_glimp.c 2005-10-14 22:58:28 UTC (rev 160) @@ -573,14 +573,8 @@ { if (in_dgamouse->value) { - if (abs(event.xmotion.x_root) > 1) - mx += event.xmotion.x_root * 2; - else - mx += event.xmotion.x_root; - if (abs(event.xmotion.y_root) > 1) - my += event.xmotion.y_root * 2; - else - my += event.xmotion.y_root; + mx += event.xmotion.x_root; + my += event.xmotion.y_root; if (t - mouseResetTime > MOUSE_RESET_DELAY ) { Sys_QueEvent( t, SE_MOUSE, mx, my, 0, NULL ); @@ -604,14 +598,8 @@ dx = ((int)event.xmotion.x - mwx); dy = ((int)event.xmotion.y - mwy); - if (abs(dx) > 1) - mx += dx * 2; - else - mx += dx; - if (abs(dy) > 1) - my += dy * 2; - else - my += dy; + mx += dx; + my += dy; mwx = event.xmotion.x; mwy = event.xmotion.y; @@ -1725,6 +1713,8 @@ in_joystickDebug = Cvar_Get ("in_debugjoystick", "0", CVAR_TEMP); joy_threshold = Cvar_Get ("joy_threshold", "0.15", CVAR_ARCHIVE); // FIXME: in_joythreshold + Cvar_Set( "cl_platformSensitivity", "2.0" ); + if (in_mouse->value) mouse_avail = qtrue; else Modified: trunk/code/unix/sdl_glimp.c =================================================================== --- trunk/code/unix/sdl_glimp.c 2005-10-14 20:50:01 UTC (rev 159) +++ trunk/code/unix/sdl_glimp.c 2005-10-14 22:58:28 UTC (rev 160) @@ -320,10 +320,6 @@ case SDL_MOUSEMOTION: if (mouse_active) { - if (abs(e.motion.xrel) > 1) - e.motion.xrel *= 2; - if (abs(e.motion.yrel) > 1) - e.motion.yrel *= 2; Sys_QueEvent( t, SE_MOUSE, e.motion.xrel, e.motion.yrel, 0, NULL ); } break; @@ -1204,6 +1200,8 @@ in_joystickDebug = Cvar_Get ("in_debugjoystick", "0", CVAR_TEMP); joy_threshold = Cvar_Get ("joy_threshold", "0.15", CVAR_ARCHIVE); // FIXME: in_joythreshold + Cvar_Set( "cl_platformSensitivity", "2.0" ); + if (in_mouse->value) mouse_avail = qtrue; else From DONOTREPLY at icculus.org Fri Oct 14 19:00:39 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 14 Oct 2005 19:00:39 -0400 Subject: r161 - trunk/code/unix Message-ID: <20051014230039.10605.qmail@icculus.org> Author: tma Date: 2005-10-14 19:00:39 -0400 (Fri, 14 Oct 2005) New Revision: 161 Modified: trunk/code/unix/sdl_glimp.c Log: * Added a little hack to support the console key on french keyboards Modified: trunk/code/unix/sdl_glimp.c =================================================================== --- trunk/code/unix/sdl_glimp.c 2005-10-14 22:58:28 UTC (rev 160) +++ trunk/code/unix/sdl_glimp.c 2005-10-14 23:00:39 UTC (rev 161) @@ -213,6 +213,8 @@ case SDLK_KP_PLUS: *key = K_KP_PLUS; break; case SDLK_KP_MINUS: *key = K_KP_MINUS; break; case SDLK_KP_DIVIDE: *key = K_KP_SLASH; break; + + case SDLK_WORLD_18: *key = '~'; break; // hack for french keyboards default: break; } From DONOTREPLY at icculus.org Fri Oct 14 19:02:57 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 14 Oct 2005 19:02:57 -0400 Subject: r162 - trunk Message-ID: <20051014230257.10768.qmail@icculus.org> Author: tma Date: 2005-10-14 19:02:57 -0400 (Fri, 14 Oct 2005) New Revision: 162 Modified: trunk/todo Log: * Updated todo :p Modified: trunk/todo =================================================================== --- trunk/todo 2005-10-14 23:00:39 UTC (rev 161) +++ trunk/todo 2005-10-14 23:02:57 UTC (rev 162) @@ -1,4 +1,4 @@ -Fix sensitivity +OpenAL patch xplat: From DONOTREPLY at icculus.org Sat Oct 15 21:13:51 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 15 Oct 2005 21:13:51 -0400 Subject: r163 - in trunk: . code/tools/asm Message-ID: <20051016011351.22836.qmail@icculus.org> Author: tma Date: 2005-10-15 21:13:51 -0400 (Sat, 15 Oct 2005) New Revision: 163 Modified: trunk/code/tools/asm/q3asm.c trunk/i_o-q3-readme Log: * Added option to q3asm to instruct it to create qvms compatible with Q3 1.32b Modified: trunk/code/tools/asm/q3asm.c =================================================================== --- trunk/code/tools/asm/q3asm.c 2005-10-14 23:02:57 UTC (rev 162) +++ trunk/code/tools/asm/q3asm.c 2005-10-16 01:13:51 UTC (rev 163) @@ -176,9 +176,15 @@ int numSymbols; int errorCount; -qboolean optionVerbose = qfalse; -qboolean optionWriteMapFile = qfalse; +typedef struct options_s { + qboolean verbose; + qboolean writeMapFile; + qboolean vanillaQ3Compatibility; +} options_t; + +options_t options = { 0 }; + symbol_t *symbols; symbol_t *lastSymbol = 0; /* Most recent symbol defined. */ @@ -227,7 +233,7 @@ int vreport (const char* fmt, va_list vp) { - if (optionVerbose != qtrue) + if (options.verbose != qtrue) return 0; return vprintf(fmt, vp); } @@ -1358,6 +1364,7 @@ char imageName[MAX_OS_PATH]; vmHeader_t header; FILE *f; + int headerSize; report( "%i total errors\n", errorCount ); @@ -1378,9 +1385,21 @@ return; } - header.vmMagic = VM_MAGIC_VER2; + if( !options.vanillaQ3Compatibility ) { + header.vmMagic = VM_MAGIC_VER2; + headerSize = sizeof( header ); + } else { + header.vmMagic = VM_MAGIC; + + // Don't write the VM_MAGIC_VER2 bits when maintaining 1.32b compatibility. + // (I know this isn't strictly correct due to padding, but then platforms + // that pad wouldn't be able to write a correct header anyway). Note: if + // vmHeader_t changes, this needs to be adjusted too. + headerSize = sizeof( header ) - sizeof( header.jtrgLength ); + } + header.instructionCount = instructionCount; - header.codeOffset = sizeof( header ); + header.codeOffset = headerSize; header.codeLength = segment[CODESEG].imageUsed; header.dataOffset = header.codeOffset + segment[CODESEG].imageUsed; header.dataLength = segment[DATASEG].imageUsed; @@ -1392,11 +1411,15 @@ CreatePath( imageName ); f = SafeOpenWrite( imageName ); - SafeWrite( f, &header, sizeof( header ) ); + SafeWrite( f, &header, headerSize ); SafeWrite( f, &segment[CODESEG].image, segment[CODESEG].imageUsed ); SafeWrite( f, &segment[DATASEG].image, segment[DATASEG].imageUsed ); SafeWrite( f, &segment[LITSEG].image, segment[LITSEG].imageUsed ); - SafeWrite( f, &segment[JTRGSEG].image, segment[JTRGSEG].imageUsed ); + + if( !options.vanillaQ3Compatibility ) { + SafeWrite( f, &segment[JTRGSEG].image, segment[JTRGSEG].imageUsed ); + } + fclose( f ); } @@ -1460,7 +1483,7 @@ WriteVmFile(); // write the map file even if there were errors - if( optionWriteMapFile ) { + if( options.writeMapFile ) { WriteMapFile(); } } @@ -1519,6 +1542,7 @@ -f LISTFILE Read options and list of files to assemble from LISTFILE\n\ -b BUCKETS Set symbol hash table to BUCKETS buckets\n\ -v Verbose compilation report\n\ + -vq3 Produce a qvm file compatible with Q3 1.32b\n\ ", argv[0]); } @@ -1566,15 +1590,20 @@ Verbosity turns on all messages, error or not. Motivation: not wanting to scrollback for pages to find asm error. */ - optionVerbose = qtrue; + options.verbose = qtrue; continue; } if( !strcmp( argv[ i ], "-m" ) ) { - optionWriteMapFile = qtrue; + options.writeMapFile = qtrue; continue; } + if( !strcmp( argv[ i ], "-vq3" ) ) { + options.vanillaQ3Compatibility = qtrue; + continue; + } + Error( "Unknown option: %s", argv[i] ); } @@ -1592,7 +1621,7 @@ for ( i = 0, s = symbols ; s ; s = s->next, i++ ) /* nop */ ; - if (optionVerbose) + if (options.verbose) { report("%d symbols defined\n", i); hashtable_stats(symtable); Modified: trunk/i_o-q3-readme =================================================================== --- trunk/i_o-q3-readme 2005-10-14 23:02:57 UTC (rev 162) +++ trunk/i_o-q3-readme 2005-10-16 01:13:51 UTC (rev 163) @@ -110,3 +110,12 @@ 7. Steal underpants 8. ??? 9. Profit! + +Creating mods compatible with Q3 1.32b +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you're using this package to create mods for the last official release of +Q3, it is necessary to pass the commandline option '-vq3' to your invocation +of q3asm. This is because by default q3asm outputs an updated qvm format that +is necessary to fix a bug involving the optimising pass of the x86 vm JIT +compiler. See http://www.quakesrc.org/forums/viewtopic.php?t=5665 (if it still +exists when you read this) for more details. From DONOTREPLY at icculus.org Mon Oct 17 22:46:20 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 17 Oct 2005 22:46:20 -0400 Subject: r164 - trunk/code/unix Message-ID: <20051018024620.6599.qmail@icculus.org> Author: zakk Date: 2005-10-17 22:46:20 -0400 (Mon, 17 Oct 2005) New Revision: 164 Modified: trunk/code/unix/Makefile Log: Minor edit, thanks ankon! Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-16 01:13:51 UTC (rev 163) +++ trunk/code/unix/Makefile 2005-10-18 02:46:20 UTC (rev 164) @@ -4,7 +4,7 @@ # Currently build for the following: # Linux i386 (full client) # Linux Alpha (dedicated server only) (TTimo: dropped) -# FreeBSD i386 (dedicated server only) (TTimo: maybe worth updating) +# FreeBSD i386 (full client) # SGI IRIX (full client) (TTimo: who's in charge - dropped otherwise) # Linux PPC (full client) (TTimo: dropped) # From DONOTREPLY at icculus.org Tue Oct 18 21:51:19 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 18 Oct 2005 21:51:19 -0400 Subject: r165 - trunk/code/unix Message-ID: <20051019015119.18782.qmail@icculus.org> Author: tma Date: 2005-10-18 21:51:19 -0400 (Tue, 18 Oct 2005) New Revision: 165 Modified: trunk/code/unix/unix_main.c Log: * Silly little patch to convert Q3 style color codes to ANSI escape codes. Note this doesn't work too well with baseq3 since it logs color strings with no color termination. Modified: trunk/code/unix/unix_main.c =================================================================== --- trunk/code/unix/unix_main.c 2005-10-18 02:46:20 UTC (rev 164) +++ trunk/code/unix/unix_main.c 2005-10-19 01:51:19 UTC (rev 165) @@ -85,6 +85,9 @@ static field_t tty_con; +static cvar_t *ttycon_ansicolor = NULL; +static qboolean ttycon_color_on = qfalse; + // history // NOTE TTimo this is a bit duplicate of the graphical console history // but it's safer and faster to write our own here @@ -519,6 +522,12 @@ tc.c_cc[VTIME] = 0; tcsetattr (0, TCSADRAIN, &tc); ttycon_on = qtrue; + + ttycon_ansicolor = Cvar_Get( "ttycon_ansicolor", "0", CVAR_ARCHIVE ); + if( ttycon_ansicolor && ttycon_ansicolor->value ) + { + ttycon_color_on = qtrue; + } } else ttycon_on = qfalse; } @@ -1178,13 +1187,89 @@ return NULL; } +static struct Q3ToAnsiColorTable_s +{ + char Q3color; + char *ANSIcolor; +} tty_colorTable[ ] = +{ + { COLOR_BLACK, "30" }, + { COLOR_RED, "31" }, + { COLOR_GREEN, "32" }, + { COLOR_YELLOW, "33" }, + { COLOR_BLUE, "34" }, + { COLOR_CYAN, "36" }, + { COLOR_MAGENTA, "35" }, + { COLOR_WHITE, "0" } +}; + +static int tty_colorTableSize = + sizeof( tty_colorTable ) / sizeof( tty_colorTable[ 0 ] ); + +void Sys_ANSIColorify( const char *msg, char *buffer, int bufferSize ) +{ + int msgLength, pos; + int i, j; + char *escapeCode; + + if( !msg || !buffer ) + return; + + msgLength = strlen( msg ); + pos = 0; + i = 0; + buffer[ 0 ] = '\0'; + + while( i < msgLength ) + { + if( msg[ i ] == '\n' ) + { + strncat( buffer, va( "%c[0m\n", 0x1B ), bufferSize ); + i++; + } + else if( msg[ i ] == Q_COLOR_ESCAPE ) + { + i++; + + if( i < msgLength ) + { + escapeCode = NULL; + for( j = 0; j < tty_colorTableSize; j++ ) + { + if( msg[ i ] == tty_colorTable[ j ].Q3color ) + { + escapeCode = tty_colorTable[ j ].ANSIcolor; + break; + } + } + + if( escapeCode ) + strncat( buffer, va( "%c[%sm", 0x1B, escapeCode ), bufferSize ); + + i++; + } + } + else + strncat( buffer, va( "%c", msg[ i++ ] ), bufferSize ); + } +} + void Sys_Print( const char *msg ) { if (ttycon_on) { tty_Hide(); } - fputs(msg, stderr); + + if( ttycon_on && ttycon_color_on ) + { + char ansiColorString[ MAXPRINTMSG ]; + Sys_ANSIColorify( msg, ansiColorString, MAXPRINTMSG ); + fputs( ansiColorString, stderr ); + } + else + fputs(msg, stderr); + if (ttycon_on) { tty_Show(); From DONOTREPLY at icculus.org Wed Oct 19 18:15:51 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 19 Oct 2005 18:15:51 -0400 Subject: r166 - trunk/code/renderer Message-ID: <20051019221551.18521.qmail@icculus.org> Author: tma Date: 2005-10-19 18:15:51 -0400 (Wed, 19 Oct 2005) New Revision: 166 Modified: trunk/code/renderer/tr_shader.c Log: * Fix to buffer overrun in shader parser from misanthropia Modified: trunk/code/renderer/tr_shader.c =================================================================== --- trunk/code/renderer/tr_shader.c 2005-10-19 01:51:19 UTC (rev 165) +++ trunk/code/renderer/tr_shader.c 2005-10-19 22:15:51 UTC (rev 166) @@ -1438,6 +1438,13 @@ } stages[s].active = qtrue; s++; + + // 20051019 misantropia -- fix buffer overrun. + if ( s >= MAX_SHADER_STAGES ) { + ri.Printf( PRINT_WARNING, "WARNING: too many stages in shader %s\n", shader.name ); + return qfalse; + } + continue; } // skip stuff that only the QuakeEdRadient needs From DONOTREPLY at icculus.org Wed Oct 19 18:25:33 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 19 Oct 2005 18:25:33 -0400 Subject: r167 - trunk/code/server Message-ID: <20051019222533.19630.qmail@icculus.org> Author: tma Date: 2005-10-19 18:25:32 -0400 (Wed, 19 Oct 2005) New Revision: 167 Modified: trunk/code/server/sv_client.c Log: * Cap the maximum snaps a client can request at the server framerate rather than a hard-coded 30 (from misantropia). I'm slightly nervous about this since it changes the behaviour versus 1.32b in that a client requesting e.g. 25 snaps will actually get 20 (default sv_fps) with this patch applied. I'm not sure why anyone would want this though -- it may even destablise their inter/extrapolation. I'll leave the bug (2422) open for a while and if no one complains it can be closed. Modified: trunk/code/server/sv_client.c =================================================================== --- trunk/code/server/sv_client.c 2005-10-19 22:15:51 UTC (rev 166) +++ trunk/code/server/sv_client.c 2005-10-19 22:25:32 UTC (rev 167) @@ -1153,8 +1153,8 @@ i = atoi(val); if ( i < 1 ) { i = 1; - } else if ( i > 30 ) { - i = 30; + } else if ( i > sv_fps->integer ) { + i = sv_fps->integer; } cl->snapshotMsec = 1000/i; } else { From DONOTREPLY at icculus.org Wed Oct 19 21:23:17 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 19 Oct 2005 21:23:17 -0400 Subject: r168 - trunk/code/renderer Message-ID: <20051020012317.1451.qmail@icculus.org> Author: tma Date: 2005-10-19 21:23:17 -0400 (Wed, 19 Oct 2005) New Revision: 168 Modified: trunk/code/renderer/tr_shader.c Log: * Fixed the fix for the shader overrun. If this isn't a case for unified diffs, I don't know what is :). Modified: trunk/code/renderer/tr_shader.c =================================================================== --- trunk/code/renderer/tr_shader.c 2005-10-19 22:25:32 UTC (rev 167) +++ trunk/code/renderer/tr_shader.c 2005-10-20 01:23:17 UTC (rev 168) @@ -1432,6 +1432,12 @@ // stage definition else if ( token[0] == '{' ) { + // 20051019 misantropia -- fix buffer overrun. + if ( s >= MAX_SHADER_STAGES ) { + ri.Printf( PRINT_WARNING, "WARNING: too many stages in shader %s\n", shader.name ); + return qfalse; + } + if ( !ParseStage( &stages[s], text ) ) { return qfalse; @@ -1439,12 +1445,6 @@ stages[s].active = qtrue; s++; - // 20051019 misantropia -- fix buffer overrun. - if ( s >= MAX_SHADER_STAGES ) { - ri.Printf( PRINT_WARNING, "WARNING: too many stages in shader %s\n", shader.name ); - return qfalse; - } - continue; } // skip stuff that only the QuakeEdRadient needs From DONOTREPLY at icculus.org Thu Oct 20 12:14:06 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 20 Oct 2005 12:14:06 -0400 Subject: r169 - trunk/code/renderer Message-ID: <20051020161406.25506.qmail@icculus.org> Author: tma Date: 2005-10-20 12:14:05 -0400 (Thu, 20 Oct 2005) New Revision: 169 Modified: trunk/code/renderer/tr_bsp.c Log: * Fix to buffer overflow in lightmap loading code from misanthropia Modified: trunk/code/renderer/tr_bsp.c =================================================================== --- trunk/code/renderer/tr_bsp.c 2005-10-20 01:23:17 UTC (rev 168) +++ trunk/code/renderer/tr_bsp.c 2005-10-20 16:14:05 UTC (rev 169) @@ -140,7 +140,7 @@ float maxIntensity = 0; double sumIntensity = 0; - len = l->filelen; + len = l->filelen; if ( !len ) { return; } @@ -155,6 +155,9 @@ //FIXME: HACK: maps with only one lightmap turn up fullbright for some reason. //this avoids this, but isn't the correct solution. tr.numLightmaps++; + } else if ( tr.numLightmaps >= MAX_LIGHTMAPS ) { // 20051020 misantropia + ri.Printf( PRINT_WARNING, "WARNING: number of lightmaps > MAX_LIGHTMAPS\n" ); + tr.numLightmaps = MAX_LIGHTMAPS; } // if we are in r_vertexLight mode, we don't need the lightmaps at all From DONOTREPLY at icculus.org Thu Oct 20 12:19:44 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 20 Oct 2005 12:19:44 -0400 Subject: r170 - trunk/code/renderer Message-ID: <20051020161944.26289.qmail@icculus.org> Author: tma Date: 2005-10-20 12:19:43 -0400 (Thu, 20 Oct 2005) New Revision: 170 Modified: trunk/code/renderer/tr_shader.c Log: * Fix to potential out of range index bug from misanthropia Modified: trunk/code/renderer/tr_shader.c =================================================================== --- trunk/code/renderer/tr_shader.c 2005-10-20 16:14:05 UTC (rev 169) +++ trunk/code/renderer/tr_shader.c 2005-10-20 16:19:43 UTC (rev 170) @@ -2566,7 +2566,14 @@ shader_t *sh; hash = generateHashValue(name, FILE_HASH_SIZE); - + + // 20051020 misantropia -- probably not necessary since this function + // only gets called from tr_font.c with lightmapIndex == LIGHTMAP_2D + // but better safe than sorry. + if ( lightmapIndex >= tr.numLightmaps ) { + lightmapIndex = LIGHTMAP_WHITEIMAGE; + } + // // see if the shader is already loaded // From DONOTREPLY at icculus.org Thu Oct 20 20:09:34 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 20 Oct 2005 20:09:34 -0400 Subject: r171 - trunk/code/qcommon Message-ID: <20051021000934.7748.qmail@icculus.org> Author: tma Date: 2005-10-20 20:09:34 -0400 (Thu, 20 Oct 2005) New Revision: 171 Modified: trunk/code/qcommon/common.c Log: * Tiny patch to print values of cvars when tab completing ala ET Modified: trunk/code/qcommon/common.c =================================================================== --- trunk/code/qcommon/common.c 2005-10-20 16:19:43 UTC (rev 170) +++ trunk/code/qcommon/common.c 2005-10-21 00:09:34 UTC (rev 171) @@ -3215,7 +3215,7 @@ */ static void PrintMatches( const char *s ) { if ( !Q_stricmpn( s, shortestMatch, strlen( shortestMatch ) ) ) { - Com_Printf( " %s\n", s ); + Com_Printf( " %s = \"%s\"\n", s, Cvar_VariableString( s ) ); } } From DONOTREPLY at icculus.org Fri Oct 21 14:07:25 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 21 Oct 2005 14:07:25 -0400 Subject: r172 - in trunk/code: tools/lcc win32 Message-ID: <20051021180725.11438.qmail@icculus.org> Author: tma Date: 2005-10-21 14:07:25 -0400 (Fri, 21 Oct 2005) New Revision: 172 Removed: trunk/code/tools/lcc/bin/ trunk/code/win32/mod-sdk-setup/ Log: * Deleted some exes that were in the repository From DONOTREPLY at icculus.org Fri Oct 21 15:52:52 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 21 Oct 2005 15:52:52 -0400 Subject: r173 - trunk/code/qcommon Message-ID: <20051021195252.25289.qmail@icculus.org> Author: tma Date: 2005-10-21 15:52:52 -0400 (Fri, 21 Oct 2005) New Revision: 173 Modified: trunk/code/qcommon/common.c Log: * Tab completed commands no longer treated like cvars Modified: trunk/code/qcommon/common.c =================================================================== --- trunk/code/qcommon/common.c 2005-10-21 18:07:25 UTC (rev 172) +++ trunk/code/qcommon/common.c 2005-10-21 19:52:52 UTC (rev 173) @@ -3209,12 +3209,24 @@ /* =============== -PrintMatches +PrintCmdMatches =============== */ -static void PrintMatches( const char *s ) { +static void PrintCmdMatches( const char *s ) { if ( !Q_stricmpn( s, shortestMatch, strlen( shortestMatch ) ) ) { + Com_Printf( " %s\n", s ); + } +} + +/* +=============== +PrintCvarMatches + +=============== +*/ +static void PrintCvarMatches( const char *s ) { + if ( !Q_stricmpn( s, shortestMatch, strlen( shortestMatch ) ) ) { Com_Printf( " %s = \"%s\"\n", s, Cvar_VariableString( s ) ); } } @@ -3309,6 +3321,6 @@ Com_Printf( "]%s\n", completionField->buffer ); // run through again, printing matches - Cmd_CommandCompletion( PrintMatches ); - Cvar_CommandCompletion( PrintMatches ); + Cmd_CommandCompletion( PrintCmdMatches ); + Cvar_CommandCompletion( PrintCvarMatches ); } From DONOTREPLY at icculus.org Sun Oct 23 11:25:23 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 23 Oct 2005 11:25:23 -0400 Subject: r174 - trunk/code/unix Message-ID: <20051023152523.17431.qmail@icculus.org> Author: ludwig Date: 2005-10-23 11:25:23 -0400 (Sun, 23 Oct 2005) New Revision: 174 Modified: trunk/code/unix/sdl_glimp.c Log: map extra mouse buttons to K_AUX* Modified: trunk/code/unix/sdl_glimp.c =================================================================== --- trunk/code/unix/sdl_glimp.c 2005-10-21 19:52:52 UTC (rev 173) +++ trunk/code/unix/sdl_glimp.c 2005-10-23 15:25:23 UTC (rev 174) @@ -327,66 +327,24 @@ break; case SDL_MOUSEBUTTONDOWN: - if (e.button.button == 4) - { - Sys_QueEvent( t, SE_KEY, K_MWHEELUP, qtrue, 0, NULL ); - } else if (e.button.button == 5) - { - Sys_QueEvent( t, SE_KEY, K_MWHEELDOWN, qtrue, 0, NULL ); - } else - { - // NOTE TTimo there seems to be a weird mapping for K_MOUSE1 K_MOUSE2 K_MOUSE3 .. - b=-1; - if (e.button.button == 1) - { - b = 0; // K_MOUSE1 - } else if (e.button.button == 2) - { - b = 2; // K_MOUSE3 - } else if (e.button.button == 3) - { - b = 1; // K_MOUSE2 - } else if (e.button.button == 6) - { - b = 3; // K_MOUSE4 - } else if (e.button.button == 7) - { - b = 4; // K_MOUSE5 - }; - - Sys_QueEvent( t, SE_KEY, K_MOUSE1 + b, qtrue, 0, NULL ); - } - break; - case SDL_MOUSEBUTTONUP: - if (e.button.button == 4) { - Sys_QueEvent( t, SE_KEY, K_MWHEELUP, qfalse, 0, NULL ); - } else if (e.button.button == 5) - { - Sys_QueEvent( t, SE_KEY, K_MWHEELDOWN, qfalse, 0, NULL ); - } else - { - b=-1; - if (e.button.button == 1) - { - b = 0; - } else if (e.button.button == 2) - { - b = 2; - } else if (e.button.button == 3) - { - b = 1; - } else if (e.button.button == 6) - { - b = 3; // K_MOUSE4 - } else if (e.button.button == 7) - { - b = 4; // K_MOUSE5 - }; - Sys_QueEvent( t, SE_KEY, K_MOUSE1 + b, qfalse, 0, NULL ); + unsigned char b; + switch (e.button.button) + { + case 1: b = K_MOUSE1; break; + case 2: b = K_MOUSE3; break; + case 3: b = K_MOUSE2; break; + case 4: b = K_MWHEELUP; break; + case 5: b = K_MWHEELDOWN; break; + case 6: b = K_MOUSE4; break; + case 7: b = K_MOUSE5; break; + default: b = K_AUX1 + (e.button.button - 8)%16; break; + } + Sys_QueEvent( t, SE_KEY, b, (e.type == SDL_MOUSEBUTTONDOWN?qtrue:qfalse), 0, NULL ); } break; + case SDL_QUIT: Sys_Quit(); break; From DONOTREPLY at icculus.org Sun Oct 23 11:27:59 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 23 Oct 2005 11:27:59 -0400 Subject: r175 - trunk/code/unix Message-ID: <20051023152759.18027.qmail@icculus.org> Author: ludwig Date: 2005-10-23 11:27:59 -0400 (Sun, 23 Oct 2005) New Revision: 175 Modified: trunk/code/unix/sdl_glimp.c Log: remove french keyboard hack. we cannot know what this does on other layouts Modified: trunk/code/unix/sdl_glimp.c =================================================================== --- trunk/code/unix/sdl_glimp.c 2005-10-23 15:25:23 UTC (rev 174) +++ trunk/code/unix/sdl_glimp.c 2005-10-23 15:27:59 UTC (rev 175) @@ -214,7 +214,6 @@ case SDLK_KP_MINUS: *key = K_KP_MINUS; break; case SDLK_KP_DIVIDE: *key = K_KP_SLASH; break; - case SDLK_WORLD_18: *key = '~'; break; // hack for french keyboards default: break; } From DONOTREPLY at icculus.org Sun Oct 23 13:18:23 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 23 Oct 2005 13:18:23 -0400 Subject: r176 - trunk/code/cgame Message-ID: <20051023171823.10462.qmail@icculus.org> Author: tma Date: 2005-10-23 13:18:23 -0400 (Sun, 23 Oct 2005) New Revision: 176 Modified: trunk/code/cgame/cg_players.c Log: * Fix to https://bugzilla.icculus.org/show_bug.cgi?id=2401 Modified: trunk/code/cgame/cg_players.c =================================================================== --- trunk/code/cgame/cg_players.c 2005-10-23 15:27:59 UTC (rev 175) +++ trunk/code/cgame/cg_players.c 2005-10-23 17:18:23 UTC (rev 176) @@ -649,11 +649,10 @@ This will usually be deferred to a safe time =================== */ -static void CG_LoadClientInfo( clientInfo_t *ci ) { +static void CG_LoadClientInfo( int clientNum, clientInfo_t *ci ) { const char *dir, *fallback; int i, modelloaded; const char *s; - int clientNum; char teamname[MAX_QPATH]; teamname[0] = 0; @@ -726,7 +725,6 @@ // reset any existing players and bodies, because they might be in bad // frames for this new model - clientNum = ci - cgs.clientinfo; for ( i = 0 ; i < MAX_GENTITIES ; i++ ) { if ( cg_entities[i].currentState.clientNum == clientNum && cg_entities[i].currentState.eType == ET_PLAYER ) { @@ -805,7 +803,7 @@ client's info to use until we have some spare time. ====================== */ -static void CG_SetDeferredClientInfo( clientInfo_t *ci ) { +static void CG_SetDeferredClientInfo( int clientNum, clientInfo_t *ci ) { int i; clientInfo_t *match; @@ -824,7 +822,7 @@ continue; } // just load the real info cause it uses the same models and skins - CG_LoadClientInfo( ci ); + CG_LoadClientInfo( clientNum, ci ); return; } @@ -847,7 +845,7 @@ // an improper team skin. This will cause a hitch for the first // player, when the second enters. Combat shouldn't be going on // yet, so it shouldn't matter - CG_LoadClientInfo( ci ); + CG_LoadClientInfo( clientNum, ci ); return; } @@ -866,7 +864,7 @@ // we should never get here... CG_Printf( "CG_SetDeferredClientInfo: no valid clients!\n" ); - CG_LoadClientInfo( ci ); + CG_LoadClientInfo( clientNum, ci ); } @@ -1037,14 +1035,14 @@ // if we are defering loads, just have it pick the first valid if ( forceDefer || (cg_deferPlayers.integer && !cg_buildScript.integer && !cg.loading ) ) { // keep whatever they had if it won't violate team skins - CG_SetDeferredClientInfo( &newInfo ); + CG_SetDeferredClientInfo( clientNum, &newInfo ); // if we are low on memory, leave them with this model if ( forceDefer ) { CG_Printf( "Memory is low. Using deferred model.\n" ); newInfo.deferred = qfalse; } } else { - CG_LoadClientInfo( &newInfo ); + CG_LoadClientInfo( clientNum, &newInfo ); } } @@ -1077,7 +1075,7 @@ ci->deferred = qfalse; continue; } - CG_LoadClientInfo( ci ); + CG_LoadClientInfo( i, ci ); // break; } } From DONOTREPLY at icculus.org Sun Oct 23 13:23:23 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 23 Oct 2005 13:23:23 -0400 Subject: r177 - trunk/code/unix Message-ID: <20051023172323.11851.qmail@icculus.org> Author: tma Date: 2005-10-23 13:23:23 -0400 (Sun, 23 Oct 2005) New Revision: 177 Modified: trunk/code/unix/sdl_glimp.c Log: * Fixed unused variable warning Modified: trunk/code/unix/sdl_glimp.c =================================================================== --- trunk/code/unix/sdl_glimp.c 2005-10-23 17:18:23 UTC (rev 176) +++ trunk/code/unix/sdl_glimp.c 2005-10-23 17:23:23 UTC (rev 177) @@ -271,7 +271,6 @@ SDL_Event e; const char *p = NULL; int key = 0; - int b = 0; if (screen == NULL) return; // no SDL context. @@ -1413,3 +1412,4 @@ + From DONOTREPLY at icculus.org Tue Oct 25 09:34:48 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 25 Oct 2005 09:34:48 -0400 Subject: r178 - in trunk/code: bspc cgame game q3_ui ui Message-ID: <20051025133448.4878.qmail@icculus.org> Author: tma Date: 2005-10-25 09:34:47 -0400 (Tue, 25 Oct 2005) New Revision: 178 Removed: trunk/code/bspc/Conscript trunk/code/cgame/Conscript trunk/code/game/Conscript trunk/code/q3_ui/Conscript trunk/code/ui/Conscript Log: * Removed some Conscript Deleted: trunk/code/bspc/Conscript =================================================================== --- trunk/code/bspc/Conscript 2005-10-23 17:23:23 UTC (rev 177) +++ trunk/code/bspc/Conscript 2005-10-25 13:34:47 UTC (rev 178) @@ -1,75 +0,0 @@ -# bspc compile - -Import qw( BSPC_BASE_CFLAGS BUILD_DIR INSTALL_DIR CC CXX LINK ); - - at BSPC_FILES = qw( - aas_areamerging.c - aas_cfg.c - aas_create.c - aas_edgemelting.c - aas_facemerging.c - aas_file.c - aas_gsubdiv.c - aas_map.c - aas_prunenodes.c - aas_store.c - be_aas_bspc.c - ../botlib/be_aas_bspq3.c - ../botlib/be_aas_cluster.c - ../botlib/be_aas_move.c - ../botlib/be_aas_optimize.c - ../botlib/be_aas_reach.c - ../botlib/be_aas_sample.c - brushbsp.c - bspc.c - ../qcommon/cm_load.c - ../qcommon/cm_patch.c - ../qcommon/cm_test.c - ../qcommon/cm_trace.c - csg.c - glfile.c - l_bsp_ent.c - l_bsp_hl.c - l_bsp_q1.c - l_bsp_q2.c - l_bsp_q3.c - l_bsp_sin.c - l_cmd.c - ../botlib/l_libvar.c - l_log.c - l_math.c - l_mem.c - l_poly.c - ../botlib/l_precomp.c - l_qfiles.c - ../botlib/l_script.c - ../botlib/l_struct.c - l_threads.c - l_utils.c - leakfile.c - map.c - map_hl.c - map_q1.c - map_q2.c - map_q3.c - map_sin.c - ../qcommon/md4.c - nodraw.c - portals.c - textures.c - tree.c - ../qcommon/unzip.c - ); -$BSPC_REF = \@BSPC_FILES; - -$env = new cons( - CC => $CC, - CXX => $CXX, - LINK => $LINK, - CFLAGS => $BSPC_BASE_CFLAGS, - LIBS => '-ldl -lm -lpthread' -); - -Program $env 'bspc', @$BSPC_REF; -# this should install to Q3 or something? -Install $env $INSTALL_DIR, 'bspc'; Deleted: trunk/code/cgame/Conscript =================================================================== --- trunk/code/cgame/Conscript 2005-10-23 17:23:23 UTC (rev 177) +++ trunk/code/cgame/Conscript 2005-10-25 13:34:47 UTC (rev 178) @@ -1,138 +0,0 @@ -# cgame building -# builds the cgame for vanilla Q3 and TA - -# there are slight differences between Q3 and TA build: -# -DMISSIONPACK -# TA has cg_newdraw.c and ../ui/ui_shared.c -# the config is passed in the imported variable TARGET_DIR - -# qvm building against native: -# only native has cg_syscalls.c -# only qvm has ../game/bg_lib.c -# qvm uses a custom cg_syscalls.asm with equ stubs - -Import qw( BASE_CFLAGS TARGET_DIR INSTALL_DIR NO_VM NO_SO CC CXX LINK ); - -$env = new cons( - # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" - # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix - CPPPATH => '#cgame:#game:#q3_ui', - CC => $CC, - CXX => $CXX, - LINK => $LINK, - ENV => { PATH => $ENV{PATH}, HOME => $ENV{HOME} }, - CFLAGS => $BASE_CFLAGS . '-fPIC', - LDFLAGS => '-shared -ldl -lm' -); - -# for TA, use -DMISSIONPACK -%ta_env_hash = $env->copy( - CPPPATH => '#cgame:#game:#ui' - ); -$ta_env_hash{CFLAGS} = '-DMISSIONPACK ' . $ta_env_hash{CFLAGS}; -$ta_env = new cons(%ta_env_hash); - -# qvm building -# we heavily customize the cons environment -$vm_env = new cons( - # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" - # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix - CPPPATH => '#cgame:#game:#q3_ui', - CC => 'q3lcc', - CCCOM => '%CC %CFLAGS %_IFLAGS -c %< -o %>', - SUFOBJ => '.asm', - LINK => 'q3asm', - CFLAGS => '-DQ3_VM -DCGAME -S -Wf-target=bytecode -Wf-g', - # need to know where to find the compiler tools - ENV => { PATH => $ENV{PATH} . ":./qvmtools", }, -); - -# TA qvm building -%vm_ta_env_hash = $vm_env->copy( - CPPPATH => '#cgame:#game:#ui' - ); -$vm_ta_env_hash{CFLAGS} = '-DMISSIONPACK ' . $vm_ta_env_hash{CFLAGS}; -$vm_ta_env = new cons(%vm_ta_env_hash); - -# the file with vmMain function MUST be the first one of the list - at FILES = qw( - cg_main.c - ../game/bg_misc.c - ../game/bg_pmove.c - ../game/bg_slidemove.c - ../game/q_math.c - ../game/q_shared.c - cg_consolecmds.c - cg_draw.c - cg_drawtools.c - cg_effects.c - cg_ents.c - cg_event.c - cg_info.c - cg_localents.c - cg_marks.c - cg_players.c - cg_playerstate.c - cg_predict.c - cg_scoreboard.c - cg_servercmds.c - cg_snapshot.c - cg_view.c - cg_weapons.c - ); -$FILESREF = \@FILES; - -# only in .so -# (VM uses a custom .asm with equ stubs) - at SO_FILES = qw( - cg_syscalls.c - ); -$SO_FILESREF = \@SO_FILES; - -# only for VM - at VM_FILES = qw( - ../game/bg_lib.c - cg_syscalls.asm - ); -$VM_FILESREF = \@VM_FILES; - -# common additionals for TA - at TA_FILES = qw( - cg_newdraw.c - ../ui/ui_shared.c - ); -$TA_FILESREF = \@TA_FILES; - -# FIXME CPU string -if ($TARGET_DIR eq 'Q3') -{ - if ($NO_SO eq 0) - { - Program $env 'cgamei386.so', @$FILESREF, @$SO_FILESREF; - Install $env $INSTALL_DIR, 'cgamei386.so'; - } - if ($NO_VM eq 0) - { - Depends $vm_env 'cgame.qvm', '#qvmtools/q3lcc'; - Depends $vm_env 'cgame.qvm', '#qvmtools/q3asm'; - Program $vm_env 'cgame.qvm', @$FILESREF, @$VM_FILESREF; - Install $vm_env $INSTALL_DIR . '/vm', 'cgame.qvm'; - } -} -else -{ - if ($NO_SO eq 0) - { - Program $ta_env 'cgamei386.so', - @$FILESREF, @$SO_FILESREF, @$TA_FILESREF; - Install $ta_env $INSTALL_DIR, 'cgamei386.so'; - } - if ($NO_VM eq 0) - { - Depends $vm_env 'cgame.qvm', '#qvmtools/q3lcc'; - Depends $vm_env 'cgame.qvm', '#qvmtools/q3asm'; - Program $vm_ta_env 'cgame.qvm', - @$FILESREF, @$VM_FILESREF, @$TA_FILESREF; - Install $vm_ta_env $INSTALL_DIR . '/vm', 'cgame.qvm'; - } -} Deleted: trunk/code/game/Conscript =================================================================== --- trunk/code/game/Conscript 2005-10-23 17:23:23 UTC (rev 177) +++ trunk/code/game/Conscript 2005-10-25 13:34:47 UTC (rev 178) @@ -1,140 +0,0 @@ -# game building -# builds the game for vanilla Q3 and TA - -# there are slight differences between Q3 and TA build: -# -DMISSIONPACK -# the config is passed in the imported variable TARGET_DIR - -# qvm building against native: -# only native has g_syscalls.c -# only qvm has ../game/bg_lib.c -# qvm uses a custom g_syscalls.asm with equ stubs - -Import qw( BASE_CFLAGS TARGET_DIR INSTALL_DIR NO_VM NO_SO CC CXX LINK ); - -$env = new cons( - # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" - # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix - CPPPATH => '#cgame:#game:#q3_ui', - CC => $CC, - CXX => $CXX, - LINK => $LINK, - ENV => { PATH => $ENV{PATH}, HOME => $ENV{HOME} }, - CFLAGS => $BASE_CFLAGS . '-fPIC', - LDFLAGS => '-shared -ldl -lm' -); - -# for TA, use -DMISSIONPACK -%ta_env_hash = $env->copy( - CPPPATH => '#cgame:#game:#ui' - ); -$ta_env_hash{CFLAGS} = '-DMISSIONPACK ' . $ta_env_hash{CFLAGS}; -$ta_env = new cons(%ta_env_hash); - -# qvm building -# we heavily customize the cons environment -$vm_env = new cons( - # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" - # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix - CPPPATH => '#cgame:#game:#q3_ui', - CC => 'q3lcc', - CCCOM => '%CC %CFLAGS %_IFLAGS -c %< -o %>', - SUFOBJ => '.asm', - LINK => 'q3asm', - CFLAGS => '-DQ3_VM -S -Wf-target=bytecode -Wf-g', - # need to know where to find the compiler tools - ENV => { PATH => $ENV{PATH} . ":./qvmtools", }, -); - -# TA qvm building -%vm_ta_env_hash = $vm_env->copy( - CPPPATH => '#cgame:#game:#ui' - ); -$vm_ta_env_hash{CFLAGS} = '-DMISSIONPACK ' . $vm_ta_env_hash{CFLAGS}; -$vm_ta_env = new cons(%vm_ta_env_hash); - -# the file with vmMain function MUST be the first one of the list - at FILES = qw( - g_main.c - ai_chat.c - ai_cmd.c - ai_dmnet.c - ai_dmq3.c - ai_main.c - ai_team.c - ai_vcmd.c - bg_misc.c - bg_pmove.c - bg_slidemove.c - g_active.c - g_arenas.c - g_bot.c - g_client.c - g_cmds.c - g_combat.c - g_items.c - g_mem.c - g_misc.c - g_missile.c - g_mover.c - g_session.c - g_spawn.c - g_svcmds.c - g_target.c - g_team.c - g_trigger.c - g_utils.c - g_weapon.c - q_math.c - q_shared.c - ); -$FILESREF = \@FILES; - -# only in .so -# (VM uses a custom .asm with equ stubs) - at SO_FILES = qw( - g_syscalls.c - ); -$SO_FILESREF = \@SO_FILES; - -# only for VM - at VM_FILES = qw( - bg_lib.c - g_syscalls.asm - ); -$VM_FILESREF = \@VM_FILES; - -# FIXME CPU string? -# NOTE: $env $ta_env and $vm_env $vm_ta_env may not be necessary -# we could alter the $env and $ta_env based on $TARGET_DIR -# doing it this way to ensure homogeneity with cgame building -if ($TARGET_DIR eq 'Q3') -{ - if ($NO_SO eq 0) - { - Program $env 'qagamei386.so', @$FILESREF, @$SO_FILESREF; - Install $env $INSTALL_DIR, 'qagamei386.so'; - } - if ($NO_VM eq 0) - { - Depends $vm_env 'qagame.qvm', '#qvmtools/q3lcc'; - Depends $vm_env 'qagame.qvm', '#qvmtools/q3asm'; - Program $vm_env 'qagame.qvm', @$FILESREF, @$VM_FILESREF; - Install $vm_env $INSTALL_DIR . '/vm', 'qagame.qvm'; - } -} -else -{ - if ($NO_SO eq 0) - { - Program $ta_env 'qagamei386.so', @$FILESREF, @$SO_FILESREF; - Install $ta_env $INSTALL_DIR, 'qagamei386.so'; - } - if ($NO_VM eq 0) - { - Depends $vm_env 'qagame.qvm', '#qvmtools/q3lcc'; - Depends $vm_env 'qagame.qvm', '#qvmtools/q3asm'; - Program $vm_ta_env 'qagame.qvm', @$FILESREF, @$VM_FILESREF; - Install $vm_ta_env $INSTALL_DIR . '/vm', 'qagame.qvm'; - } -} Deleted: trunk/code/q3_ui/Conscript =================================================================== --- trunk/code/q3_ui/Conscript 2005-10-23 17:23:23 UTC (rev 177) +++ trunk/code/q3_ui/Conscript 2005-10-25 13:34:47 UTC (rev 178) @@ -1,93 +0,0 @@ -# Q3 ui building - -# qvm building against native: -# only native has ui_syscalls.c -# qvm uses a ui_syscalls.asm with equ stubs -# qvm has additional bg_lib.c - -Import qw( BASE_CFLAGS TARGET_DIR INSTALL_DIR NO_VM NO_SO CC CXX LINK ); - -$env = new cons( - # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" - # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix - CPPPATH => '#cgame:#game:#q3_ui', - CC => $CC, - CXX => $CXX, - LINK => $LINK, - ENV => { PATH => $ENV{PATH}, HOME => $ENV{HOME} }, - CFLAGS => $BASE_CFLAGS . '-fPIC', - LDFLAGS => '-shared -ldl -lm' -); - -# qvm building -# we heavily customize the cons environment -$vm_env = new cons( - # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" - # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix - CPPPATH => '#cgame:#game:#q3_ui', - CC => 'q3lcc', - CCCOM => '%CC %CFLAGS %_IFLAGS -c %< -o %>', - SUFOBJ => '.asm', - LINK => 'q3asm', - CFLAGS => '-DQ3_VM -S -Wf-target=bytecode -Wf-g', - # need to know where to find the compiler tools - ENV => { PATH => $ENV{PATH} . ":./qvmtools", }, -); - -# the file with vmMain function MUST be the first one of the list - at FILES = qw( - ui_main.c - ../game/bg_misc.c - ../game/q_math.c - ../game/q_shared.c - ui_addbots.c - ui_atoms.c - ui_cdkey.c - ui_cinematics.c - ui_confirm.c - ui_connect.c - ui_controls2.c - ui_credits.c - ui_demo2.c - ui_display.c - ui_gameinfo.c - ui_ingame.c - ui_menu.c - ui_mfield.c - ui_mods.c - ui_network.c - ui_options.c - ui_playermodel.c - ui_players.c - ui_playersettings.c - ui_preferences.c - ui_qmenu.c - ui_removebots.c - ui_serverinfo.c - ui_servers2.c - ui_setup.c - ui_sound.c - ui_sparena.c - ui_specifyserver.c - ui_splevel.c - ui_sppostgame.c - ui_spskill.c - ui_startserver.c - ui_team.c - ui_teamorders.c - ui_video.c - ); -$FILESREF = \@FILES; - -if ($NO_SO eq 0) -{ - Program $env 'uii386.so', @$FILESREF, '../ui/ui_syscalls.c'; - Install $env $INSTALL_DIR, 'uii386.so'; -} -if ($NO_VM eq 0) -{ - Depends $vm_env 'ui.qvm', '#qvmtools/q3lcc'; - Depends $vm_env 'ui.qvm', '#qvmtools/q3asm'; - Program $vm_env 'ui.qvm', @$FILESREF, '../game/bg_lib.c', '../ui/ui_syscalls.asm'; - Install $vm_env $INSTALL_DIR . '/vm', 'ui.qvm'; -} Deleted: trunk/code/ui/Conscript =================================================================== --- trunk/code/ui/Conscript 2005-10-23 17:23:23 UTC (rev 177) +++ trunk/code/ui/Conscript 2005-10-25 13:34:47 UTC (rev 178) @@ -1,62 +0,0 @@ -# TA ui building - -# qvm building against native: -# only native has ui_syscalls.c -# qvm uses a custom ui_syscalls.asm with equ stubs -# qvm has additional bg_lib.c - -Import qw( BASE_CFLAGS TARGET_DIR INSTALL_DIR NO_VM NO_SO CC CXX LINK ); - -$env = new cons( - # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" - # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix - CPPPATH => '#cgame:#game:#ui', - CC => $CC, - CXX => $CXX, - LINK => $LINK, - ENV => { PATH => $ENV{PATH}, HOME => $ENV{HOME} }, - CFLAGS => $BASE_CFLAGS . '-DMISSIONPACK -fPIC', - LDFLAGS => '-shared -ldl -lm' -); - -# qvm building -# we heavily customize the cons environment -$vm_env = new cons( - # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" - # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix - CPPPATH => '#cgame:#game:#ui', - CC => 'q3lcc', - CCCOM => '%CC %CFLAGS %_IFLAGS -c %< -o %>', - SUFOBJ => '.asm', - LINK => 'q3asm', - CFLAGS => '-DQ3_VM -DMISSIONPACK -S -Wf-target=bytecode -Wf-g', - # need to know where to find the compiler tools - ENV => { PATH => $ENV{PATH} . ":./qvmtools", }, -); - -# the file with vmMain function MUST be the first one of the list - at FILES = qw( - ui_main.c - ui_atoms.c - ui_gameinfo.c - ui_players.c - ui_util.c - ui_shared.c - ../game/bg_misc.c - ../game/q_math.c - ../game/q_shared.c - ); -$FILESREF = \@FILES; - -if ($NO_SO eq 0) -{ - Program $env 'uii386.so', @$FILESREF, 'ui_syscalls.c'; - Install $env $INSTALL_DIR, 'uii386.so'; -} -if ($NO_VM eq 0) -{ - Depends $vm_env 'ui.qvm', '#qvmtools/q3lcc'; - Depends $vm_env 'ui.qvm', '#qvmtools/q3asm'; - Program $vm_env 'ui.qvm', @$FILESREF, '../game/bg_lib.c', 'ui_syscalls.asm'; - Install $vm_env $INSTALL_DIR . '/vm', 'ui.qvm'; -} From DONOTREPLY at icculus.org Wed Oct 26 13:09:50 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 26 Oct 2005 13:09:50 -0400 Subject: r179 - trunk/code/qcommon Message-ID: <20051026170950.2219.qmail@icculus.org> Author: tma Date: 2005-10-26 13:09:50 -0400 (Wed, 26 Oct 2005) New Revision: 179 Modified: trunk/code/qcommon/vm.c Log: * Fixed a bug with QVM loading on big endian architectures Modified: trunk/code/qcommon/vm.c =================================================================== --- trunk/code/qcommon/vm.c 2005-10-25 13:34:47 UTC (rev 178) +++ trunk/code/qcommon/vm.c 2005-10-26 17:09:50 UTC (rev 179) @@ -373,33 +373,42 @@ return NULL; } - // byte swap the header - for ( i = 0 ; i < sizeof( *header ) / 4 ; i++ ) { - ((int *)header)[i] = LittleLong( ((int *)header)[i] ); - } + if( LittleLong( header->vmMagic ) == VM_MAGIC_VER2 ) { + Com_Printf( "...which has vmMagic VM_MAGIC_VER2\n" ); - if( header->vmMagic == VM_MAGIC_VER2 ) { - Com_Printf( "...which has vmMagic VM_MAGIC_VER2\n" ); + // byte swap the header + for ( i = 0 ; i < sizeof( vmHeader_t ) / 4 ; i++ ) { + ((int *)header)[i] = LittleLong( ((int *)header)[i] ); + } + // validate - if ( header->vmMagic != VM_MAGIC_VER2 - || header->jtrgLength < 0 - || header->bssLength < 0 - || header->dataLength < 0 - || header->litLength < 0 + if ( header->jtrgLength < 0 + || header->bssLength < 0 + || header->dataLength < 0 + || header->litLength < 0 || header->codeLength <= 0 ) { VM_Free( vm ); Com_Error( ERR_FATAL, "%s has bad header", filename ); } - } else { + } else if( LittleLong( header->vmMagic ) == VM_MAGIC ) { + // byte swap the header + // sizeof( vmHeader_t ) - sizeof( int ) is the 1.32b vm header size + for ( i = 0 ; i < ( sizeof( vmHeader_t ) - sizeof( int ) ) / 4 ; i++ ) { + ((int *)header)[i] = LittleLong( ((int *)header)[i] ); + } + // validate - if ( header->vmMagic != VM_MAGIC - || header->bssLength < 0 - || header->dataLength < 0 - || header->litLength < 0 + if ( header->bssLength < 0 + || header->dataLength < 0 + || header->litLength < 0 || header->codeLength <= 0 ) { VM_Free( vm ); Com_Error( ERR_FATAL, "%s has bad header", filename ); } + } else { + VM_Free( vm ); + Com_Error( ERR_FATAL, "%s does not have a recognisable " + "magic number in its header", filename ); } // round up to next power of 2 so all data operations can From DONOTREPLY at icculus.org Wed Oct 26 15:32:15 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 26 Oct 2005 15:32:15 -0400 Subject: r180 - in trunk/code/macosx: . Quake3.pbproj Message-ID: <20051026193215.19276.qmail@icculus.org> Author: tma Date: 2005-10-26 15:32:15 -0400 (Wed, 26 Oct 2005) New Revision: 180 Modified: trunk/code/macosx/Quake3.pbproj/project.pbxproj trunk/code/macosx/macosx_display.m trunk/code/macosx/macosx_glsmp_mutex.m trunk/code/macosx/macosx_sys.m Log: * Fixed some warnings on the OS X build Modified: trunk/code/macosx/Quake3.pbproj/project.pbxproj =================================================================== --- trunk/code/macosx/Quake3.pbproj/project.pbxproj 2005-10-26 17:09:50 UTC (rev 179) +++ trunk/code/macosx/Quake3.pbproj/project.pbxproj 2005-10-26 19:32:15 UTC (rev 180) @@ -34,6 +34,7 @@ LIBRARY_SEARCH_PATHS = ""; OTHER_LDFLAGS = "-bundle -undefined error"; OTHER_REZFLAGS = ""; + PREBINDING = NO; PRODUCT_NAME = qagame; PROFILE_FLAGS = ""; SECTORDER_FLAGS = ""; @@ -170,6 +171,7 @@ LIBRARY_SEARCH_PATHS = ""; OTHER_LDFLAGS = "-bundle -undefined error"; OTHER_REZFLAGS = ""; + PREBINDING = NO; PRODUCT_NAME = cgame; PROFILE_FLAGS = ""; SECTORDER_FLAGS = ""; @@ -4764,6 +4766,7 @@ OTHER_CFLAGS = ""; OTHER_LDFLAGS = "-bundle -undefined error"; OTHER_REZFLAGS = ""; + PREBINDING = NO; PRODUCT_NAME = ui; SECTORDER_FLAGS = ""; WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas"; @@ -4977,6 +4980,7 @@ OTHER_CFLAGS = "-DDEDICATED -DMACOS_X -DBOTLIB -DMISSIONPACK -force_cpusubtype_ALL -Wno-long-double"; OTHER_LDFLAGS = ""; OTHER_REZFLAGS = ""; + PREBINDING = NO; PRODUCT_NAME = Q3DedicatedServer; REZ_EXECUTABLE = YES; SECTORDER_FLAGS = ""; @@ -7716,8 +7720,8 @@ LIBRARY_SEARCH_PATHS = ""; OPTIMIZATION_CFLAGS = "-O2"; OTHER_CFLAGS = "-DMACOS_X -DBOTLIB -DMISSIONPACK -DSMP -force_cpusubtype_ALL"; - OTHER_LDFLAGS = ""; OTHER_REZFLAGS = ""; + PREBINDING = NO; PRODUCT_NAME = Quake3; SECTORDER_FLAGS = ""; USE_GCC3_PFE_SUPPORT = NO; @@ -8758,6 +8762,7 @@ OTHER_CFLAGS = "-DMACOS_X -DBOTLIB -DMISSIONPACK -DSMP -force_cpusubtype_ALL -faltivec"; OTHER_LDFLAGS = ""; OTHER_REZFLAGS = ""; + PREBINDING = NO; PRODUCT_NAME = "Quake3 G4"; SECTORDER_FLAGS = ""; USE_GCC3_PFE_SUPPORT = NO; @@ -10327,6 +10332,7 @@ OTHER_CFLAGS = "-DMACOS_X -DBOTLIB -DMISSIONPACK -DSMP -force_cpusubtype_ALL -faltivec -falign-loops=16 -falign-jumps=16 -fstrict-aliasing "; OTHER_LDFLAGS = ""; OTHER_REZFLAGS = ""; + PREBINDING = NO; PRODUCT_NAME = Q3DedicatedServer; REZ_EXECUTABLE = YES; SECTORDER_FLAGS = ""; Modified: trunk/code/macosx/macosx_display.m =================================================================== --- trunk/code/macosx/macosx_display.m 2005-10-26 17:09:50 UTC (rev 179) +++ trunk/code/macosx/macosx_display.m 2005-10-26 19:32:15 UTC (rev 180) @@ -232,7 +232,6 @@ void Sys_FadeScreens() { CGDisplayCount displayIndex; - int stepIndex; glwgamma_t *table; NSTimeInterval start, current; float time; @@ -261,7 +260,6 @@ { CGDisplayCount displayIndex; glwgamma_t *table; - int stepIndex; if (!glConfig.deviceSupportsGamma) return; @@ -295,7 +293,6 @@ void Sys_UnfadeScreens() { CGDisplayCount displayIndex; - int stepIndex; glwgamma_t *table; NSTimeInterval start, current; float time; @@ -323,7 +320,6 @@ void Sys_UnfadeScreen(CGDirectDisplayID display, glwgamma_t *table) { CGDisplayCount displayIndex; - int stepIndex; if (!glConfig.deviceSupportsGamma) return; Modified: trunk/code/macosx/macosx_glsmp_mutex.m =================================================================== --- trunk/code/macosx/macosx_glsmp_mutex.m 2005-10-26 17:09:50 UTC (rev 179) +++ trunk/code/macosx/macosx_glsmp_mutex.m 2005-10-26 19:32:15 UTC (rev 180) @@ -84,7 +84,7 @@ // The command buffer returned might be NULL, indicating that the rendering thread should exit. void *GLimp_RendererSleep(void) { - void *data; + volatile void *data; GLSTAMP("GLimp_RendererSleep start", 0); Modified: trunk/code/macosx/macosx_sys.m =================================================================== --- trunk/code/macosx/macosx_sys.m 2005-10-26 17:09:50 UTC (rev 179) +++ trunk/code/macosx/macosx_sys.m 2005-10-26 19:32:15 UTC (rev 180) @@ -85,8 +85,8 @@ void * QDECL Sys_LoadDll( const char *name, char *fqpath , long (QDECL **entryPoint)(long, ...), long (QDECL *systemcalls)(long, ...) ) { void *libHandle; - void (*dllEntry)( int (*syscallptr)(int, ...) ); - NSString *bundlePath, *libraryPath; + void (*dllEntry)( long (*syscallptr)(long, ...) ); + NSString *libraryPath; const char *path; // TTimo @@ -320,7 +320,7 @@ { CFStringRef value; kern_return_t krc; - CFDictionaryRef properties; + CFMutableDictionaryRef properties; qboolean isCDROM = qfalse; io_iterator_t parentIterator; io_object_t parent; From DONOTREPLY at icculus.org Wed Oct 26 15:45:24 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 26 Oct 2005 15:45:24 -0400 Subject: r181 - in trunk/code: botlib bspc cgame client game jpeg-6 null q3_ui qcommon renderer server ui unix win32 Message-ID: <20051026194524.20313.qmail@icculus.org> Author: tma Date: 2005-10-26 15:45:21 -0400 (Wed, 26 Oct 2005) New Revision: 181 Added: trunk/code/botlib/be_aas.h trunk/code/botlib/be_ai_char.h trunk/code/botlib/be_ai_chat.h trunk/code/botlib/be_ai_gen.h trunk/code/botlib/be_ai_goal.h trunk/code/botlib/be_ai_move.h trunk/code/botlib/be_ai_weap.h trunk/code/botlib/be_ea.h trunk/code/botlib/botlib.h trunk/code/client/keycodes.h trunk/code/qcommon/q_math.c trunk/code/qcommon/q_shared.c trunk/code/qcommon/q_shared.h trunk/code/qcommon/surfaceflags.h trunk/code/renderer/tr_types.h Removed: trunk/code/cgame/tr_types.h trunk/code/game/be_aas.h trunk/code/game/be_ai_char.h trunk/code/game/be_ai_chat.h trunk/code/game/be_ai_gen.h trunk/code/game/be_ai_goal.h trunk/code/game/be_ai_move.h trunk/code/game/be_ai_weap.h trunk/code/game/be_ea.h trunk/code/game/botlib.h trunk/code/game/q_math.c trunk/code/game/q_shared.c trunk/code/game/q_shared.h trunk/code/game/surfaceflags.h trunk/code/q3_ui/keycodes.h trunk/code/qcommon/cmd.c.save trunk/code/ui/keycodes.h Modified: trunk/code/botlib/be_aas_bspq3.c trunk/code/botlib/be_aas_cluster.c trunk/code/botlib/be_aas_debug.c trunk/code/botlib/be_aas_entity.c trunk/code/botlib/be_aas_file.c trunk/code/botlib/be_aas_main.c trunk/code/botlib/be_aas_move.c trunk/code/botlib/be_aas_optimize.c trunk/code/botlib/be_aas_reach.c trunk/code/botlib/be_aas_route.c trunk/code/botlib/be_aas_routealt.c trunk/code/botlib/be_aas_sample.c trunk/code/botlib/be_ai_char.c trunk/code/botlib/be_ai_chat.c trunk/code/botlib/be_ai_gen.c trunk/code/botlib/be_ai_goal.c trunk/code/botlib/be_ai_move.c trunk/code/botlib/be_ai_weap.c trunk/code/botlib/be_ai_weight.c trunk/code/botlib/be_ea.c trunk/code/botlib/be_interface.c trunk/code/botlib/l_crc.c trunk/code/botlib/l_libvar.c trunk/code/botlib/l_log.c trunk/code/botlib/l_memory.c trunk/code/botlib/l_precomp.c trunk/code/botlib/l_script.c trunk/code/botlib/l_struct.c trunk/code/bspc/aas_create.c trunk/code/bspc/aas_map.c trunk/code/bspc/aas_store.h trunk/code/bspc/be_aas_bspc.c trunk/code/bspc/map_q3.c trunk/code/cgame/cg_local.h trunk/code/client/cl_cgame.c trunk/code/client/cl_net_chan.c trunk/code/client/cl_ui.c trunk/code/client/client.h trunk/code/client/keys.h trunk/code/client/snd_local.h trunk/code/game/ai_chat.c trunk/code/game/ai_cmd.c trunk/code/game/ai_dmnet.c trunk/code/game/ai_dmq3.c trunk/code/game/ai_main.c trunk/code/game/ai_team.c trunk/code/game/ai_vcmd.c trunk/code/game/bg_lib.c trunk/code/game/bg_misc.c trunk/code/game/bg_pmove.c trunk/code/game/bg_slidemove.c trunk/code/game/g_local.h trunk/code/jpeg-6/jload.c trunk/code/null/mac_net.c trunk/code/q3_ui/ui_local.h trunk/code/qcommon/cm_local.h trunk/code/qcommon/cmd.c trunk/code/qcommon/common.c trunk/code/qcommon/cvar.c trunk/code/qcommon/files.c trunk/code/qcommon/huffman.c trunk/code/qcommon/msg.c trunk/code/qcommon/net_chan.c trunk/code/qcommon/vm_local.h trunk/code/renderer/tr_local.h trunk/code/renderer/tr_public.h trunk/code/server/server.h trunk/code/server/sv_bot.c trunk/code/server/sv_game.c trunk/code/server/sv_net_chan.c trunk/code/ui/ui_local.h trunk/code/ui/ui_shared.h trunk/code/unix/Makefile trunk/code/unix/linux_signals.c trunk/code/unix/linux_snd.c trunk/code/unix/sdl_snd.c trunk/code/unix/unix_main.c trunk/code/unix/unix_net.c trunk/code/unix/unix_shared.c trunk/code/win32/win_net.c trunk/code/win32/win_shared.c Log: * Moved various source files from their mod sdk locations to places more appropriate for open source Q3 * This patch looks bigger than it really is, however it will probably break the VC and OS X builds (easy to fix though) Copied: trunk/code/botlib/be_aas.h (from rev 175, trunk/code/game/be_aas.h) Modified: trunk/code/botlib/be_aas_bspq3.c =================================================================== --- trunk/code/botlib/be_aas_bspq3.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_bspq3.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,14 +29,14 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_script.h" #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_cluster.c =================================================================== --- trunk/code/botlib/be_aas_cluster.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_cluster.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_script.h" #include "l_precomp.h" @@ -38,8 +38,8 @@ #include "l_memory.h" #include "l_libvar.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_debug.c =================================================================== --- trunk/code/botlib/be_aas_debug.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_debug.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,15 +29,15 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_script.h" #include "l_precomp.h" #include "l_struct.h" #include "l_libvar.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_interface.h" #include "be_aas_funcs.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_entity.c =================================================================== --- trunk/code/botlib/be_aas_entity.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_entity.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_script.h" #include "l_precomp.h" @@ -37,8 +37,8 @@ #include "l_utils.h" #include "l_log.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_file.c =================================================================== --- trunk/code/botlib/be_aas_file.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_file.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_script.h" #include "l_precomp.h" @@ -37,8 +37,8 @@ #include "l_libvar.h" #include "l_utils.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_main.c =================================================================== --- trunk/code/botlib/be_aas_main.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_main.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_libvar.h" #include "l_utils.h" @@ -38,8 +38,8 @@ #include "l_struct.h" #include "l_log.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_move.c =================================================================== --- trunk/code/botlib/be_aas_move.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_move.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,15 +29,15 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_script.h" #include "l_precomp.h" #include "l_struct.h" #include "l_libvar.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_optimize.c =================================================================== --- trunk/code/botlib/be_aas_optimize.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_optimize.c 2005-10-26 19:45:21 UTC (rev 181) @@ -30,15 +30,15 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_libvar.h" #include "l_memory.h" #include "l_script.h" #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_reach.c =================================================================== --- trunk/code/botlib/be_aas_reach.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_reach.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_log.h" #include "l_memory.h" #include "l_script.h" @@ -37,8 +37,8 @@ #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_route.c =================================================================== --- trunk/code/botlib/be_aas_route.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_route.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_utils.h" #include "l_memory.h" #include "l_log.h" @@ -39,8 +39,8 @@ #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_routealt.c =================================================================== --- trunk/code/botlib/be_aas_routealt.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_routealt.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_utils.h" #include "l_memory.h" #include "l_log.h" @@ -37,8 +37,8 @@ #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_aas_sample.c =================================================================== --- trunk/code/botlib/be_aas_sample.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_aas_sample.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_script.h" #include "l_precomp.h" @@ -38,8 +38,8 @@ #include "l_libvar.h" #endif #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_interface.h" #include "be_aas_funcs.h" #include "be_aas_def.h" Modified: trunk/code/botlib/be_ai_char.c =================================================================== --- trunk/code/botlib/be_ai_char.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_ai_char.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_log.h" #include "l_memory.h" #include "l_utils.h" @@ -38,11 +38,11 @@ #include "l_struct.h" #include "l_libvar.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" -#include "../game/be_ai_char.h" +#include "be_ai_char.h" #define MAX_CHARACTERISTICS 80 Copied: trunk/code/botlib/be_ai_char.h (from rev 175, trunk/code/game/be_ai_char.h) Modified: trunk/code/botlib/be_ai_chat.c =================================================================== --- trunk/code/botlib/be_ai_chat.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_ai_chat.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_libvar.h" #include "l_script.h" @@ -38,12 +38,12 @@ #include "l_utils.h" #include "l_log.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" -#include "../game/be_ea.h" -#include "../game/be_ai_chat.h" +#include "be_ea.h" +#include "be_ai_chat.h" //escape character Copied: trunk/code/botlib/be_ai_chat.h (from rev 175, trunk/code/game/be_ai_chat.h) Modified: trunk/code/botlib/be_ai_gen.c =================================================================== --- trunk/code/botlib/be_ai_gen.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_ai_gen.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_log.h" #include "l_utils.h" @@ -37,11 +37,11 @@ #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" -#include "../game/be_ai_gen.h" +#include "be_ai_gen.h" //=========================================================================== // Copied: trunk/code/botlib/be_ai_gen.h (from rev 175, trunk/code/game/be_ai_gen.h) Modified: trunk/code/botlib/be_ai_goal.c =================================================================== --- trunk/code/botlib/be_ai_goal.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_ai_goal.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_utils.h" #include "l_libvar.h" #include "l_memory.h" @@ -38,13 +38,13 @@ #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" #include "be_ai_weight.h" -#include "../game/be_ai_goal.h" -#include "../game/be_ai_move.h" +#include "be_ai_goal.h" +#include "be_ai_move.h" //#define DEBUG_AI_GOAL #ifdef RANDOMIZE Copied: trunk/code/botlib/be_ai_goal.h (from rev 175, trunk/code/game/be_ai_goal.h) Modified: trunk/code/botlib/be_ai_move.c =================================================================== --- trunk/code/botlib/be_ai_move.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_ai_move.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_libvar.h" #include "l_utils.h" @@ -37,21 +37,21 @@ #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" -#include "../game/be_ea.h" -#include "../game/be_ai_goal.h" -#include "../game/be_ai_move.h" +#include "be_ea.h" +#include "be_ai_goal.h" +#include "be_ai_move.h" //#define DEBUG_AI_MOVE //#define DEBUG_ELEVATOR //#define DEBUG_GRAPPLE -// bk001204 - redundant bot_avoidspot_t, see ../game/be_ai_move.h +// bk001204 - redundant bot_avoidspot_t, see be_ai_move.h //movement state //NOTE: the moveflags MFL_ONGROUND, MFL_TELEPORTED, MFL_WATERJUMP and Copied: trunk/code/botlib/be_ai_move.h (from rev 175, trunk/code/game/be_ai_move.h) Modified: trunk/code/botlib/be_ai_weap.c =================================================================== --- trunk/code/botlib/be_ai_weap.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_ai_weap.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_libvar.h" #include "l_log.h" #include "l_memory.h" @@ -38,12 +38,12 @@ #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" #include "be_ai_weight.h" //fuzzy weights -#include "../game/be_ai_weap.h" +#include "be_ai_weap.h" //#define DEBUG_AI_WEAP Copied: trunk/code/botlib/be_ai_weap.h (from rev 175, trunk/code/game/be_ai_weap.h) Modified: trunk/code/botlib/be_ai_weight.c =================================================================== --- trunk/code/botlib/be_ai_weight.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_ai_weight.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_log.h" #include "l_utils.h" @@ -38,8 +38,8 @@ #include "l_struct.h" #include "l_libvar.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_interface.h" #include "be_ai_weight.h" Modified: trunk/code/botlib/be_ea.c =================================================================== --- trunk/code/botlib/be_ea.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_ea.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,12 +29,12 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_script.h" #include "l_precomp.h" #include "l_struct.h" -#include "../game/botlib.h" +#include "botlib.h" #include "be_interface.h" #define MAX_USERMOVE 400 Copied: trunk/code/botlib/be_ea.h (from rev 175, trunk/code/game/be_ea.h) Modified: trunk/code/botlib/be_interface.c =================================================================== --- trunk/code/botlib/be_interface.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/be_interface.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_log.h" #include "l_libvar.h" @@ -37,20 +37,20 @@ #include "l_precomp.h" #include "l_struct.h" #include "aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "botlib.h" +#include "be_aas.h" #include "be_aas_funcs.h" #include "be_aas_def.h" #include "be_interface.h" -#include "../game/be_ea.h" +#include "be_ea.h" #include "be_ai_weight.h" -#include "../game/be_ai_goal.h" -#include "../game/be_ai_move.h" -#include "../game/be_ai_weap.h" -#include "../game/be_ai_chat.h" -#include "../game/be_ai_char.h" -#include "../game/be_ai_gen.h" +#include "be_ai_goal.h" +#include "be_ai_move.h" +#include "be_ai_weap.h" +#include "be_ai_chat.h" +#include "be_ai_char.h" +#include "be_ai_gen.h" //library globals in a structure botlib_globals_t botlibglobals; Copied: trunk/code/botlib/botlib.h (from rev 175, trunk/code/game/botlib.h) Modified: trunk/code/botlib/l_crc.c =================================================================== --- trunk/code/botlib/l_crc.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/l_crc.c 2005-10-26 19:45:21 UTC (rev 181) @@ -33,8 +33,8 @@ #include #include -#include "../game/q_shared.h" -#include "../game/botlib.h" +#include "../qcommon/q_shared.h" +#include "botlib.h" #include "be_interface.h" //for botimport.Print Modified: trunk/code/botlib/l_libvar.c =================================================================== --- trunk/code/botlib/l_libvar.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/l_libvar.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ * *****************************************************************************/ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "l_memory.h" #include "l_libvar.h" Modified: trunk/code/botlib/l_log.c =================================================================== --- trunk/code/botlib/l_log.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/l_log.c 2005-10-26 19:45:21 UTC (rev 181) @@ -33,8 +33,8 @@ #include #include -#include "../game/q_shared.h" -#include "../game/botlib.h" +#include "../qcommon/q_shared.h" +#include "botlib.h" #include "be_interface.h" //for botimport.Print #include "l_libvar.h" Modified: trunk/code/botlib/l_memory.c =================================================================== --- trunk/code/botlib/l_memory.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/l_memory.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,8 +29,8 @@ * *****************************************************************************/ -#include "../game/q_shared.h" -#include "../game/botlib.h" +#include "../qcommon/q_shared.h" +#include "botlib.h" #include "l_log.h" #include "be_interface.h" Modified: trunk/code/botlib/l_precomp.c =================================================================== --- trunk/code/botlib/l_precomp.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/l_precomp.c 2005-10-26 19:45:21 UTC (rev 181) @@ -53,8 +53,8 @@ #endif //SCREWUP #ifdef BOTLIB -#include "../game/q_shared.h" -#include "../game/botlib.h" +#include "../qcommon/q_shared.h" +#include "botlib.h" #include "be_interface.h" #include "l_memory.h" #include "l_script.h" Modified: trunk/code/botlib/l_script.c =================================================================== --- trunk/code/botlib/l_script.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/l_script.c 2005-10-26 19:45:21 UTC (rev 181) @@ -49,8 +49,8 @@ #ifdef BOTLIB //include files for usage in the bot library -#include "../game/q_shared.h" -#include "../game/botlib.h" +#include "../qcommon/q_shared.h" +#include "botlib.h" #include "be_interface.h" #include "l_script.h" #include "l_memory.h" Modified: trunk/code/botlib/l_struct.c =================================================================== --- trunk/code/botlib/l_struct.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/botlib/l_struct.c 2005-10-26 19:45:21 UTC (rev 181) @@ -30,8 +30,8 @@ *****************************************************************************/ #ifdef BOTLIB -#include "../game/q_shared.h" -#include "../game/botlib.h" //for the include of be_interface.h +#include "../qcommon/q_shared.h" +#include "botlib.h" //for the include of be_interface.h #include "l_script.h" #include "l_precomp.h" #include "l_struct.h" Modified: trunk/code/bspc/aas_create.c =================================================================== --- trunk/code/bspc/aas_create.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/bspc/aas_create.c 2005-10-26 19:45:21 UTC (rev 181) @@ -30,7 +30,7 @@ #include "aas_edgemelting.h" #include "aas_prunenodes.h" #include "aas_cfg.h" -#include "../game/surfaceflags.h" +#include "../qcommon/surfaceflags.h" //#define AW_DEBUG //#define L_DEBUG Modified: trunk/code/bspc/aas_map.c =================================================================== --- trunk/code/bspc/aas_map.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/bspc/aas_map.c 2005-10-26 19:45:21 UTC (rev 181) @@ -25,7 +25,7 @@ #include "../botlib/aasfile.h" //aas_bbox_t #include "aas_store.h" //AAS_MAX_BBOXES #include "aas_cfg.h" -#include "../game/surfaceflags.h" +#include "../qcommon/surfaceflags.h" #define SPAWNFLAG_NOT_EASY 0x00000100 #define SPAWNFLAG_NOT_MEDIUM 0x00000200 Modified: trunk/code/bspc/aas_store.h =================================================================== --- trunk/code/bspc/aas_store.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/bspc/aas_store.h 2005-10-26 19:45:21 UTC (rev 181) @@ -36,7 +36,7 @@ #define AAS_MAX_CLUSTERS 65536 #define BSPCINCLUDE -#include "../game/be_aas.h" +#include "../botlib/be_aas.h" #include "../botlib/be_aas_def.h" /* Modified: trunk/code/bspc/be_aas_bspc.c =================================================================== --- trunk/code/bspc/be_aas_bspc.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/bspc/be_aas_bspc.c 2005-10-26 19:45:21 UTC (rev 181) @@ -20,7 +20,7 @@ =========================================================================== */ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../bspc/l_log.h" #include "../bspc/l_qfiles.h" #include "../botlib/l_memory.h" @@ -28,8 +28,8 @@ #include "../botlib/l_precomp.h" #include "../botlib/l_struct.h" #include "../botlib/aasfile.h" -#include "../game/botlib.h" -#include "../game/be_aas.h" +#include "../botlib/botlib.h" +#include "../botlib/be_aas.h" #include "../botlib/be_aas_def.h" #include "../qcommon/cm_public.h" Modified: trunk/code/bspc/map_q3.c =================================================================== --- trunk/code/bspc/map_q3.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/bspc/map_q3.c 2005-10-26 19:45:21 UTC (rev 181) @@ -28,7 +28,7 @@ #include "aas_map.h" //AAS_CreateMapBrushes #include "l_bsp_q3.h" #include "../qcommon/cm_patch.h" -#include "../game/surfaceflags.h" +#include "../qcommon/surfaceflags.h" #define NODESTACKSIZE 1024 Modified: trunk/code/cgame/cg_local.h =================================================================== --- trunk/code/cgame/cg_local.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/cgame/cg_local.h 2005-10-26 19:45:21 UTC (rev 181) @@ -20,8 +20,8 @@ =========================================================================== */ // -#include "../game/q_shared.h" -#include "tr_types.h" +#include "../qcommon/q_shared.h" +#include "../renderer/tr_types.h" #include "../game/bg_public.h" #include "cg_public.h" Deleted: trunk/code/cgame/tr_types.h =================================================================== --- trunk/code/cgame/tr_types.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/cgame/tr_types.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,229 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -#ifndef __TR_TYPES_H -#define __TR_TYPES_H - - -#define MAX_DLIGHTS 32 // can't be increased, because bit flags are used on surfaces -#define MAX_ENTITIES 1023 // can't be increased without changing drawsurf bit packing - -// renderfx flags -#define RF_MINLIGHT 1 // allways have some light (viewmodel, some items) -#define RF_THIRD_PERSON 2 // don't draw through eyes, only mirrors (player bodies, chat sprites) -#define RF_FIRST_PERSON 4 // only draw through eyes (view weapon, damage blood blob) -#define RF_DEPTHHACK 8 // for view weapon Z crunching -#define RF_NOSHADOW 64 // don't add stencil shadows - -#define RF_LIGHTING_ORIGIN 128 // use refEntity->lightingOrigin instead of refEntity->origin - // for lighting. This allows entities to sink into the floor - // with their origin going solid, and allows all parts of a - // player to get the same lighting -#define RF_SHADOW_PLANE 256 // use refEntity->shadowPlane -#define RF_WRAP_FRAMES 512 // mod the model frames by the maxframes to allow continuous - // animation without needing to know the frame count - -// refdef flags -#define RDF_NOWORLDMODEL 1 // used for player configuration screen -#define RDF_HYPERSPACE 4 // teleportation effect - -typedef struct { - vec3_t xyz; - float st[2]; - byte modulate[4]; -} polyVert_t; - -typedef struct poly_s { - qhandle_t hShader; - int numVerts; - polyVert_t *verts; -} poly_t; - -typedef enum { - RT_MODEL, - RT_POLY, - RT_SPRITE, - RT_BEAM, - RT_RAIL_CORE, - RT_RAIL_RINGS, - RT_LIGHTNING, - RT_PORTALSURFACE, // doesn't draw anything, just info for portals - - RT_MAX_REF_ENTITY_TYPE -} refEntityType_t; - -typedef struct { - refEntityType_t reType; - int renderfx; - - qhandle_t hModel; // opaque type outside refresh - - // most recent data - vec3_t lightingOrigin; // so multi-part models can be lit identically (RF_LIGHTING_ORIGIN) - float shadowPlane; // projection shadows go here, stencils go slightly lower - - vec3_t axis[3]; // rotation vectors - qboolean nonNormalizedAxes; // axis are not normalized, i.e. they have scale - float origin[3]; // also used as MODEL_BEAM's "from" - int frame; // also used as MODEL_BEAM's diameter - - // previous data for frame interpolation - float oldorigin[3]; // also used as MODEL_BEAM's "to" - int oldframe; - float backlerp; // 0.0 = current, 1.0 = old - - // texturing - int skinNum; // inline skin index - qhandle_t customSkin; // NULL for default skin - qhandle_t customShader; // use one image for the entire thing - - // misc - byte shaderRGBA[4]; // colors used by rgbgen entity shaders - float shaderTexCoord[2]; // texture coordinates used by tcMod entity modifiers - float shaderTime; // subtracted from refdef time to control effect start times - - // extra sprite information - float radius; - float rotation; -} refEntity_t; - - -#define MAX_RENDER_STRINGS 8 -#define MAX_RENDER_STRING_LENGTH 32 - -typedef struct { - int x, y, width, height; - float fov_x, fov_y; - vec3_t vieworg; - vec3_t viewaxis[3]; // transformation matrix - - // time in milliseconds for shader effects and other time dependent rendering issues - int time; - - int rdflags; // RDF_NOWORLDMODEL, etc - - // 1 bits will prevent the associated area from rendering at all - byte areamask[MAX_MAP_AREA_BYTES]; - - // text messages for deform text shaders - char text[MAX_RENDER_STRINGS][MAX_RENDER_STRING_LENGTH]; -} refdef_t; - - -typedef enum { - STEREO_CENTER, - STEREO_LEFT, - STEREO_RIGHT -} stereoFrame_t; - - -/* -** glconfig_t -** -** Contains variables specific to the OpenGL configuration -** being run right now. These are constant once the OpenGL -** subsystem is initialized. -*/ -typedef enum { - TC_NONE, - TC_S3TC -} textureCompression_t; - -typedef enum { - GLDRV_ICD, // driver is integrated with window system - // WARNING: there are tests that check for - // > GLDRV_ICD for minidriverness, so this - // should always be the lowest value in this - // enum set - GLDRV_STANDALONE, // driver is a non-3Dfx standalone driver - GLDRV_VOODOO // driver is a 3Dfx standalone driver -} glDriverType_t; - -typedef enum { - GLHW_GENERIC, // where everthing works the way it should - GLHW_3DFX_2D3D, // Voodoo Banshee or Voodoo3, relevant since if this is - // the hardware type then there can NOT exist a secondary - // display adapter - GLHW_RIVA128, // where you can't interpolate alpha - GLHW_RAGEPRO, // where you can't modulate alpha on alpha textures - GLHW_PERMEDIA2 // where you don't have src*dst -} glHardwareType_t; - -typedef struct { - char renderer_string[MAX_STRING_CHARS]; - char vendor_string[MAX_STRING_CHARS]; - char version_string[MAX_STRING_CHARS]; - char extensions_string[BIG_INFO_STRING]; - - int maxTextureSize; // queried from GL - int maxActiveTextures; // multitexture ability - - int colorBits, depthBits, stencilBits; - - glDriverType_t driverType; - glHardwareType_t hardwareType; - - qboolean deviceSupportsGamma; - textureCompression_t textureCompression; - qboolean textureEnvAddAvailable; - - int vidWidth, vidHeight; - // aspect is the screen's physical width / height, which may be different - // than scrWidth / scrHeight if the pixels are non-square - // normal screens should be 4/3, but wide aspect monitors may be 16/9 - float windowAspect; - - int displayFrequency; - - // synonymous with "does rendering consume the entire screen?", therefore - // a Voodoo or Voodoo2 will have this set to TRUE, as will a Win32 ICD that - // used CDS. - qboolean isFullscreen; - qboolean stereoEnabled; - qboolean smpActive; // dual processor -} glconfig_t; - -// FIXME: VM should be OS agnostic .. in theory - -/* -#ifdef Q3_VM - -#define _3DFX_DRIVER_NAME "Voodoo" -#define OPENGL_DRIVER_NAME "Default" - -#elif defined(_WIN32) -*/ - -#if defined(Q3_VM) || defined(_WIN32) - -#define _3DFX_DRIVER_NAME "3dfxvgl" -#define OPENGL_DRIVER_NAME "opengl32" - -#else - -#define _3DFX_DRIVER_NAME "libMesaVoodooGL.so" -// https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=524 -#define OPENGL_DRIVER_NAME "libGL.so.1" - -#endif // !defined _WIN32 - -#endif // __TR_TYPES_H Modified: trunk/code/client/cl_cgame.c =================================================================== --- trunk/code/client/cl_cgame.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/client/cl_cgame.c 2005-10-26 19:45:21 UTC (rev 181) @@ -23,7 +23,7 @@ #include "client.h" -#include "../game/botlib.h" +#include "../botlib/botlib.h" extern botlib_export_t *botlib_export; Modified: trunk/code/client/cl_net_chan.c =================================================================== --- trunk/code/client/cl_net_chan.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/client/cl_net_chan.c 2005-10-26 19:45:21 UTC (rev 181) @@ -20,7 +20,7 @@ =========================================================================== */ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #include "client.h" Modified: trunk/code/client/cl_ui.c =================================================================== --- trunk/code/client/cl_ui.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/client/cl_ui.c 2005-10-26 19:45:21 UTC (rev 181) @@ -22,7 +22,7 @@ #include "client.h" -#include "../game/botlib.h" +#include "../botlib/botlib.h" extern botlib_export_t *botlib_export; Modified: trunk/code/client/client.h =================================================================== --- trunk/code/client/client.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/client/client.h 2005-10-26 19:45:21 UTC (rev 181) @@ -21,7 +21,7 @@ */ // client.h -- primary header for client -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #include "../renderer/tr_public.h" #include "../ui/ui_public.h" Copied: trunk/code/client/keycodes.h (from rev 175, trunk/code/ui/keycodes.h) Modified: trunk/code/client/keys.h =================================================================== --- trunk/code/client/keys.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/client/keys.h 2005-10-26 19:45:21 UTC (rev 181) @@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ -#include "../ui/keycodes.h" +#include "keycodes.h" #define MAX_KEYS 256 Modified: trunk/code/client/snd_local.h =================================================================== --- trunk/code/client/snd_local.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/client/snd_local.h 2005-10-26 19:45:21 UTC (rev 181) @@ -22,7 +22,7 @@ // snd_local.h -- private sound definations -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #include "snd_public.h" Modified: trunk/code/game/ai_chat.c =================================================================== --- trunk/code/game/ai_chat.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/ai_chat.c 2005-10-26 19:45:21 UTC (rev 181) @@ -31,15 +31,15 @@ *****************************************************************************/ #include "g_local.h" -#include "botlib.h" -#include "be_aas.h" -#include "be_ea.h" -#include "be_ai_char.h" -#include "be_ai_chat.h" -#include "be_ai_gen.h" -#include "be_ai_goal.h" -#include "be_ai_move.h" -#include "be_ai_weap.h" +#include "../botlib/botlib.h" +#include "../botlib/be_aas.h" +#include "../botlib/be_ea.h" +#include "../botlib/be_ai_char.h" +#include "../botlib/be_ai_chat.h" +#include "../botlib/be_ai_gen.h" +#include "../botlib/be_ai_goal.h" +#include "../botlib/be_ai_move.h" +#include "../botlib/be_ai_weap.h" // #include "ai_main.h" #include "ai_dmq3.h" Modified: trunk/code/game/ai_cmd.c =================================================================== --- trunk/code/game/ai_cmd.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/ai_cmd.c 2005-10-26 19:45:21 UTC (rev 181) @@ -31,15 +31,15 @@ *****************************************************************************/ #include "g_local.h" -#include "botlib.h" -#include "be_aas.h" -#include "be_ea.h" -#include "be_ai_char.h" -#include "be_ai_chat.h" -#include "be_ai_gen.h" -#include "be_ai_goal.h" -#include "be_ai_move.h" -#include "be_ai_weap.h" +#include "../botlib/botlib.h" +#include "../botlib/be_aas.h" +#include "../botlib/be_ea.h" +#include "../botlib/be_ai_char.h" +#include "../botlib/be_ai_chat.h" +#include "../botlib/be_ai_gen.h" +#include "../botlib/be_ai_goal.h" +#include "../botlib/be_ai_move.h" +#include "../botlib/be_ai_weap.h" // #include "ai_main.h" #include "ai_dmq3.h" Modified: trunk/code/game/ai_dmnet.c =================================================================== --- trunk/code/game/ai_dmnet.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/ai_dmnet.c 2005-10-26 19:45:21 UTC (rev 181) @@ -31,15 +31,15 @@ *****************************************************************************/ #include "g_local.h" -#include "botlib.h" -#include "be_aas.h" -#include "be_ea.h" -#include "be_ai_char.h" -#include "be_ai_chat.h" -#include "be_ai_gen.h" -#include "be_ai_goal.h" -#include "be_ai_move.h" -#include "be_ai_weap.h" +#include "../botlib/botlib.h" +#include "../botlib/be_aas.h" +#include "../botlib/be_ea.h" +#include "../botlib/be_ai_char.h" +#include "../botlib/be_ai_chat.h" +#include "../botlib/be_ai_gen.h" +#include "../botlib/be_ai_goal.h" +#include "../botlib/be_ai_move.h" +#include "../botlib/be_ai_weap.h" // #include "ai_main.h" #include "ai_dmq3.h" @@ -56,7 +56,7 @@ // for the voice chats #include "../../ui/menudef.h" -//goal flag, see be_ai_goal.h for the other GFL_* +//goal flag, see ../botlib/be_ai_goal.h for the other GFL_* #define GFL_AIR 128 int numnodeswitches; Modified: trunk/code/game/ai_dmq3.c =================================================================== --- trunk/code/game/ai_dmq3.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/ai_dmq3.c 2005-10-26 19:45:21 UTC (rev 181) @@ -32,15 +32,15 @@ #include "g_local.h" -#include "botlib.h" -#include "be_aas.h" -#include "be_ea.h" -#include "be_ai_char.h" -#include "be_ai_chat.h" -#include "be_ai_gen.h" -#include "be_ai_goal.h" -#include "be_ai_move.h" -#include "be_ai_weap.h" +#include "../botlib/botlib.h" +#include "../botlib/be_aas.h" +#include "../botlib/be_ea.h" +#include "../botlib/be_ai_char.h" +#include "../botlib/be_ai_chat.h" +#include "../botlib/be_ai_gen.h" +#include "../botlib/be_ai_goal.h" +#include "../botlib/be_ai_move.h" +#include "../botlib/be_ai_weap.h" // #include "ai_main.h" #include "ai_dmq3.h" Modified: trunk/code/game/ai_main.c =================================================================== --- trunk/code/game/ai_main.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/ai_main.c 2005-10-26 19:45:21 UTC (rev 181) @@ -32,16 +32,16 @@ #include "g_local.h" -#include "q_shared.h" -#include "botlib.h" //bot lib interface -#include "be_aas.h" -#include "be_ea.h" -#include "be_ai_char.h" -#include "be_ai_chat.h" -#include "be_ai_gen.h" -#include "be_ai_goal.h" -#include "be_ai_move.h" -#include "be_ai_weap.h" +#include "../qcommon/q_shared.h" +#include "../botlib/botlib.h" //bot lib interface +#include "../botlib/be_aas.h" +#include "../botlib/be_ea.h" +#include "../botlib/be_ai_char.h" +#include "../botlib/be_ai_chat.h" +#include "../botlib/be_ai_gen.h" +#include "../botlib/be_ai_goal.h" +#include "../botlib/be_ai_move.h" +#include "../botlib/be_ai_weap.h" // #include "ai_main.h" #include "ai_dmq3.h" Modified: trunk/code/game/ai_team.c =================================================================== --- trunk/code/game/ai_team.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/ai_team.c 2005-10-26 19:45:21 UTC (rev 181) @@ -31,15 +31,15 @@ *****************************************************************************/ #include "g_local.h" -#include "botlib.h" -#include "be_aas.h" -#include "be_ea.h" -#include "be_ai_char.h" -#include "be_ai_chat.h" -#include "be_ai_gen.h" -#include "be_ai_goal.h" -#include "be_ai_move.h" -#include "be_ai_weap.h" +#include "../botlib/botlib.h" +#include "../botlib/be_aas.h" +#include "../botlib/be_ea.h" +#include "../botlib/be_ai_char.h" +#include "../botlib/be_ai_chat.h" +#include "../botlib/be_ai_gen.h" +#include "../botlib/be_ai_goal.h" +#include "../botlib/be_ai_move.h" +#include "../botlib/be_ai_weap.h" // #include "ai_main.h" #include "ai_dmq3.h" Modified: trunk/code/game/ai_vcmd.c =================================================================== --- trunk/code/game/ai_vcmd.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/ai_vcmd.c 2005-10-26 19:45:21 UTC (rev 181) @@ -31,15 +31,15 @@ *****************************************************************************/ #include "g_local.h" -#include "botlib.h" -#include "be_aas.h" -#include "be_ea.h" -#include "be_ai_char.h" -#include "be_ai_chat.h" -#include "be_ai_gen.h" -#include "be_ai_goal.h" -#include "be_ai_move.h" -#include "be_ai_weap.h" +#include "../botlib/botlib.h" +#include "../botlib/be_aas.h" +#include "../botlib/be_ea.h" +#include "../botlib/be_ai_char.h" +#include "../botlib/be_ai_chat.h" +#include "../botlib/be_ai_gen.h" +#include "../botlib/be_ai_goal.h" +#include "../botlib/be_ai_move.h" +#include "../botlib/be_ai_weap.h" // #include "ai_main.h" #include "ai_dmq3.h" Deleted: trunk/code/game/be_aas.h =================================================================== --- trunk/code/game/be_aas.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/be_aas.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,221 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// - -/***************************************************************************** - * name: be_aas.h - * - * desc: Area Awareness System, stuff exported to the AI - * - * $Archive: /source/code/botlib/be_aas.h $ - * - *****************************************************************************/ - -#ifndef MAX_STRINGFIELD -#define MAX_STRINGFIELD 80 -#endif - -//travel flags -#define TFL_INVALID 0x00000001 //traveling temporary not possible -#define TFL_WALK 0x00000002 //walking -#define TFL_CROUCH 0x00000004 //crouching -#define TFL_BARRIERJUMP 0x00000008 //jumping onto a barrier -#define TFL_JUMP 0x00000010 //jumping -#define TFL_LADDER 0x00000020 //climbing a ladder -#define TFL_WALKOFFLEDGE 0x00000080 //walking of a ledge -#define TFL_SWIM 0x00000100 //swimming -#define TFL_WATERJUMP 0x00000200 //jumping out of the water -#define TFL_TELEPORT 0x00000400 //teleporting -#define TFL_ELEVATOR 0x00000800 //elevator -#define TFL_ROCKETJUMP 0x00001000 //rocket jumping -#define TFL_BFGJUMP 0x00002000 //bfg jumping -#define TFL_GRAPPLEHOOK 0x00004000 //grappling hook -#define TFL_DOUBLEJUMP 0x00008000 //double jump -#define TFL_RAMPJUMP 0x00010000 //ramp jump -#define TFL_STRAFEJUMP 0x00020000 //strafe jump -#define TFL_JUMPPAD 0x00040000 //jump pad -#define TFL_AIR 0x00080000 //travel through air -#define TFL_WATER 0x00100000 //travel through water -#define TFL_SLIME 0x00200000 //travel through slime -#define TFL_LAVA 0x00400000 //travel through lava -#define TFL_DONOTENTER 0x00800000 //travel through donotenter area -#define TFL_FUNCBOB 0x01000000 //func bobbing -#define TFL_FLIGHT 0x02000000 //flight -#define TFL_BRIDGE 0x04000000 //move over a bridge -// -#define TFL_NOTTEAM1 0x08000000 //not team 1 -#define TFL_NOTTEAM2 0x10000000 //not team 2 - -//default travel flags -#define TFL_DEFAULT TFL_WALK|TFL_CROUCH|TFL_BARRIERJUMP|\ - TFL_JUMP|TFL_LADDER|\ - TFL_WALKOFFLEDGE|TFL_SWIM|TFL_WATERJUMP|\ - TFL_TELEPORT|TFL_ELEVATOR|\ - TFL_AIR|TFL_WATER|TFL_JUMPPAD|TFL_FUNCBOB - -typedef enum -{ - SOLID_NOT, // no interaction with other objects - SOLID_TRIGGER, // only touch when inside, after moving - SOLID_BBOX, // touch on edge - SOLID_BSP // bsp clip, touch on edge -} solid_t; - -//a trace is returned when a box is swept through the AAS world -typedef struct aas_trace_s -{ - qboolean startsolid; // if true, the initial point was in a solid area - float fraction; // time completed, 1.0 = didn't hit anything - vec3_t endpos; // final position - int ent; // entity blocking the trace - int lastarea; // last area the trace was in (zero if none) - int area; // area blocking the trace (zero if none) - int planenum; // number of the plane that was hit -} aas_trace_t; - -/* Defined in botlib.h - -//bsp_trace_t hit surface -typedef struct bsp_surface_s -{ - char name[16]; - int flags; - int value; -} bsp_surface_t; - -//a trace is returned when a box is swept through the BSP world -typedef struct bsp_trace_s -{ - qboolean allsolid; // if true, plane is not valid - qboolean startsolid; // if true, the initial point was in a solid area - float fraction; // time completed, 1.0 = didn't hit anything - vec3_t endpos; // final position - cplane_t plane; // surface normal at impact - float exp_dist; // expanded plane distance - int sidenum; // number of the brush side hit - bsp_surface_t surface; // hit surface - int contents; // contents on other side of surface hit - int ent; // number of entity hit -} bsp_trace_t; -// -*/ - -//entity info -typedef struct aas_entityinfo_s -{ - int valid; // true if updated this frame - int type; // entity type - int flags; // entity flags - float ltime; // local time - float update_time; // time between last and current update - int number; // number of the entity - vec3_t origin; // origin of the entity - vec3_t angles; // angles of the model - vec3_t old_origin; // for lerping - vec3_t lastvisorigin; // last visible origin - vec3_t mins; // bounding box minimums - vec3_t maxs; // bounding box maximums - int groundent; // ground entity - int solid; // solid type - int modelindex; // model used - int modelindex2; // weapons, CTF flags, etc - int frame; // model frame number - int event; // impulse events -- muzzle flashes, footsteps, etc - int eventParm; // even parameter - int powerups; // bit flags - int weapon; // determines weapon and flash model, etc - int legsAnim; // mask off ANIM_TOGGLEBIT - int torsoAnim; // mask off ANIM_TOGGLEBIT -} aas_entityinfo_t; - -// area info -typedef struct aas_areainfo_s -{ - int contents; - int flags; - int presencetype; - int cluster; - vec3_t mins; - vec3_t maxs; - vec3_t center; -} aas_areainfo_t; - -// client movement prediction stop events, stop as soon as: -#define SE_NONE 0 -#define SE_HITGROUND 1 // the ground is hit -#define SE_LEAVEGROUND 2 // there's no ground -#define SE_ENTERWATER 4 // water is entered -#define SE_ENTERSLIME 8 // slime is entered -#define SE_ENTERLAVA 16 // lava is entered -#define SE_HITGROUNDDAMAGE 32 // the ground is hit with damage -#define SE_GAP 64 // there's a gap -#define SE_TOUCHJUMPPAD 128 // touching a jump pad area -#define SE_TOUCHTELEPORTER 256 // touching teleporter -#define SE_ENTERAREA 512 // the given stoparea is entered -#define SE_HITGROUNDAREA 1024 // a ground face in the area is hit -#define SE_HITBOUNDINGBOX 2048 // hit the specified bounding box -#define SE_TOUCHCLUSTERPORTAL 4096 // touching a cluster portal - -typedef struct aas_clientmove_s -{ - vec3_t endpos; //position at the end of movement prediction - int endarea; //area at end of movement prediction - vec3_t velocity; //velocity at the end of movement prediction - aas_trace_t trace; //last trace - int presencetype; //presence type at end of movement prediction - int stopevent; //event that made the prediction stop - int endcontents; //contents at the end of movement prediction - float time; //time predicted ahead - int frames; //number of frames predicted ahead -} aas_clientmove_t; - -// alternate route goals -#define ALTROUTEGOAL_ALL 1 -#define ALTROUTEGOAL_CLUSTERPORTALS 2 -#define ALTROUTEGOAL_VIEWPORTALS 4 - -typedef struct aas_altroutegoal_s -{ - vec3_t origin; - int areanum; - unsigned short starttraveltime; - unsigned short goaltraveltime; - unsigned short extratraveltime; -} aas_altroutegoal_t; - -// route prediction stop events -#define RSE_NONE 0 -#define RSE_NOROUTE 1 //no route to goal -#define RSE_USETRAVELTYPE 2 //stop as soon as on of the given travel types is used -#define RSE_ENTERCONTENTS 4 //stop when entering the given contents -#define RSE_ENTERAREA 8 //stop when entering the given area - -typedef struct aas_predictroute_s -{ - vec3_t endpos; //position at the end of movement prediction - int endarea; //area at end of movement prediction - int stopevent; //event that made the prediction stop - int endcontents; //contents at the end of movement prediction - int endtravelflags; //end travel flags - int numareas; //number of areas predicted ahead - int time; //time predicted ahead (in hundreth of a sec) -} aas_predictroute_t; Deleted: trunk/code/game/be_ai_char.h =================================================================== --- trunk/code/game/be_ai_char.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/be_ai_char.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,48 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// - -/***************************************************************************** - * name: be_ai_char.h - * - * desc: bot characters - * - * $Archive: /source/code/botlib/be_ai_char.h $ - * - *****************************************************************************/ - -//loads a bot character from a file -int BotLoadCharacter(char *charfile, float skill); -//frees a bot character -void BotFreeCharacter(int character); -//returns a float characteristic -float Characteristic_Float(int character, int index); -//returns a bounded float characteristic -float Characteristic_BFloat(int character, int index, float min, float max); -//returns an integer characteristic -int Characteristic_Integer(int character, int index); -//returns a bounded integer characteristic -int Characteristic_BInteger(int character, int index, int min, int max); -//returns a string characteristic -void Characteristic_String(int character, int index, char *buf, int size); -//free cached bot characters -void BotShutdownCharacters(void); Deleted: trunk/code/game/be_ai_chat.h =================================================================== --- trunk/code/game/be_ai_chat.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/be_ai_chat.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,113 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -/***************************************************************************** - * name: be_ai_chat.h - * - * desc: char AI - * - * $Archive: /source/code/botlib/be_ai_chat.h $ - * - *****************************************************************************/ - -#define MAX_MESSAGE_SIZE 256 -#define MAX_CHATTYPE_NAME 32 -#define MAX_MATCHVARIABLES 8 - -#define CHAT_GENDERLESS 0 -#define CHAT_GENDERFEMALE 1 -#define CHAT_GENDERMALE 2 - -#define CHAT_ALL 0 -#define CHAT_TEAM 1 -#define CHAT_TELL 2 - -//a console message -typedef struct bot_consolemessage_s -{ - int handle; - float time; //message time - int type; //message type - char message[MAX_MESSAGE_SIZE]; //message - struct bot_consolemessage_s *prev, *next; //prev and next in list -} bot_consolemessage_t; - -//match variable -typedef struct bot_matchvariable_s -{ - char offset; - int length; -} bot_matchvariable_t; -//returned to AI when a match is found -typedef struct bot_match_s -{ - char string[MAX_MESSAGE_SIZE]; - int type; - int subtype; - bot_matchvariable_t variables[MAX_MATCHVARIABLES]; -} bot_match_t; - -//setup the chat AI -int BotSetupChatAI(void); -//shutdown the chat AI -void BotShutdownChatAI(void); -//returns the handle to a newly allocated chat state -int BotAllocChatState(void); -//frees the chatstate -void BotFreeChatState(int handle); -//adds a console message to the chat state -void BotQueueConsoleMessage(int chatstate, int type, char *message); -//removes the console message from the chat state -void BotRemoveConsoleMessage(int chatstate, int handle); -//returns the next console message from the state -int BotNextConsoleMessage(int chatstate, bot_consolemessage_t *cm); -//returns the number of console messages currently stored in the state -int BotNumConsoleMessages(int chatstate); -//selects a chat message of the given type -void BotInitialChat(int chatstate, char *type, int mcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7); -//returns the number of initial chat messages of the given type -int BotNumInitialChats(int chatstate, char *type); -//find and select a reply for the given message -int BotReplyChat(int chatstate, char *message, int mcontext, int vcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7); -//returns the length of the currently selected chat message -int BotChatLength(int chatstate); -//enters the selected chat message -void BotEnterChat(int chatstate, int clientto, int sendto); -//get the chat message ready to be output -void BotGetChatMessage(int chatstate, char *buf, int size); -//checks if the first string contains the second one, returns index into first string or -1 if not found -int StringContains(char *str1, char *str2, int casesensitive); -//finds a match for the given string using the match templates -int BotFindMatch(char *str, bot_match_t *match, unsigned long int context); -//returns a variable from a match -void BotMatchVariable(bot_match_t *match, int variable, char *buf, int size); -//unify all the white spaces in the string -void UnifyWhiteSpaces(char *string); -//replace all the context related synonyms in the string -void BotReplaceSynonyms(char *string, unsigned long int context); -//loads a chat file for the chat state -int BotLoadChatFile(int chatstate, char *chatfile, char *chatname); -//store the gender of the bot in the chat state -void BotSetChatGender(int chatstate, int gender); -//store the bot name in the chat state -void BotSetChatName(int chatstate, char *name, int client); - Deleted: trunk/code/game/be_ai_gen.h =================================================================== --- trunk/code/game/be_ai_gen.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/be_ai_gen.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,33 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// - -/***************************************************************************** - * name: be_ai_gen.h - * - * desc: genetic selection - * - * $Archive: /source/code/botlib/be_ai_gen.h $ - * - *****************************************************************************/ - -int GeneticParentsAndChildSelection(int numranks, float *ranks, int *parent1, int *parent2, int *child); Deleted: trunk/code/game/be_ai_goal.h =================================================================== --- trunk/code/game/be_ai_goal.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/be_ai_goal.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,118 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -/***************************************************************************** - * name: be_ai_goal.h - * - * desc: goal AI - * - * $Archive: /source/code/botlib/be_ai_goal.h $ - * - *****************************************************************************/ - -#define MAX_AVOIDGOALS 256 -#define MAX_GOALSTACK 8 - -#define GFL_NONE 0 -#define GFL_ITEM 1 -#define GFL_ROAM 2 -#define GFL_DROPPED 4 - -//a bot goal -typedef struct bot_goal_s -{ - vec3_t origin; //origin of the goal - int areanum; //area number of the goal - vec3_t mins, maxs; //mins and maxs of the goal - int entitynum; //number of the goal entity - int number; //goal number - int flags; //goal flags - int iteminfo; //item information -} bot_goal_t; - -//reset the whole goal state, but keep the item weights -void BotResetGoalState(int goalstate); -//reset avoid goals -void BotResetAvoidGoals(int goalstate); -//remove the goal with the given number from the avoid goals -void BotRemoveFromAvoidGoals(int goalstate, int number); -//push a goal onto the goal stack -void BotPushGoal(int goalstate, bot_goal_t *goal); -//pop a goal from the goal stack -void BotPopGoal(int goalstate); -//empty the bot's goal stack -void BotEmptyGoalStack(int goalstate); -//dump the avoid goals -void BotDumpAvoidGoals(int goalstate); -//dump the goal stack -void BotDumpGoalStack(int goalstate); -//get the name name of the goal with the given number -void BotGoalName(int number, char *name, int size); -//get the top goal from the stack -int BotGetTopGoal(int goalstate, bot_goal_t *goal); -//get the second goal on the stack -int BotGetSecondGoal(int goalstate, bot_goal_t *goal); -//choose the best long term goal item for the bot -int BotChooseLTGItem(int goalstate, vec3_t origin, int *inventory, int travelflags); -//choose the best nearby goal item for the bot -//the item may not be further away from the current bot position than maxtime -//also the travel time from the nearby goal towards the long term goal may not -//be larger than the travel time towards the long term goal from the current bot position -int BotChooseNBGItem(int goalstate, vec3_t origin, int *inventory, int travelflags, - bot_goal_t *ltg, float maxtime); -//returns true if the bot touches the goal -int BotTouchingGoal(vec3_t origin, bot_goal_t *goal); -//returns true if the goal should be visible but isn't -int BotItemGoalInVisButNotVisible(int viewer, vec3_t eye, vec3_t viewangles, bot_goal_t *goal); -//search for a goal for the given classname, the index can be used -//as a start point for the search when multiple goals are available with that same classname -int BotGetLevelItemGoal(int index, char *classname, bot_goal_t *goal); -//get the next camp spot in the map -int BotGetNextCampSpotGoal(int num, bot_goal_t *goal); -//get the map location with the given name -int BotGetMapLocationGoal(char *name, bot_goal_t *goal); -//returns the avoid goal time -float BotAvoidGoalTime(int goalstate, int number); -//set the avoid goal time -void BotSetAvoidGoalTime(int goalstate, int number, float avoidtime); -//initializes the items in the level -void BotInitLevelItems(void); -//regularly update dynamic entity items (dropped weapons, flags etc.) -void BotUpdateEntityItems(void); -//interbreed the goal fuzzy logic -void BotInterbreedGoalFuzzyLogic(int parent1, int parent2, int child); -//save the goal fuzzy logic to disk -void BotSaveGoalFuzzyLogic(int goalstate, char *filename); -//mutate the goal fuzzy logic -void BotMutateGoalFuzzyLogic(int goalstate, float range); -//loads item weights for the bot -int BotLoadItemWeights(int goalstate, char *filename); -//frees the item weights of the bot -void BotFreeItemWeights(int goalstate); -//returns the handle of a newly allocated goal state -int BotAllocGoalState(int client); -//free the given goal state -void BotFreeGoalState(int handle); -//setup the goal AI -int BotSetupGoalAI(void); -//shut down the goal AI -void BotShutdownGoalAI(void); Deleted: trunk/code/game/be_ai_move.h =================================================================== --- trunk/code/game/be_ai_move.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/be_ai_move.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,144 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// - -/***************************************************************************** - * name: be_ai_move.h - * - * desc: movement AI - * - * $Archive: /source/code/botlib/be_ai_move.h $ - * - *****************************************************************************/ - -//movement types -#define MOVE_WALK 1 -#define MOVE_CROUCH 2 -#define MOVE_JUMP 4 -#define MOVE_GRAPPLE 8 -#define MOVE_ROCKETJUMP 16 -#define MOVE_BFGJUMP 32 -//move flags -#define MFL_BARRIERJUMP 1 //bot is performing a barrier jump -#define MFL_ONGROUND 2 //bot is in the ground -#define MFL_SWIMMING 4 //bot is swimming -#define MFL_AGAINSTLADDER 8 //bot is against a ladder -#define MFL_WATERJUMP 16 //bot is waterjumping -#define MFL_TELEPORTED 32 //bot is being teleported -#define MFL_GRAPPLEPULL 64 //bot is being pulled by the grapple -#define MFL_ACTIVEGRAPPLE 128 //bot is using the grapple hook -#define MFL_GRAPPLERESET 256 //bot has reset the grapple -#define MFL_WALK 512 //bot should walk slowly -// move result flags -#define MOVERESULT_MOVEMENTVIEW 1 //bot uses view for movement -#define MOVERESULT_SWIMVIEW 2 //bot uses view for swimming -#define MOVERESULT_WAITING 4 //bot is waiting for something -#define MOVERESULT_MOVEMENTVIEWSET 8 //bot has set the view in movement code -#define MOVERESULT_MOVEMENTWEAPON 16 //bot uses weapon for movement -#define MOVERESULT_ONTOPOFOBSTACLE 32 //bot is ontop of obstacle -#define MOVERESULT_ONTOPOF_FUNCBOB 64 //bot is ontop of a func_bobbing -#define MOVERESULT_ONTOPOF_ELEVATOR 128 //bot is ontop of an elevator (func_plat) -#define MOVERESULT_BLOCKEDBYAVOIDSPOT 256 //bot is blocked by an avoid spot -// -#define MAX_AVOIDREACH 1 -#define MAX_AVOIDSPOTS 32 -// avoid spot types -#define AVOID_CLEAR 0 //clear all avoid spots -#define AVOID_ALWAYS 1 //avoid always -#define AVOID_DONTBLOCK 2 //never totally block -// restult types -#define RESULTTYPE_ELEVATORUP 1 //elevator is up -#define RESULTTYPE_WAITFORFUNCBOBBING 2 //waiting for func bobbing to arrive -#define RESULTTYPE_BADGRAPPLEPATH 4 //grapple path is obstructed -#define RESULTTYPE_INSOLIDAREA 8 //stuck in solid area, this is bad - -//structure used to initialize the movement state -//the or_moveflags MFL_ONGROUND, MFL_TELEPORTED and MFL_WATERJUMP come from the playerstate -typedef struct bot_initmove_s -{ - vec3_t origin; //origin of the bot - vec3_t velocity; //velocity of the bot - vec3_t viewoffset; //view offset - int entitynum; //entity number of the bot - int client; //client number of the bot - float thinktime; //time the bot thinks - int presencetype; //presencetype of the bot - vec3_t viewangles; //view angles of the bot - int or_moveflags; //values ored to the movement flags -} bot_initmove_t; - -//NOTE: the ideal_viewangles are only valid if MFL_MOVEMENTVIEW is set -typedef struct bot_moveresult_s -{ - int failure; //true if movement failed all together - int type; //failure or blocked type - int blocked; //true if blocked by an entity - int blockentity; //entity blocking the bot - int traveltype; //last executed travel type - int flags; //result flags - int weapon; //weapon used for movement - vec3_t movedir; //movement direction - vec3_t ideal_viewangles; //ideal viewangles for the movement -} bot_moveresult_t; - -#define bot_moveresult_t_cleared(x) bot_moveresult_t (x) = {0, 0, 0, 0, 0, 0, 0, {0, 0, 0}, {0, 0, 0}} - -// bk001204: from code/botlib/be_ai_move.c -// TTimo 04/12/2001 was moved here to avoid dup defines -typedef struct bot_avoidspot_s -{ - vec3_t origin; - float radius; - int type; -} bot_avoidspot_t; - -//resets the whole move state -void BotResetMoveState(int movestate); -//moves the bot to the given goal -void BotMoveToGoal(bot_moveresult_t *result, int movestate, bot_goal_t *goal, int travelflags); -//moves the bot in the specified direction using the specified type of movement -int BotMoveInDirection(int movestate, vec3_t dir, float speed, int type); -//reset avoid reachability -void BotResetAvoidReach(int movestate); -//resets the last avoid reachability -void BotResetLastAvoidReach(int movestate); -//returns a reachability area if the origin is in one -int BotReachabilityArea(vec3_t origin, int client); -//view target based on movement -int BotMovementViewTarget(int movestate, bot_goal_t *goal, int travelflags, float lookahead, vec3_t target); -//predict the position of a player based on movement towards a goal -int BotPredictVisiblePosition(vec3_t origin, int areanum, bot_goal_t *goal, int travelflags, vec3_t target); -//returns the handle of a newly allocated movestate -int BotAllocMoveState(void); -//frees the movestate with the given handle -void BotFreeMoveState(int handle); -//initialize movement state before performing any movement -void BotInitMoveState(int handle, bot_initmove_t *initmove); -//add a spot to avoid (if type == AVOID_CLEAR all spots are removed) -void BotAddAvoidSpot(int movestate, vec3_t origin, float radius, int type); -//must be called every map change -void BotSetBrushModelTypes(void); -//setup movement AI -int BotSetupMoveAI(void); -//shutdown movement AI -void BotShutdownMoveAI(void); - Deleted: trunk/code/game/be_ai_weap.h =================================================================== --- trunk/code/game/be_ai_weap.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/be_ai_weap.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,104 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// - -/***************************************************************************** - * name: be_ai_weap.h - * - * desc: weapon AI - * - * $Archive: /source/code/botlib/be_ai_weap.h $ - * - *****************************************************************************/ - -//projectile flags -#define PFL_WINDOWDAMAGE 1 //projectile damages through window -#define PFL_RETURN 2 //set when projectile returns to owner -//weapon flags -#define WFL_FIRERELEASED 1 //set when projectile is fired with key-up event -//damage types -#define DAMAGETYPE_IMPACT 1 //damage on impact -#define DAMAGETYPE_RADIAL 2 //radial damage -#define DAMAGETYPE_VISIBLE 4 //damage to all entities visible to the projectile - -typedef struct projectileinfo_s -{ - char name[MAX_STRINGFIELD]; - char model[MAX_STRINGFIELD]; - int flags; - float gravity; - int damage; - float radius; - int visdamage; - int damagetype; - int healthinc; - float push; - float detonation; - float bounce; - float bouncefric; - float bouncestop; -} projectileinfo_t; - -typedef struct weaponinfo_s -{ - int valid; //true if the weapon info is valid - int number; //number of the weapon - char name[MAX_STRINGFIELD]; - char model[MAX_STRINGFIELD]; - int level; - int weaponindex; - int flags; - char projectile[MAX_STRINGFIELD]; - int numprojectiles; - float hspread; - float vspread; - float speed; - float acceleration; - vec3_t recoil; - vec3_t offset; - vec3_t angleoffset; - float extrazvelocity; - int ammoamount; - int ammoindex; - float activate; - float reload; - float spinup; - float spindown; - projectileinfo_t proj; //pointer to the used projectile -} weaponinfo_t; - -//setup the weapon AI -int BotSetupWeaponAI(void); -//shut down the weapon AI -void BotShutdownWeaponAI(void); -//returns the best weapon to fight with -int BotChooseBestFightWeapon(int weaponstate, int *inventory); -//returns the information of the current weapon -void BotGetWeaponInfo(int weaponstate, int weapon, weaponinfo_t *weaponinfo); -//loads the weapon weights -int BotLoadWeaponWeights(int weaponstate, char *filename); -//returns a handle to a newly allocated weapon state -int BotAllocWeaponState(void); -//frees the weapon state -void BotFreeWeaponState(int weaponstate); -//resets the whole weapon state -void BotResetWeaponState(int weaponstate); Deleted: trunk/code/game/be_ea.h =================================================================== --- trunk/code/game/be_ea.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/be_ea.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,66 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// - -/***************************************************************************** - * name: be_ea.h - * - * desc: elementary actions - * - * $Archive: /source/code/botlib/be_ea.h $ - * - *****************************************************************************/ - -//ClientCommand elementary actions -void EA_Say(int client, char *str); -void EA_SayTeam(int client, char *str); -void EA_Command(int client, char *command ); - -void EA_Action(int client, int action); -void EA_Crouch(int client); -void EA_Walk(int client); -void EA_MoveUp(int client); -void EA_MoveDown(int client); -void EA_MoveForward(int client); -void EA_MoveBack(int client); -void EA_MoveLeft(int client); -void EA_MoveRight(int client); -void EA_Attack(int client); -void EA_Respawn(int client); -void EA_Talk(int client); -void EA_Gesture(int client); -void EA_Use(int client); - -//regular elementary actions -void EA_SelectWeapon(int client, int weapon); -void EA_Jump(int client); -void EA_DelayedJump(int client); -void EA_Move(int client, vec3_t dir, float speed); -void EA_View(int client, vec3_t viewangles); - -//send regular input to the server -void EA_EndRegular(int client, float thinktime); -void EA_GetInput(int client, float thinktime, bot_input_t *input); -void EA_ResetInput(int client); -//setup and shutdown routines -int EA_Setup(void); -void EA_Shutdown(void); Modified: trunk/code/game/bg_lib.c =================================================================== --- trunk/code/game/bg_lib.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/bg_lib.c 2005-10-26 19:45:21 UTC (rev 181) @@ -3,7 +3,7 @@ // bg_lib,c -- standard C library replacement routines used by code // compiled for the virtual machine -#include "q_shared.h" +#include "../qcommon/q_shared.h" /*- * Copyright (c) 1992, 1993 Modified: trunk/code/game/bg_misc.c =================================================================== --- trunk/code/game/bg_misc.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/bg_misc.c 2005-10-26 19:45:21 UTC (rev 181) @@ -22,7 +22,7 @@ // // bg_misc.c -- both games misc functions, all completely stateless -#include "q_shared.h" +#include "../qcommon/q_shared.h" #include "bg_public.h" /*QUAKED item_***** ( 0 0 0 ) (-16 -16 -16) (16 16 16) suspended Modified: trunk/code/game/bg_pmove.c =================================================================== --- trunk/code/game/bg_pmove.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/bg_pmove.c 2005-10-26 19:45:21 UTC (rev 181) @@ -23,7 +23,7 @@ // bg_pmove.c -- both games player movement code // takes a playerstate and a usercmd as input and returns a modifed playerstate -#include "q_shared.h" +#include "../qcommon/q_shared.h" #include "bg_public.h" #include "bg_local.h" Modified: trunk/code/game/bg_slidemove.c =================================================================== --- trunk/code/game/bg_slidemove.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/bg_slidemove.c 2005-10-26 19:45:21 UTC (rev 181) @@ -22,7 +22,7 @@ // // bg_slidemove.c -- part of bg_pmove functionality -#include "q_shared.h" +#include "../qcommon/q_shared.h" #include "bg_public.h" #include "bg_local.h" Deleted: trunk/code/game/botlib.h =================================================================== --- trunk/code/game/botlib.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/botlib.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,516 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -/***************************************************************************** - * name: botlib.h - * - * desc: bot AI library - * - * $Archive: /source/code/game/botai.h $ - * - *****************************************************************************/ - -#define BOTLIB_API_VERSION 2 - -struct aas_clientmove_s; -struct aas_entityinfo_s; -struct aas_areainfo_s; -struct aas_altroutegoal_s; -struct aas_predictroute_s; -struct bot_consolemessage_s; -struct bot_match_s; -struct bot_goal_s; -struct bot_moveresult_s; -struct bot_initmove_s; -struct weaponinfo_s; - -#define BOTFILESBASEFOLDER "botfiles" -//debug line colors -#define LINECOLOR_NONE -1 -#define LINECOLOR_RED 1//0xf2f2f0f0L -#define LINECOLOR_GREEN 2//0xd0d1d2d3L -#define LINECOLOR_BLUE 3//0xf3f3f1f1L -#define LINECOLOR_YELLOW 4//0xdcdddedfL -#define LINECOLOR_ORANGE 5//0xe0e1e2e3L - -//Print types -#define PRT_MESSAGE 1 -#define PRT_WARNING 2 -#define PRT_ERROR 3 -#define PRT_FATAL 4 -#define PRT_EXIT 5 - -//console message types -#define CMS_NORMAL 0 -#define CMS_CHAT 1 - -//botlib error codes -#define BLERR_NOERROR 0 //no error -#define BLERR_LIBRARYNOTSETUP 1 //library not setup -#define BLERR_INVALIDENTITYNUMBER 2 //invalid entity number -#define BLERR_NOAASFILE 3 //no AAS file available -#define BLERR_CANNOTOPENAASFILE 4 //cannot open AAS file -#define BLERR_WRONGAASFILEID 5 //incorrect AAS file id -#define BLERR_WRONGAASFILEVERSION 6 //incorrect AAS file version -#define BLERR_CANNOTREADAASLUMP 7 //cannot read AAS file lump -#define BLERR_CANNOTLOADICHAT 8 //cannot load initial chats -#define BLERR_CANNOTLOADITEMWEIGHTS 9 //cannot load item weights -#define BLERR_CANNOTLOADITEMCONFIG 10 //cannot load item config -#define BLERR_CANNOTLOADWEAPONWEIGHTS 11 //cannot load weapon weights -#define BLERR_CANNOTLOADWEAPONCONFIG 12 //cannot load weapon config - -//action flags -#define ACTION_ATTACK 0x0000001 -#define ACTION_USE 0x0000002 -#define ACTION_RESPAWN 0x0000008 -#define ACTION_JUMP 0x0000010 -#define ACTION_MOVEUP 0x0000020 -#define ACTION_CROUCH 0x0000080 -#define ACTION_MOVEDOWN 0x0000100 -#define ACTION_MOVEFORWARD 0x0000200 -#define ACTION_MOVEBACK 0x0000800 -#define ACTION_MOVELEFT 0x0001000 -#define ACTION_MOVERIGHT 0x0002000 -#define ACTION_DELAYEDJUMP 0x0008000 -#define ACTION_TALK 0x0010000 -#define ACTION_GESTURE 0x0020000 -#define ACTION_WALK 0x0080000 -#define ACTION_AFFIRMATIVE 0x0100000 -#define ACTION_NEGATIVE 0x0200000 -#define ACTION_GETFLAG 0x0800000 -#define ACTION_GUARDBASE 0x1000000 -#define ACTION_PATROL 0x2000000 -#define ACTION_FOLLOWME 0x8000000 - -//the bot input, will be converted to an usercmd_t -typedef struct bot_input_s -{ - float thinktime; //time since last output (in seconds) - vec3_t dir; //movement direction - float speed; //speed in the range [0, 400] - vec3_t viewangles; //the view angles - int actionflags; //one of the ACTION_? flags - int weapon; //weapon to use -} bot_input_t; - -#ifndef BSPTRACE - -#define BSPTRACE - -//bsp_trace_t hit surface -typedef struct bsp_surface_s -{ - char name[16]; - int flags; - int value; -} bsp_surface_t; - -//remove the bsp_trace_s structure definition l8r on -//a trace is returned when a box is swept through the world -typedef struct bsp_trace_s -{ - qboolean allsolid; // if true, plane is not valid - qboolean startsolid; // if true, the initial point was in a solid area - float fraction; // time completed, 1.0 = didn't hit anything - vec3_t endpos; // final position - cplane_t plane; // surface normal at impact - float exp_dist; // expanded plane distance - int sidenum; // number of the brush side hit - bsp_surface_t surface; // the hit point surface - int contents; // contents on other side of surface hit - int ent; // number of entity hit -} bsp_trace_t; - -#endif // BSPTRACE - -//entity state -typedef struct bot_entitystate_s -{ - int type; // entity type - int flags; // entity flags - vec3_t origin; // origin of the entity - vec3_t angles; // angles of the model - vec3_t old_origin; // for lerping - vec3_t mins; // bounding box minimums - vec3_t maxs; // bounding box maximums - int groundent; // ground entity - int solid; // solid type - int modelindex; // model used - int modelindex2; // weapons, CTF flags, etc - int frame; // model frame number - int event; // impulse events -- muzzle flashes, footsteps, etc - int eventParm; // even parameter - int powerups; // bit flags - int weapon; // determines weapon and flash model, etc - int legsAnim; // mask off ANIM_TOGGLEBIT - int torsoAnim; // mask off ANIM_TOGGLEBIT -} bot_entitystate_t; - -//bot AI library exported functions -typedef struct botlib_import_s -{ - //print messages from the bot library - void (QDECL *Print)(int type, char *fmt, ...); - //trace a bbox through the world - void (*Trace)(bsp_trace_t *trace, vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int passent, int contentmask); - //trace a bbox against a specific entity - void (*EntityTrace)(bsp_trace_t *trace, vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int entnum, int contentmask); - //retrieve the contents at the given point - int (*PointContents)(vec3_t point); - //check if the point is in potential visible sight - int (*inPVS)(vec3_t p1, vec3_t p2); - //retrieve the BSP entity data lump - char *(*BSPEntityData)(void); - // - void (*BSPModelMinsMaxsOrigin)(int modelnum, vec3_t angles, vec3_t mins, vec3_t maxs, vec3_t origin); - //send a bot client command - void (*BotClientCommand)(int client, char *command); - //memory allocation - void *(*GetMemory)(int size); // allocate from Zone - void (*FreeMemory)(void *ptr); // free memory from Zone - int (*AvailableMemory)(void); // available Zone memory - void *(*HunkAlloc)(int size); // allocate from hunk - //file system access - int (*FS_FOpenFile)( const char *qpath, fileHandle_t *file, fsMode_t mode ); - int (*FS_Read)( void *buffer, int len, fileHandle_t f ); - int (*FS_Write)( const void *buffer, int len, fileHandle_t f ); - void (*FS_FCloseFile)( fileHandle_t f ); - int (*FS_Seek)( fileHandle_t f, long offset, int origin ); - //debug visualisation stuff - int (*DebugLineCreate)(void); - void (*DebugLineDelete)(int line); - void (*DebugLineShow)(int line, vec3_t start, vec3_t end, int color); - // - int (*DebugPolygonCreate)(int color, int numPoints, vec3_t *points); - void (*DebugPolygonDelete)(int id); -} botlib_import_t; - -typedef struct aas_export_s -{ - //----------------------------------- - // be_aas_entity.h - //----------------------------------- - void (*AAS_EntityInfo)(int entnum, struct aas_entityinfo_s *info); - //----------------------------------- - // be_aas_main.h - //----------------------------------- - int (*AAS_Initialized)(void); - void (*AAS_PresenceTypeBoundingBox)(int presencetype, vec3_t mins, vec3_t maxs); - float (*AAS_Time)(void); - //-------------------------------------------- - // be_aas_sample.c - //-------------------------------------------- - int (*AAS_PointAreaNum)(vec3_t point); - int (*AAS_PointReachabilityAreaIndex)( vec3_t point ); - int (*AAS_TraceAreas)(vec3_t start, vec3_t end, int *areas, vec3_t *points, int maxareas); - int (*AAS_BBoxAreas)(vec3_t absmins, vec3_t absmaxs, int *areas, int maxareas); - int (*AAS_AreaInfo)( int areanum, struct aas_areainfo_s *info ); - //-------------------------------------------- - // be_aas_bspq3.c - //-------------------------------------------- - int (*AAS_PointContents)(vec3_t point); - int (*AAS_NextBSPEntity)(int ent); - int (*AAS_ValueForBSPEpairKey)(int ent, char *key, char *value, int size); - int (*AAS_VectorForBSPEpairKey)(int ent, char *key, vec3_t v); - int (*AAS_FloatForBSPEpairKey)(int ent, char *key, float *value); - int (*AAS_IntForBSPEpairKey)(int ent, char *key, int *value); - //-------------------------------------------- - // be_aas_reach.c - //-------------------------------------------- - int (*AAS_AreaReachability)(int areanum); - //-------------------------------------------- - // be_aas_route.c - //-------------------------------------------- - int (*AAS_AreaTravelTimeToGoalArea)(int areanum, vec3_t origin, int goalareanum, int travelflags); - int (*AAS_EnableRoutingArea)(int areanum, int enable); - int (*AAS_PredictRoute)(struct aas_predictroute_s *route, int areanum, vec3_t origin, - int goalareanum, int travelflags, int maxareas, int maxtime, - int stopevent, int stopcontents, int stoptfl, int stopareanum); - //-------------------------------------------- - // be_aas_altroute.c - //-------------------------------------------- - int (*AAS_AlternativeRouteGoals)(vec3_t start, int startareanum, vec3_t goal, int goalareanum, int travelflags, - struct aas_altroutegoal_s *altroutegoals, int maxaltroutegoals, - int type); - //-------------------------------------------- - // be_aas_move.c - //-------------------------------------------- - int (*AAS_Swimming)(vec3_t origin); - int (*AAS_PredictClientMovement)(struct aas_clientmove_s *move, - int entnum, vec3_t origin, - int presencetype, int onground, - vec3_t velocity, vec3_t cmdmove, - int cmdframes, - int maxframes, float frametime, - int stopevent, int stopareanum, int visualize); -} aas_export_t; - -typedef struct ea_export_s -{ - //ClientCommand elementary actions - void (*EA_Command)(int client, char *command ); - void (*EA_Say)(int client, char *str); - void (*EA_SayTeam)(int client, char *str); - // - void (*EA_Action)(int client, int action); - void (*EA_Gesture)(int client); - void (*EA_Talk)(int client); - void (*EA_Attack)(int client); - void (*EA_Use)(int client); - void (*EA_Respawn)(int client); - void (*EA_MoveUp)(int client); - void (*EA_MoveDown)(int client); - void (*EA_MoveForward)(int client); - void (*EA_MoveBack)(int client); - void (*EA_MoveLeft)(int client); - void (*EA_MoveRight)(int client); - void (*EA_Crouch)(int client); - - void (*EA_SelectWeapon)(int client, int weapon); - void (*EA_Jump)(int client); - void (*EA_DelayedJump)(int client); - void (*EA_Move)(int client, vec3_t dir, float speed); - void (*EA_View)(int client, vec3_t viewangles); - //send regular input to the server - void (*EA_EndRegular)(int client, float thinktime); - void (*EA_GetInput)(int client, float thinktime, bot_input_t *input); - void (*EA_ResetInput)(int client); -} ea_export_t; - -typedef struct ai_export_s -{ - //----------------------------------- - // be_ai_char.h - //----------------------------------- - int (*BotLoadCharacter)(char *charfile, float skill); - void (*BotFreeCharacter)(int character); - float (*Characteristic_Float)(int character, int index); - float (*Characteristic_BFloat)(int character, int index, float min, float max); - int (*Characteristic_Integer)(int character, int index); - int (*Characteristic_BInteger)(int character, int index, int min, int max); - void (*Characteristic_String)(int character, int index, char *buf, int size); - //----------------------------------- - // be_ai_chat.h - //----------------------------------- - int (*BotAllocChatState)(void); - void (*BotFreeChatState)(int handle); - void (*BotQueueConsoleMessage)(int chatstate, int type, char *message); - void (*BotRemoveConsoleMessage)(int chatstate, int handle); - int (*BotNextConsoleMessage)(int chatstate, struct bot_consolemessage_s *cm); - int (*BotNumConsoleMessages)(int chatstate); - void (*BotInitialChat)(int chatstate, char *type, int mcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7); - int (*BotNumInitialChats)(int chatstate, char *type); - int (*BotReplyChat)(int chatstate, char *message, int mcontext, int vcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7); - int (*BotChatLength)(int chatstate); - void (*BotEnterChat)(int chatstate, int client, int sendto); - void (*BotGetChatMessage)(int chatstate, char *buf, int size); - int (*StringContains)(char *str1, char *str2, int casesensitive); - int (*BotFindMatch)(char *str, struct bot_match_s *match, unsigned long int context); - void (*BotMatchVariable)(struct bot_match_s *match, int variable, char *buf, int size); - void (*UnifyWhiteSpaces)(char *string); - void (*BotReplaceSynonyms)(char *string, unsigned long int context); - int (*BotLoadChatFile)(int chatstate, char *chatfile, char *chatname); - void (*BotSetChatGender)(int chatstate, int gender); - void (*BotSetChatName)(int chatstate, char *name, int client); - //----------------------------------- - // be_ai_goal.h - //----------------------------------- - void (*BotResetGoalState)(int goalstate); - void (*BotResetAvoidGoals)(int goalstate); - void (*BotRemoveFromAvoidGoals)(int goalstate, int number); - void (*BotPushGoal)(int goalstate, struct bot_goal_s *goal); - void (*BotPopGoal)(int goalstate); - void (*BotEmptyGoalStack)(int goalstate); - void (*BotDumpAvoidGoals)(int goalstate); - void (*BotDumpGoalStack)(int goalstate); - void (*BotGoalName)(int number, char *name, int size); - int (*BotGetTopGoal)(int goalstate, struct bot_goal_s *goal); - int (*BotGetSecondGoal)(int goalstate, struct bot_goal_s *goal); - int (*BotChooseLTGItem)(int goalstate, vec3_t origin, int *inventory, int travelflags); - int (*BotChooseNBGItem)(int goalstate, vec3_t origin, int *inventory, int travelflags, - struct bot_goal_s *ltg, float maxtime); - int (*BotTouchingGoal)(vec3_t origin, struct bot_goal_s *goal); - int (*BotItemGoalInVisButNotVisible)(int viewer, vec3_t eye, vec3_t viewangles, struct bot_goal_s *goal); - int (*BotGetLevelItemGoal)(int index, char *classname, struct bot_goal_s *goal); - int (*BotGetNextCampSpotGoal)(int num, struct bot_goal_s *goal); - int (*BotGetMapLocationGoal)(char *name, struct bot_goal_s *goal); - float (*BotAvoidGoalTime)(int goalstate, int number); - void (*BotSetAvoidGoalTime)(int goalstate, int number, float avoidtime); - void (*BotInitLevelItems)(void); - void (*BotUpdateEntityItems)(void); - int (*BotLoadItemWeights)(int goalstate, char *filename); - void (*BotFreeItemWeights)(int goalstate); - void (*BotInterbreedGoalFuzzyLogic)(int parent1, int parent2, int child); - void (*BotSaveGoalFuzzyLogic)(int goalstate, char *filename); - void (*BotMutateGoalFuzzyLogic)(int goalstate, float range); - int (*BotAllocGoalState)(int client); - void (*BotFreeGoalState)(int handle); - //----------------------------------- - // be_ai_move.h - //----------------------------------- - void (*BotResetMoveState)(int movestate); - void (*BotMoveToGoal)(struct bot_moveresult_s *result, int movestate, struct bot_goal_s *goal, int travelflags); - int (*BotMoveInDirection)(int movestate, vec3_t dir, float speed, int type); - void (*BotResetAvoidReach)(int movestate); - void (*BotResetLastAvoidReach)(int movestate); - int (*BotReachabilityArea)(vec3_t origin, int testground); - int (*BotMovementViewTarget)(int movestate, struct bot_goal_s *goal, int travelflags, float lookahead, vec3_t target); - int (*BotPredictVisiblePosition)(vec3_t origin, int areanum, struct bot_goal_s *goal, int travelflags, vec3_t target); - int (*BotAllocMoveState)(void); - void (*BotFreeMoveState)(int handle); - void (*BotInitMoveState)(int handle, struct bot_initmove_s *initmove); - void (*BotAddAvoidSpot)(int movestate, vec3_t origin, float radius, int type); - //----------------------------------- - // be_ai_weap.h - //----------------------------------- - int (*BotChooseBestFightWeapon)(int weaponstate, int *inventory); - void (*BotGetWeaponInfo)(int weaponstate, int weapon, struct weaponinfo_s *weaponinfo); - int (*BotLoadWeaponWeights)(int weaponstate, char *filename); - int (*BotAllocWeaponState)(void); - void (*BotFreeWeaponState)(int weaponstate); - void (*BotResetWeaponState)(int weaponstate); - //----------------------------------- - // be_ai_gen.h - //----------------------------------- - int (*GeneticParentsAndChildSelection)(int numranks, float *ranks, int *parent1, int *parent2, int *child); -} ai_export_t; - -//bot AI library imported functions -typedef struct botlib_export_s -{ - //Area Awareness System functions - aas_export_t aas; - //Elementary Action functions - ea_export_t ea; - //AI functions - ai_export_t ai; - //setup the bot library, returns BLERR_ - int (*BotLibSetup)(void); - //shutdown the bot library, returns BLERR_ - int (*BotLibShutdown)(void); - //sets a library variable returns BLERR_ - int (*BotLibVarSet)(char *var_name, char *value); - //gets a library variable returns BLERR_ - int (*BotLibVarGet)(char *var_name, char *value, int size); - - //sets a C-like define returns BLERR_ - int (*PC_AddGlobalDefine)(char *string); - int (*PC_LoadSourceHandle)(const char *filename); - int (*PC_FreeSourceHandle)(int handle); - int (*PC_ReadTokenHandle)(int handle, pc_token_t *pc_token); - int (*PC_SourceFileAndLine)(int handle, char *filename, int *line); - - //start a frame in the bot library - int (*BotLibStartFrame)(float time); - //load a new map in the bot library - int (*BotLibLoadMap)(const char *mapname); - //entity updates - int (*BotLibUpdateEntity)(int ent, bot_entitystate_t *state); - //just for testing - int (*Test)(int parm0, char *parm1, vec3_t parm2, vec3_t parm3); -} botlib_export_t; - -//linking of bot library -botlib_export_t *GetBotLibAPI( int apiVersion, botlib_import_t *import ); - -/* Library variables: - -name: default: module(s): description: - -"basedir" "" l_utils.c base directory -"gamedir" "" l_utils.c game directory -"cddir" "" l_utils.c CD directory - -"log" "0" l_log.c enable/disable creating a log file -"maxclients" "4" be_interface.c maximum number of clients -"maxentities" "1024" be_interface.c maximum number of entities -"bot_developer" "0" be_interface.c bot developer mode - -"phys_friction" "6" be_aas_move.c ground friction -"phys_stopspeed" "100" be_aas_move.c stop speed -"phys_gravity" "800" be_aas_move.c gravity value -"phys_waterfriction" "1" be_aas_move.c water friction -"phys_watergravity" "400" be_aas_move.c gravity in water -"phys_maxvelocity" "320" be_aas_move.c maximum velocity -"phys_maxwalkvelocity" "320" be_aas_move.c maximum walk velocity -"phys_maxcrouchvelocity" "100" be_aas_move.c maximum crouch velocity -"phys_maxswimvelocity" "150" be_aas_move.c maximum swim velocity -"phys_walkaccelerate" "10" be_aas_move.c walk acceleration -"phys_airaccelerate" "1" be_aas_move.c air acceleration -"phys_swimaccelerate" "4" be_aas_move.c swim acceleration -"phys_maxstep" "18" be_aas_move.c maximum step height -"phys_maxsteepness" "0.7" be_aas_move.c maximum floor steepness -"phys_maxbarrier" "32" be_aas_move.c maximum barrier height -"phys_maxwaterjump" "19" be_aas_move.c maximum waterjump height -"phys_jumpvel" "270" be_aas_move.c jump z velocity -"phys_falldelta5" "40" be_aas_move.c -"phys_falldelta10" "60" be_aas_move.c -"rs_waterjump" "400" be_aas_move.c -"rs_teleport" "50" be_aas_move.c -"rs_barrierjump" "100" be_aas_move.c -"rs_startcrouch" "300" be_aas_move.c -"rs_startgrapple" "500" be_aas_move.c -"rs_startwalkoffledge" "70" be_aas_move.c -"rs_startjump" "300" be_aas_move.c -"rs_rocketjump" "500" be_aas_move.c -"rs_bfgjump" "500" be_aas_move.c -"rs_jumppad" "250" be_aas_move.c -"rs_aircontrolledjumppad" "300" be_aas_move.c -"rs_funcbob" "300" be_aas_move.c -"rs_startelevator" "50" be_aas_move.c -"rs_falldamage5" "300" be_aas_move.c -"rs_falldamage10" "500" be_aas_move.c -"rs_maxjumpfallheight" "450" be_aas_move.c - -"max_aaslinks" "4096" be_aas_sample.c maximum links in the AAS -"max_routingcache" "4096" be_aas_route.c maximum routing cache size in KB -"forceclustering" "0" be_aas_main.c force recalculation of clusters -"forcereachability" "0" be_aas_main.c force recalculation of reachabilities -"forcewrite" "0" be_aas_main.c force writing of aas file -"aasoptimize" "0" be_aas_main.c enable aas optimization -"sv_mapChecksum" "0" be_aas_main.c BSP file checksum -"bot_visualizejumppads" "0" be_aas_reach.c visualize jump pads - -"bot_reloadcharacters" "0" - reload bot character files -"ai_gametype" "0" be_ai_goal.c game type -"droppedweight" "1000" be_ai_goal.c additional dropped item weight -"weapindex_rocketlauncher" "5" be_ai_move.c rl weapon index for rocket jumping -"weapindex_bfg10k" "9" be_ai_move.c bfg weapon index for bfg jumping -"weapindex_grapple" "10" be_ai_move.c grapple weapon index for grappling -"entitytypemissile" "3" be_ai_move.c ET_MISSILE -"offhandgrapple" "0" be_ai_move.c enable off hand grapple hook -"cmd_grappleon" "grappleon" be_ai_move.c command to activate off hand grapple -"cmd_grappleoff" "grappleoff" be_ai_move.c command to deactivate off hand grapple -"itemconfig" "items.c" be_ai_goal.c item configuration file -"weaponconfig" "weapons.c" be_ai_weap.c weapon configuration file -"synfile" "syn.c" be_ai_chat.c file with synonyms -"rndfile" "rnd.c" be_ai_chat.c file with random strings -"matchfile" "match.c" be_ai_chat.c file with match strings -"nochat" "0" be_ai_chat.c disable chats -"max_messages" "1024" be_ai_chat.c console message heap size -"max_weaponinfo" "32" be_ai_weap.c maximum number of weapon info -"max_projectileinfo" "32" be_ai_weap.c maximum number of projectile info -"max_iteminfo" "256" be_ai_goal.c maximum number of item info -"max_levelitems" "256" be_ai_goal.c maximum number of level items - -*/ - Modified: trunk/code/game/g_local.h =================================================================== --- trunk/code/game/g_local.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/g_local.h 2005-10-26 19:45:21 UTC (rev 181) @@ -22,7 +22,7 @@ // // g_local.h -- local definitions for game module -#include "q_shared.h" +#include "../qcommon/q_shared.h" #include "bg_public.h" #include "g_public.h" Deleted: trunk/code/game/q_math.c =================================================================== --- trunk/code/game/q_math.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/q_math.c 2005-10-26 19:45:21 UTC (rev 181) @@ -1,1307 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -// q_math.c -- stateless support routines that are included in each code module -#include "q_shared.h" - - -vec3_t vec3_origin = {0,0,0}; -vec3_t axisDefault[3] = { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } }; - - -vec4_t colorBlack = {0, 0, 0, 1}; -vec4_t colorRed = {1, 0, 0, 1}; -vec4_t colorGreen = {0, 1, 0, 1}; -vec4_t colorBlue = {0, 0, 1, 1}; -vec4_t colorYellow = {1, 1, 0, 1}; -vec4_t colorMagenta= {1, 0, 1, 1}; -vec4_t colorCyan = {0, 1, 1, 1}; -vec4_t colorWhite = {1, 1, 1, 1}; -vec4_t colorLtGrey = {0.75, 0.75, 0.75, 1}; -vec4_t colorMdGrey = {0.5, 0.5, 0.5, 1}; -vec4_t colorDkGrey = {0.25, 0.25, 0.25, 1}; - -vec4_t g_color_table[8] = - { - {0.0, 0.0, 0.0, 1.0}, - {1.0, 0.0, 0.0, 1.0}, - {0.0, 1.0, 0.0, 1.0}, - {1.0, 1.0, 0.0, 1.0}, - {0.0, 0.0, 1.0, 1.0}, - {0.0, 1.0, 1.0, 1.0}, - {1.0, 0.0, 1.0, 1.0}, - {1.0, 1.0, 1.0, 1.0}, - }; - - -vec3_t bytedirs[NUMVERTEXNORMALS] = -{ -{-0.525731f, 0.000000f, 0.850651f}, {-0.442863f, 0.238856f, 0.864188f}, -{-0.295242f, 0.000000f, 0.955423f}, {-0.309017f, 0.500000f, 0.809017f}, -{-0.162460f, 0.262866f, 0.951056f}, {0.000000f, 0.000000f, 1.000000f}, -{0.000000f, 0.850651f, 0.525731f}, {-0.147621f, 0.716567f, 0.681718f}, -{0.147621f, 0.716567f, 0.681718f}, {0.000000f, 0.525731f, 0.850651f}, -{0.309017f, 0.500000f, 0.809017f}, {0.525731f, 0.000000f, 0.850651f}, -{0.295242f, 0.000000f, 0.955423f}, {0.442863f, 0.238856f, 0.864188f}, -{0.162460f, 0.262866f, 0.951056f}, {-0.681718f, 0.147621f, 0.716567f}, -{-0.809017f, 0.309017f, 0.500000f},{-0.587785f, 0.425325f, 0.688191f}, -{-0.850651f, 0.525731f, 0.000000f},{-0.864188f, 0.442863f, 0.238856f}, -{-0.716567f, 0.681718f, 0.147621f},{-0.688191f, 0.587785f, 0.425325f}, -{-0.500000f, 0.809017f, 0.309017f}, {-0.238856f, 0.864188f, 0.442863f}, -{-0.425325f, 0.688191f, 0.587785f}, {-0.716567f, 0.681718f, -0.147621f}, -{-0.500000f, 0.809017f, -0.309017f}, {-0.525731f, 0.850651f, 0.000000f}, -{0.000000f, 0.850651f, -0.525731f}, {-0.238856f, 0.864188f, -0.442863f}, -{0.000000f, 0.955423f, -0.295242f}, {-0.262866f, 0.951056f, -0.162460f}, -{0.000000f, 1.000000f, 0.000000f}, {0.000000f, 0.955423f, 0.295242f}, -{-0.262866f, 0.951056f, 0.162460f}, {0.238856f, 0.864188f, 0.442863f}, -{0.262866f, 0.951056f, 0.162460f}, {0.500000f, 0.809017f, 0.309017f}, -{0.238856f, 0.864188f, -0.442863f},{0.262866f, 0.951056f, -0.162460f}, -{0.500000f, 0.809017f, -0.309017f},{0.850651f, 0.525731f, 0.000000f}, -{0.716567f, 0.681718f, 0.147621f}, {0.716567f, 0.681718f, -0.147621f}, -{0.525731f, 0.850651f, 0.000000f}, {0.425325f, 0.688191f, 0.587785f}, -{0.864188f, 0.442863f, 0.238856f}, {0.688191f, 0.587785f, 0.425325f}, -{0.809017f, 0.309017f, 0.500000f}, {0.681718f, 0.147621f, 0.716567f}, -{0.587785f, 0.425325f, 0.688191f}, {0.955423f, 0.295242f, 0.000000f}, -{1.000000f, 0.000000f, 0.000000f}, {0.951056f, 0.162460f, 0.262866f}, -{0.850651f, -0.525731f, 0.000000f},{0.955423f, -0.295242f, 0.000000f}, -{0.864188f, -0.442863f, 0.238856f}, {0.951056f, -0.162460f, 0.262866f}, -{0.809017f, -0.309017f, 0.500000f}, {0.681718f, -0.147621f, 0.716567f}, -{0.850651f, 0.000000f, 0.525731f}, {0.864188f, 0.442863f, -0.238856f}, -{0.809017f, 0.309017f, -0.500000f}, {0.951056f, 0.162460f, -0.262866f}, -{0.525731f, 0.000000f, -0.850651f}, {0.681718f, 0.147621f, -0.716567f}, -{0.681718f, -0.147621f, -0.716567f},{0.850651f, 0.000000f, -0.525731f}, -{0.809017f, -0.309017f, -0.500000f}, {0.864188f, -0.442863f, -0.238856f}, -{0.951056f, -0.162460f, -0.262866f}, {0.147621f, 0.716567f, -0.681718f}, -{0.309017f, 0.500000f, -0.809017f}, {0.425325f, 0.688191f, -0.587785f}, -{0.442863f, 0.238856f, -0.864188f}, {0.587785f, 0.425325f, -0.688191f}, -{0.688191f, 0.587785f, -0.425325f}, {-0.147621f, 0.716567f, -0.681718f}, -{-0.309017f, 0.500000f, -0.809017f}, {0.000000f, 0.525731f, -0.850651f}, -{-0.525731f, 0.000000f, -0.850651f}, {-0.442863f, 0.238856f, -0.864188f}, -{-0.295242f, 0.000000f, -0.955423f}, {-0.162460f, 0.262866f, -0.951056f}, -{0.000000f, 0.000000f, -1.000000f}, {0.295242f, 0.000000f, -0.955423f}, -{0.162460f, 0.262866f, -0.951056f}, {-0.442863f, -0.238856f, -0.864188f}, -{-0.309017f, -0.500000f, -0.809017f}, {-0.162460f, -0.262866f, -0.951056f}, -{0.000000f, -0.850651f, -0.525731f}, {-0.147621f, -0.716567f, -0.681718f}, -{0.147621f, -0.716567f, -0.681718f}, {0.000000f, -0.525731f, -0.850651f}, -{0.309017f, -0.500000f, -0.809017f}, {0.442863f, -0.238856f, -0.864188f}, -{0.162460f, -0.262866f, -0.951056f}, {0.238856f, -0.864188f, -0.442863f}, -{0.500000f, -0.809017f, -0.309017f}, {0.425325f, -0.688191f, -0.587785f}, -{0.716567f, -0.681718f, -0.147621f}, {0.688191f, -0.587785f, -0.425325f}, -{0.587785f, -0.425325f, -0.688191f}, {0.000000f, -0.955423f, -0.295242f}, -{0.000000f, -1.000000f, 0.000000f}, {0.262866f, -0.951056f, -0.162460f}, -{0.000000f, -0.850651f, 0.525731f}, {0.000000f, -0.955423f, 0.295242f}, -{0.238856f, -0.864188f, 0.442863f}, {0.262866f, -0.951056f, 0.162460f}, -{0.500000f, -0.809017f, 0.309017f}, {0.716567f, -0.681718f, 0.147621f}, -{0.525731f, -0.850651f, 0.000000f}, {-0.238856f, -0.864188f, -0.442863f}, -{-0.500000f, -0.809017f, -0.309017f}, {-0.262866f, -0.951056f, -0.162460f}, -{-0.850651f, -0.525731f, 0.000000f}, {-0.716567f, -0.681718f, -0.147621f}, -{-0.716567f, -0.681718f, 0.147621f}, {-0.525731f, -0.850651f, 0.000000f}, -{-0.500000f, -0.809017f, 0.309017f}, {-0.238856f, -0.864188f, 0.442863f}, -{-0.262866f, -0.951056f, 0.162460f}, {-0.864188f, -0.442863f, 0.238856f}, -{-0.809017f, -0.309017f, 0.500000f}, {-0.688191f, -0.587785f, 0.425325f}, -{-0.681718f, -0.147621f, 0.716567f}, {-0.442863f, -0.238856f, 0.864188f}, -{-0.587785f, -0.425325f, 0.688191f}, {-0.309017f, -0.500000f, 0.809017f}, -{-0.147621f, -0.716567f, 0.681718f}, {-0.425325f, -0.688191f, 0.587785f}, -{-0.162460f, -0.262866f, 0.951056f}, {0.442863f, -0.238856f, 0.864188f}, -{0.162460f, -0.262866f, 0.951056f}, {0.309017f, -0.500000f, 0.809017f}, -{0.147621f, -0.716567f, 0.681718f}, {0.000000f, -0.525731f, 0.850651f}, -{0.425325f, -0.688191f, 0.587785f}, {0.587785f, -0.425325f, 0.688191f}, -{0.688191f, -0.587785f, 0.425325f}, {-0.955423f, 0.295242f, 0.000000f}, -{-0.951056f, 0.162460f, 0.262866f}, {-1.000000f, 0.000000f, 0.000000f}, -{-0.850651f, 0.000000f, 0.525731f}, {-0.955423f, -0.295242f, 0.000000f}, -{-0.951056f, -0.162460f, 0.262866f}, {-0.864188f, 0.442863f, -0.238856f}, -{-0.951056f, 0.162460f, -0.262866f}, {-0.809017f, 0.309017f, -0.500000f}, -{-0.864188f, -0.442863f, -0.238856f}, {-0.951056f, -0.162460f, -0.262866f}, -{-0.809017f, -0.309017f, -0.500000f}, {-0.681718f, 0.147621f, -0.716567f}, -{-0.681718f, -0.147621f, -0.716567f}, {-0.850651f, 0.000000f, -0.525731f}, -{-0.688191f, 0.587785f, -0.425325f}, {-0.587785f, 0.425325f, -0.688191f}, -{-0.425325f, 0.688191f, -0.587785f}, {-0.425325f, -0.688191f, -0.587785f}, -{-0.587785f, -0.425325f, -0.688191f}, {-0.688191f, -0.587785f, -0.425325f} -}; - -//============================================================== - -int Q_rand( int *seed ) { - *seed = (69069 * *seed + 1); - return *seed; -} - -float Q_random( int *seed ) { - return ( Q_rand( seed ) & 0xffff ) / (float)0x10000; -} - -float Q_crandom( int *seed ) { - return 2.0 * ( Q_random( seed ) - 0.5 ); -} - -#ifdef __LCC__ - -int VectorCompare( const vec3_t v1, const vec3_t v2 ) { - if (v1[0] != v2[0] || v1[1] != v2[1] || v1[2] != v2[2]) { - return 0; - } - return 1; -} - -vec_t VectorLength( const vec3_t v ) { - return (vec_t)sqrt (v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); -} - -vec_t VectorLengthSquared( const vec3_t v ) { - return (v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); -} - -vec_t Distance( const vec3_t p1, const vec3_t p2 ) { - vec3_t v; - - VectorSubtract (p2, p1, v); - return VectorLength( v ); -} - -vec_t DistanceSquared( const vec3_t p1, const vec3_t p2 ) { - vec3_t v; - - VectorSubtract (p2, p1, v); - return v[0]*v[0] + v[1]*v[1] + v[2]*v[2]; -} - -// fast vector normalize routine that does not check to make sure -// that length != 0, nor does it return length, uses rsqrt approximation -void VectorNormalizeFast( vec3_t v ) -{ - float ilength; - - ilength = Q_rsqrt( DotProduct( v, v ) ); - - v[0] *= ilength; - v[1] *= ilength; - v[2] *= ilength; -} - -void VectorInverse( vec3_t v ){ - v[0] = -v[0]; - v[1] = -v[1]; - v[2] = -v[2]; -} - -void CrossProduct( const vec3_t v1, const vec3_t v2, vec3_t cross ) { - cross[0] = v1[1]*v2[2] - v1[2]*v2[1]; - cross[1] = v1[2]*v2[0] - v1[0]*v2[2]; - cross[2] = v1[0]*v2[1] - v1[1]*v2[0]; -} -#endif - -//======================================================= - -signed char ClampChar( int i ) { - if ( i < -128 ) { - return -128; - } - if ( i > 127 ) { - return 127; - } - return i; -} - -signed short ClampShort( int i ) { - if ( i < -32768 ) { - return -32768; - } - if ( i > 0x7fff ) { - return 0x7fff; - } - return i; -} - - -// this isn't a real cheap function to call! -int DirToByte( vec3_t dir ) { - int i, best; - float d, bestd; - - if ( !dir ) { - return 0; - } - - bestd = 0; - best = 0; - for (i=0 ; i bestd) - { - bestd = d; - best = i; - } - } - - return best; -} - -void ByteToDir( int b, vec3_t dir ) { - if ( b < 0 || b >= NUMVERTEXNORMALS ) { - VectorCopy( vec3_origin, dir ); - return; - } - VectorCopy (bytedirs[b], dir); -} - - -unsigned ColorBytes3 (float r, float g, float b) { - unsigned i; - - ( (byte *)&i )[0] = r * 255; - ( (byte *)&i )[1] = g * 255; - ( (byte *)&i )[2] = b * 255; - - return i; -} - -unsigned ColorBytes4 (float r, float g, float b, float a) { - unsigned i; - - ( (byte *)&i )[0] = r * 255; - ( (byte *)&i )[1] = g * 255; - ( (byte *)&i )[2] = b * 255; - ( (byte *)&i )[3] = a * 255; - - return i; -} - -float NormalizeColor( const vec3_t in, vec3_t out ) { - float max; - - max = in[0]; - if ( in[1] > max ) { - max = in[1]; - } - if ( in[2] > max ) { - max = in[2]; - } - - if ( !max ) { - VectorClear( out ); - } else { - out[0] = in[0] / max; - out[1] = in[1] / max; - out[2] = in[2] / max; - } - return max; -} - - -/* -===================== -PlaneFromPoints - -Returns false if the triangle is degenrate. -The normal will point out of the clock for clockwise ordered points -===================== -*/ -qboolean PlaneFromPoints( vec4_t plane, const vec3_t a, const vec3_t b, const vec3_t c ) { - vec3_t d1, d2; - - VectorSubtract( b, a, d1 ); - VectorSubtract( c, a, d2 ); - CrossProduct( d2, d1, plane ); - if ( VectorNormalize( plane ) == 0 ) { - return qfalse; - } - - plane[3] = DotProduct( a, plane ); - return qtrue; -} - -/* -=============== -RotatePointAroundVector - -This is not implemented very well... -=============== -*/ -void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, - float degrees ) { - float m[3][3]; - float im[3][3]; - float zrot[3][3]; - float tmpmat[3][3]; - float rot[3][3]; - int i; - vec3_t vr, vup, vf; - float rad; - - vf[0] = dir[0]; - vf[1] = dir[1]; - vf[2] = dir[2]; - - PerpendicularVector( vr, dir ); - CrossProduct( vr, vf, vup ); - - m[0][0] = vr[0]; - m[1][0] = vr[1]; - m[2][0] = vr[2]; - - m[0][1] = vup[0]; - m[1][1] = vup[1]; - m[2][1] = vup[2]; - - m[0][2] = vf[0]; - m[1][2] = vf[1]; - m[2][2] = vf[2]; - - memcpy( im, m, sizeof( im ) ); - - im[0][1] = m[1][0]; - im[0][2] = m[2][0]; - im[1][0] = m[0][1]; - im[1][2] = m[2][1]; - im[2][0] = m[0][2]; - im[2][1] = m[1][2]; - - memset( zrot, 0, sizeof( zrot ) ); - zrot[0][0] = zrot[1][1] = zrot[2][2] = 1.0F; - - rad = DEG2RAD( degrees ); - zrot[0][0] = cos( rad ); - zrot[0][1] = sin( rad ); - zrot[1][0] = -sin( rad ); - zrot[1][1] = cos( rad ); - - MatrixMultiply( m, zrot, tmpmat ); - MatrixMultiply( tmpmat, im, rot ); - - for ( i = 0; i < 3; i++ ) { - dst[i] = rot[i][0] * point[0] + rot[i][1] * point[1] + rot[i][2] * point[2]; - } -} - -/* -=============== -RotateAroundDirection -=============== -*/ -void RotateAroundDirection( vec3_t axis[3], float yaw ) { - - // create an arbitrary axis[1] - PerpendicularVector( axis[1], axis[0] ); - - // rotate it around axis[0] by yaw - if ( yaw ) { - vec3_t temp; - - VectorCopy( axis[1], temp ); - RotatePointAroundVector( axis[1], axis[0], temp, yaw ); - } - - // cross to get axis[2] - CrossProduct( axis[0], axis[1], axis[2] ); -} - - - -void vectoangles( const vec3_t value1, vec3_t angles ) { - float forward; - float yaw, pitch; - - if ( value1[1] == 0 && value1[0] == 0 ) { - yaw = 0; - if ( value1[2] > 0 ) { - pitch = 90; - } - else { - pitch = 270; - } - } - else { - if ( value1[0] ) { - yaw = ( atan2 ( value1[1], value1[0] ) * 180 / M_PI ); - } - else if ( value1[1] > 0 ) { - yaw = 90; - } - else { - yaw = 270; - } - if ( yaw < 0 ) { - yaw += 360; - } - - forward = sqrt ( value1[0]*value1[0] + value1[1]*value1[1] ); - pitch = ( atan2(value1[2], forward) * 180 / M_PI ); - if ( pitch < 0 ) { - pitch += 360; - } - } - - angles[PITCH] = -pitch; - angles[YAW] = yaw; - angles[ROLL] = 0; -} - - -/* -================= -AnglesToAxis -================= -*/ -void AnglesToAxis( const vec3_t angles, vec3_t axis[3] ) { - vec3_t right; - - // angle vectors returns "right" instead of "y axis" - AngleVectors( angles, axis[0], right, axis[2] ); - VectorSubtract( vec3_origin, right, axis[1] ); -} - -void AxisClear( vec3_t axis[3] ) { - axis[0][0] = 1; - axis[0][1] = 0; - axis[0][2] = 0; - axis[1][0] = 0; - axis[1][1] = 1; - axis[1][2] = 0; - axis[2][0] = 0; - axis[2][1] = 0; - axis[2][2] = 1; -} - -void AxisCopy( vec3_t in[3], vec3_t out[3] ) { - VectorCopy( in[0], out[0] ); - VectorCopy( in[1], out[1] ); - VectorCopy( in[2], out[2] ); -} - -void ProjectPointOnPlane( vec3_t dst, const vec3_t p, const vec3_t normal ) -{ - float d; - vec3_t n; - float inv_denom; - - inv_denom = DotProduct( normal, normal ); -#ifndef Q3_VM - assert( Q_fabs(inv_denom) != 0.0f ); // bk010122 - zero vectors get here -#endif - inv_denom = 1.0f / inv_denom; - - d = DotProduct( normal, p ) * inv_denom; - - n[0] = normal[0] * inv_denom; - n[1] = normal[1] * inv_denom; - n[2] = normal[2] * inv_denom; - - dst[0] = p[0] - d * n[0]; - dst[1] = p[1] - d * n[1]; - dst[2] = p[2] - d * n[2]; -} - -/* -================ -MakeNormalVectors - -Given a normalized forward vector, create two -other perpendicular vectors -================ -*/ -void MakeNormalVectors( const vec3_t forward, vec3_t right, vec3_t up) { - float d; - - // this rotate and negate guarantees a vector - // not colinear with the original - right[1] = -forward[0]; - right[2] = forward[1]; - right[0] = forward[2]; - - d = DotProduct (right, forward); - VectorMA (right, -d, forward, right); - VectorNormalize (right); - CrossProduct (right, forward, up); -} - - -void VectorRotate( vec3_t in, vec3_t matrix[3], vec3_t out ) -{ - out[0] = DotProduct( in, matrix[0] ); - out[1] = DotProduct( in, matrix[1] ); - out[2] = DotProduct( in, matrix[2] ); -} - -//============================================================================ - -#if !idppc -/* -** float q_rsqrt( float number ) -*/ -float Q_rsqrt( float number ) -{ - union { - float f; - int i; - } t; - float x2, y; - const float threehalfs = 1.5F; - - x2 = number * 0.5F; - t.f = number; - t.i = 0x5f3759df - ( t.i >> 1 ); // what the fuck? - y = t.f; - y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration -// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed - - //assert( !isnan(y) ); // bk010122 - FPE? - return y; -} - -float Q_fabs( float f ) { - int tmp = * ( int * ) &f; - tmp &= 0x7FFFFFFF; - return * ( float * ) &tmp; -} -#endif - -//============================================================ - -/* -=============== -LerpAngle - -=============== -*/ -float LerpAngle (float from, float to, float frac) { - float a; - - if ( to - from > 180 ) { - to -= 360; - } - if ( to - from < -180 ) { - to += 360; - } - a = from + frac * (to - from); - - return a; -} - - -/* -================= -AngleSubtract - -Always returns a value from -180 to 180 -================= -*/ -float AngleSubtract( float a1, float a2 ) { - float a; - - a = a1 - a2; - while ( a > 180 ) { - a -= 360; - } - while ( a < -180 ) { - a += 360; - } - return a; -} - - -void AnglesSubtract( vec3_t v1, vec3_t v2, vec3_t v3 ) { - v3[0] = AngleSubtract( v1[0], v2[0] ); - v3[1] = AngleSubtract( v1[1], v2[1] ); - v3[2] = AngleSubtract( v1[2], v2[2] ); -} - - -float AngleMod(float a) { - a = (360.0/65536) * ((int)(a*(65536/360.0)) & 65535); - return a; -} - - -/* -================= -AngleNormalize360 - -returns angle normalized to the range [0 <= angle < 360] -================= -*/ -float AngleNormalize360 ( float angle ) { - return (360.0 / 65536) * ((int)(angle * (65536 / 360.0)) & 65535); -} - - -/* -================= -AngleNormalize180 - -returns angle normalized to the range [-180 < angle <= 180] -================= -*/ -float AngleNormalize180 ( float angle ) { - angle = AngleNormalize360( angle ); - if ( angle > 180.0 ) { - angle -= 360.0; - } - return angle; -} - - -/* -================= -AngleDelta - -returns the normalized delta from angle1 to angle2 -================= -*/ -float AngleDelta ( float angle1, float angle2 ) { - return AngleNormalize180( angle1 - angle2 ); -} - - -//============================================================ - - -/* -================= -SetPlaneSignbits -================= -*/ -void SetPlaneSignbits (cplane_t *out) { - int bits, j; - - // for fast box on planeside test - bits = 0; - for (j=0 ; j<3 ; j++) { - if (out->normal[j] < 0) { - bits |= 1<signbits = bits; -} - - -/* -================== -BoxOnPlaneSide - -Returns 1, 2, or 1 + 2 - -// this is the slow, general version -int BoxOnPlaneSide2 (vec3_t emins, vec3_t emaxs, struct cplane_s *p) -{ - int i; - float dist1, dist2; - int sides; - vec3_t corners[2]; - - for (i=0 ; i<3 ; i++) - { - if (p->normal[i] < 0) - { - corners[0][i] = emins[i]; - corners[1][i] = emaxs[i]; - } - else - { - corners[1][i] = emins[i]; - corners[0][i] = emaxs[i]; - } - } - dist1 = DotProduct (p->normal, corners[0]) - p->dist; - dist2 = DotProduct (p->normal, corners[1]) - p->dist; - sides = 0; - if (dist1 >= 0) - sides = 1; - if (dist2 < 0) - sides |= 2; - - return sides; -} - -================== -*/ - -// if not GNU x86 and configured to use asm -#if !( (defined __GNUC__) && (defined __i386__) && (!defined C_ONLY)) - -#if defined __LCC__ || defined C_ONLY || !id386 || defined __VECTORC - -int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p) -{ - float dist1, dist2; - int sides; - -// fast axial cases - if (p->type < 3) - { - if (p->dist <= emins[p->type]) - return 1; - if (p->dist >= emaxs[p->type]) - return 2; - return 3; - } - -// general case - switch (p->signbits) - { - case 0: - dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; - dist2 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; - break; - case 1: - dist1 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; - dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; - break; - case 2: - dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; - dist2 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; - break; - case 3: - dist1 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; - dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; - break; - case 4: - dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; - dist2 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; - break; - case 5: - dist1 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; - dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; - break; - case 6: - dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; - dist2 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; - break; - case 7: - dist1 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; - dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; - break; - default: - dist1 = dist2 = 0; // shut up compiler - break; - } - - sides = 0; - if (dist1 >= p->dist) - sides = 1; - if (dist2 < p->dist) - sides |= 2; - - return sides; -} -#else -#pragma warning( disable: 4035 ) - -__declspec( naked ) int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p) -{ - static int bops_initialized; - static int Ljmptab[8]; - - __asm { - - push ebx - - cmp bops_initialized, 1 - je initialized - mov bops_initialized, 1 - - mov Ljmptab[0*4], offset Lcase0 - mov Ljmptab[1*4], offset Lcase1 - mov Ljmptab[2*4], offset Lcase2 - mov Ljmptab[3*4], offset Lcase3 - mov Ljmptab[4*4], offset Lcase4 - mov Ljmptab[5*4], offset Lcase5 - mov Ljmptab[6*4], offset Lcase6 - mov Ljmptab[7*4], offset Lcase7 - -initialized: - - mov edx,dword ptr[4+12+esp] - mov ecx,dword ptr[4+4+esp] - xor eax,eax - mov ebx,dword ptr[4+8+esp] - mov al,byte ptr[17+edx] - cmp al,8 - jge Lerror - fld dword ptr[0+edx] - fld st(0) - jmp dword ptr[Ljmptab+eax*4] -Lcase0: - fmul dword ptr[ebx] - fld dword ptr[0+4+edx] - fxch st(2) - fmul dword ptr[ecx] - fxch st(2) - fld st(0) - fmul dword ptr[4+ebx] - fld dword ptr[0+8+edx] - fxch st(2) - fmul dword ptr[4+ecx] - fxch st(2) - fld st(0) - fmul dword ptr[8+ebx] - fxch st(5) - faddp st(3),st(0) - fmul dword ptr[8+ecx] - fxch st(1) - faddp st(3),st(0) - fxch st(3) - faddp st(2),st(0) - jmp LSetSides -Lcase1: - fmul dword ptr[ecx] - fld dword ptr[0+4+edx] - fxch st(2) - fmul dword ptr[ebx] - fxch st(2) - fld st(0) - fmul dword ptr[4+ebx] - fld dword ptr[0+8+edx] - fxch st(2) - fmul dword ptr[4+ecx] - fxch st(2) - fld st(0) - fmul dword ptr[8+ebx] - fxch st(5) - faddp st(3),st(0) - fmul dword ptr[8+ecx] - fxch st(1) - faddp st(3),st(0) - fxch st(3) - faddp st(2),st(0) - jmp LSetSides -Lcase2: - fmul dword ptr[ebx] - fld dword ptr[0+4+edx] - fxch st(2) - fmul dword ptr[ecx] - fxch st(2) - fld st(0) - fmul dword ptr[4+ecx] - fld dword ptr[0+8+edx] - fxch st(2) - fmul dword ptr[4+ebx] - fxch st(2) - fld st(0) - fmul dword ptr[8+ebx] - fxch st(5) - faddp st(3),st(0) - fmul dword ptr[8+ecx] - fxch st(1) - faddp st(3),st(0) - fxch st(3) - faddp st(2),st(0) - jmp LSetSides -Lcase3: - fmul dword ptr[ecx] - fld dword ptr[0+4+edx] - fxch st(2) - fmul dword ptr[ebx] - fxch st(2) - fld st(0) - fmul dword ptr[4+ecx] - fld dword ptr[0+8+edx] - fxch st(2) - fmul dword ptr[4+ebx] - fxch st(2) - fld st(0) - fmul dword ptr[8+ebx] - fxch st(5) - faddp st(3),st(0) - fmul dword ptr[8+ecx] - fxch st(1) - faddp st(3),st(0) - fxch st(3) - faddp st(2),st(0) - jmp LSetSides -Lcase4: - fmul dword ptr[ebx] - fld dword ptr[0+4+edx] - fxch st(2) - fmul dword ptr[ecx] - fxch st(2) - fld st(0) - fmul dword ptr[4+ebx] - fld dword ptr[0+8+edx] - fxch st(2) - fmul dword ptr[4+ecx] - fxch st(2) - fld st(0) - fmul dword ptr[8+ecx] - fxch st(5) - faddp st(3),st(0) - fmul dword ptr[8+ebx] - fxch st(1) - faddp st(3),st(0) - fxch st(3) - faddp st(2),st(0) - jmp LSetSides -Lcase5: - fmul dword ptr[ecx] - fld dword ptr[0+4+edx] - fxch st(2) - fmul dword ptr[ebx] - fxch st(2) - fld st(0) - fmul dword ptr[4+ebx] - fld dword ptr[0+8+edx] - fxch st(2) - fmul dword ptr[4+ecx] - fxch st(2) - fld st(0) - fmul dword ptr[8+ecx] - fxch st(5) - faddp st(3),st(0) - fmul dword ptr[8+ebx] - fxch st(1) - faddp st(3),st(0) - fxch st(3) - faddp st(2),st(0) - jmp LSetSides -Lcase6: - fmul dword ptr[ebx] - fld dword ptr[0+4+edx] - fxch st(2) - fmul dword ptr[ecx] - fxch st(2) - fld st(0) - fmul dword ptr[4+ecx] - fld dword ptr[0+8+edx] - fxch st(2) - fmul dword ptr[4+ebx] - fxch st(2) - fld st(0) - fmul dword ptr[8+ecx] - fxch st(5) - faddp st(3),st(0) - fmul dword ptr[8+ebx] - fxch st(1) - faddp st(3),st(0) - fxch st(3) - faddp st(2),st(0) - jmp LSetSides -Lcase7: - fmul dword ptr[ecx] - fld dword ptr[0+4+edx] - fxch st(2) - fmul dword ptr[ebx] - fxch st(2) - fld st(0) - fmul dword ptr[4+ecx] - fld dword ptr[0+8+edx] - fxch st(2) - fmul dword ptr[4+ebx] - fxch st(2) - fld st(0) - fmul dword ptr[8+ecx] - fxch st(5) - faddp st(3),st(0) - fmul dword ptr[8+ebx] - fxch st(1) - faddp st(3),st(0) - fxch st(3) - faddp st(2),st(0) -LSetSides: - faddp st(2),st(0) - fcomp dword ptr[12+edx] - xor ecx,ecx - fnstsw ax - fcomp dword ptr[12+edx] - and ah,1 - xor ah,1 - add cl,ah - fnstsw ax - and ah,1 - add ah,ah - add cl,ah - pop ebx - mov eax,ecx - ret -Lerror: - int 3 - } -} -#pragma warning( default: 4035 ) - -#endif -#endif - -/* -================= -RadiusFromBounds -================= -*/ -float RadiusFromBounds( const vec3_t mins, const vec3_t maxs ) { - int i; - vec3_t corner; - float a, b; - - for (i=0 ; i<3 ; i++) { - a = fabs( mins[i] ); - b = fabs( maxs[i] ); - corner[i] = a > b ? a : b; - } - - return VectorLength (corner); -} - - -void ClearBounds( vec3_t mins, vec3_t maxs ) { - mins[0] = mins[1] = mins[2] = 99999; - maxs[0] = maxs[1] = maxs[2] = -99999; -} - -void AddPointToBounds( const vec3_t v, vec3_t mins, vec3_t maxs ) { - if ( v[0] < mins[0] ) { - mins[0] = v[0]; - } - if ( v[0] > maxs[0]) { - maxs[0] = v[0]; - } - - if ( v[1] < mins[1] ) { - mins[1] = v[1]; - } - if ( v[1] > maxs[1]) { - maxs[1] = v[1]; - } - - if ( v[2] < mins[2] ) { - mins[2] = v[2]; - } - if ( v[2] > maxs[2]) { - maxs[2] = v[2]; - } -} - - -vec_t VectorNormalize( vec3_t v ) { - // NOTE: TTimo - Apple G4 altivec source uses double? - float length, ilength; - - length = v[0]*v[0] + v[1]*v[1] + v[2]*v[2]; - length = sqrt (length); - - if ( length ) { - ilength = 1/length; - v[0] *= ilength; - v[1] *= ilength; - v[2] *= ilength; - } - - return length; -} - -vec_t VectorNormalize2( const vec3_t v, vec3_t out) { - float length, ilength; - - length = v[0]*v[0] + v[1]*v[1] + v[2]*v[2]; - length = sqrt (length); - - if (length) - { -#ifndef Q3_VM // bk0101022 - FPE related -// assert( ((Q_fabs(v[0])!=0.0f) || (Q_fabs(v[1])!=0.0f) || (Q_fabs(v[2])!=0.0f)) ); -#endif - ilength = 1/length; - out[0] = v[0]*ilength; - out[1] = v[1]*ilength; - out[2] = v[2]*ilength; - } else { -#ifndef Q3_VM // bk0101022 - FPE related -// assert( ((Q_fabs(v[0])==0.0f) && (Q_fabs(v[1])==0.0f) && (Q_fabs(v[2])==0.0f)) ); -#endif - VectorClear( out ); - } - - return length; - -} - -void _VectorMA( const vec3_t veca, float scale, const vec3_t vecb, vec3_t vecc) { - vecc[0] = veca[0] + scale*vecb[0]; - vecc[1] = veca[1] + scale*vecb[1]; - vecc[2] = veca[2] + scale*vecb[2]; -} - - -vec_t _DotProduct( const vec3_t v1, const vec3_t v2 ) { - return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]; -} - -void _VectorSubtract( const vec3_t veca, const vec3_t vecb, vec3_t out ) { - out[0] = veca[0]-vecb[0]; - out[1] = veca[1]-vecb[1]; - out[2] = veca[2]-vecb[2]; -} - -void _VectorAdd( const vec3_t veca, const vec3_t vecb, vec3_t out ) { - out[0] = veca[0]+vecb[0]; - out[1] = veca[1]+vecb[1]; - out[2] = veca[2]+vecb[2]; -} - -void _VectorCopy( const vec3_t in, vec3_t out ) { - out[0] = in[0]; - out[1] = in[1]; - out[2] = in[2]; -} - -void _VectorScale( const vec3_t in, vec_t scale, vec3_t out ) { - out[0] = in[0]*scale; - out[1] = in[1]*scale; - out[2] = in[2]*scale; -} - -void Vector4Scale( const vec4_t in, vec_t scale, vec4_t out ) { - out[0] = in[0]*scale; - out[1] = in[1]*scale; - out[2] = in[2]*scale; - out[3] = in[3]*scale; -} - - -int Q_log2( int val ) { - int answer; - - answer = 0; - while ( ( val>>=1 ) != 0 ) { - answer++; - } - return answer; -} - - - -/* -================= -PlaneTypeForNormal -================= -*/ -/* -int PlaneTypeForNormal (vec3_t normal) { - if ( normal[0] == 1.0 ) - return PLANE_X; - if ( normal[1] == 1.0 ) - return PLANE_Y; - if ( normal[2] == 1.0 ) - return PLANE_Z; - - return PLANE_NON_AXIAL; -} -*/ - - -/* -================ -MatrixMultiply -================ -*/ -void MatrixMultiply(float in1[3][3], float in2[3][3], float out[3][3]) { - out[0][0] = in1[0][0] * in2[0][0] + in1[0][1] * in2[1][0] + - in1[0][2] * in2[2][0]; - out[0][1] = in1[0][0] * in2[0][1] + in1[0][1] * in2[1][1] + - in1[0][2] * in2[2][1]; - out[0][2] = in1[0][0] * in2[0][2] + in1[0][1] * in2[1][2] + - in1[0][2] * in2[2][2]; - out[1][0] = in1[1][0] * in2[0][0] + in1[1][1] * in2[1][0] + - in1[1][2] * in2[2][0]; - out[1][1] = in1[1][0] * in2[0][1] + in1[1][1] * in2[1][1] + - in1[1][2] * in2[2][1]; - out[1][2] = in1[1][0] * in2[0][2] + in1[1][1] * in2[1][2] + - in1[1][2] * in2[2][2]; - out[2][0] = in1[2][0] * in2[0][0] + in1[2][1] * in2[1][0] + - in1[2][2] * in2[2][0]; - out[2][1] = in1[2][0] * in2[0][1] + in1[2][1] * in2[1][1] + - in1[2][2] * in2[2][1]; - out[2][2] = in1[2][0] * in2[0][2] + in1[2][1] * in2[1][2] + - in1[2][2] * in2[2][2]; -} - - -void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up) { - float angle; - static float sr, sp, sy, cr, cp, cy; - // static to help MS compiler fp bugs - - angle = angles[YAW] * (M_PI*2 / 360); - sy = sin(angle); - cy = cos(angle); - angle = angles[PITCH] * (M_PI*2 / 360); - sp = sin(angle); - cp = cos(angle); - angle = angles[ROLL] * (M_PI*2 / 360); - sr = sin(angle); - cr = cos(angle); - - if (forward) - { - forward[0] = cp*cy; - forward[1] = cp*sy; - forward[2] = -sp; - } - if (right) - { - right[0] = (-1*sr*sp*cy+-1*cr*-sy); - right[1] = (-1*sr*sp*sy+-1*cr*cy); - right[2] = -1*sr*cp; - } - if (up) - { - up[0] = (cr*sp*cy+-sr*-sy); - up[1] = (cr*sp*sy+-sr*cy); - up[2] = cr*cp; - } -} - -/* -** assumes "src" is normalized -*/ -void PerpendicularVector( vec3_t dst, const vec3_t src ) -{ - int pos; - int i; - float minelem = 1.0F; - vec3_t tempvec; - - /* - ** find the smallest magnitude axially aligned vector - */ - for ( pos = 0, i = 0; i < 3; i++ ) - { - if ( fabs( src[i] ) < minelem ) - { - pos = i; - minelem = fabs( src[i] ); - } - } - tempvec[0] = tempvec[1] = tempvec[2] = 0.0F; - tempvec[pos] = 1.0F; - - /* - ** project the point onto the plane defined by src - */ - ProjectPointOnPlane( dst, tempvec, src ); - - /* - ** normalize the result - */ - VectorNormalize( dst ); -} - - Deleted: trunk/code/game/q_shared.c =================================================================== --- trunk/code/game/q_shared.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/q_shared.c 2005-10-26 19:45:21 UTC (rev 181) @@ -1,1252 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -// q_shared.c -- stateless support routines that are included in each code dll -#include "q_shared.h" - -float Com_Clamp( float min, float max, float value ) { - if ( value < min ) { - return min; - } - if ( value > max ) { - return max; - } - return value; -} - - -/* -============ -COM_SkipPath -============ -*/ -char *COM_SkipPath (char *pathname) -{ - char *last; - - last = pathname; - while (*pathname) - { - if (*pathname=='/') - last = pathname+1; - pathname++; - } - return last; -} - -/* -============ -COM_StripExtension -============ -*/ -void COM_StripExtension( const char *in, char *out ) { - while ( *in && *in != '.' ) { - *out++ = *in++; - } - *out = 0; -} - - -/* -================== -COM_DefaultExtension -================== -*/ -void COM_DefaultExtension (char *path, int maxSize, const char *extension ) { - char oldPath[MAX_QPATH]; - char *src; - -// -// if path doesn't have a .EXT, append extension -// (extension should include the .) -// - src = path + strlen(path) - 1; - - while (*src != '/' && src != path) { - if ( *src == '.' ) { - return; // it has an extension - } - src--; - } - - Q_strncpyz( oldPath, path, sizeof( oldPath ) ); - Com_sprintf( path, maxSize, "%s%s", oldPath, extension ); -} - -/* -============================================================================ - - BYTE ORDER FUNCTIONS - -============================================================================ -*/ -/* -// can't just use function pointers, or dll linkage can -// mess up when qcommon is included in multiple places -static short (*_BigShort) (short l); -static short (*_LittleShort) (short l); -static int (*_BigLong) (int l); -static int (*_LittleLong) (int l); -static qint64 (*_BigLong64) (qint64 l); -static qint64 (*_LittleLong64) (qint64 l); -static float (*_BigFloat) (const float *l); -static float (*_LittleFloat) (const float *l); - -short BigShort(short l){return _BigShort(l);} -short LittleShort(short l) {return _LittleShort(l);} -int BigLong (int l) {return _BigLong(l);} -int LittleLong (int l) {return _LittleLong(l);} -qint64 BigLong64 (qint64 l) {return _BigLong64(l);} -qint64 LittleLong64 (qint64 l) {return _LittleLong64(l);} -float BigFloat (const float *l) {return _BigFloat(l);} -float LittleFloat (const float *l) {return _LittleFloat(l);} -*/ - -short ShortSwap (short l) -{ - byte b1,b2; - - b1 = l&255; - b2 = (l>>8)&255; - - return (b1<<8) + b2; -} - -short ShortNoSwap (short l) -{ - return l; -} - -int LongSwap (int l) -{ - byte b1,b2,b3,b4; - - b1 = l&255; - b2 = (l>>8)&255; - b3 = (l>>16)&255; - b4 = (l>>24)&255; - - return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4; -} - -int LongNoSwap (int l) -{ - return l; -} - -qint64 Long64Swap (qint64 ll) -{ - qint64 result; - - result.b0 = ll.b7; - result.b1 = ll.b6; - result.b2 = ll.b5; - result.b3 = ll.b4; - result.b4 = ll.b3; - result.b5 = ll.b2; - result.b6 = ll.b1; - result.b7 = ll.b0; - - return result; -} - -qint64 Long64NoSwap (qint64 ll) -{ - return ll; -} - -typedef union { - float f; - unsigned int i; -} _FloatByteUnion; - -float FloatSwap (const float *f) { - _FloatByteUnion out; - - out.f = *f; - out.i = LongSwap(out.i); - - return out.f; -} - -float FloatNoSwap (const float *f) -{ - return *f; -} - -/* -================ -Swap_Init -================ -*/ -/* -void Swap_Init (void) -{ - byte swaptest[2] = {1,0}; - -// set the byte swapping variables in a portable manner - if ( *(short *)swaptest == 1) - { - _BigShort = ShortSwap; - _LittleShort = ShortNoSwap; - _BigLong = LongSwap; - _LittleLong = LongNoSwap; - _BigLong64 = Long64Swap; - _LittleLong64 = Long64NoSwap; - _BigFloat = FloatSwap; - _LittleFloat = FloatNoSwap; - } - else - { - _BigShort = ShortNoSwap; - _LittleShort = ShortSwap; - _BigLong = LongNoSwap; - _LittleLong = LongSwap; - _BigLong64 = Long64NoSwap; - _LittleLong64 = Long64Swap; - _BigFloat = FloatNoSwap; - _LittleFloat = FloatSwap; - } - -} -*/ - -/* -============================================================================ - -PARSING - -============================================================================ -*/ - -static char com_token[MAX_TOKEN_CHARS]; -static char com_parsename[MAX_TOKEN_CHARS]; -static int com_lines; - -void COM_BeginParseSession( const char *name ) -{ - com_lines = 0; - Com_sprintf(com_parsename, sizeof(com_parsename), "%s", name); -} - -int COM_GetCurrentParseLine( void ) -{ - return com_lines; -} - -char *COM_Parse( char **data_p ) -{ - return COM_ParseExt( data_p, qtrue ); -} - -void COM_ParseError( char *format, ... ) -{ - va_list argptr; - static char string[4096]; - - va_start (argptr, format); - vsprintf (string, format, argptr); - va_end (argptr); - - Com_Printf("ERROR: %s, line %d: %s\n", com_parsename, com_lines, string); -} - -void COM_ParseWarning( char *format, ... ) -{ - va_list argptr; - static char string[4096]; - - va_start (argptr, format); - vsprintf (string, format, argptr); - va_end (argptr); - - Com_Printf("WARNING: %s, line %d: %s\n", com_parsename, com_lines, string); -} - -/* -============== -COM_Parse - -Parse a token out of a string -Will never return NULL, just empty strings - -If "allowLineBreaks" is qtrue then an empty -string will be returned if the next token is -a newline. -============== -*/ -static char *SkipWhitespace( char *data, qboolean *hasNewLines ) { - int c; - - while( (c = *data) <= ' ') { - if( !c ) { - return NULL; - } - if( c == '\n' ) { - com_lines++; - *hasNewLines = qtrue; - } - data++; - } - - return data; -} - -int COM_Compress( char *data_p ) { - char *in, *out; - int c; - qboolean newline = qfalse, whitespace = qfalse; - - in = out = data_p; - if (in) { - while ((c = *in) != 0) { - // skip double slash comments - if ( c == '/' && in[1] == '/' ) { - while (*in && *in != '\n') { - in++; - } - // skip /* */ comments - } else if ( c == '/' && in[1] == '*' ) { - while ( *in && ( *in != '*' || in[1] != '/' ) ) - in++; - if ( *in ) - in += 2; - // record when we hit a newline - } else if ( c == '\n' || c == '\r' ) { - newline = qtrue; - in++; - // record when we hit whitespace - } else if ( c == ' ' || c == '\t') { - whitespace = qtrue; - in++; - // an actual token - } else { - // if we have a pending newline, emit it (and it counts as whitespace) - if (newline) { - *out++ = '\n'; - newline = qfalse; - whitespace = qfalse; - } if (whitespace) { - *out++ = ' '; - whitespace = qfalse; - } - - // copy quoted strings unmolested - if (c == '"') { - *out++ = c; - in++; - while (1) { - c = *in; - if (c && c != '"') { - *out++ = c; - in++; - } else { - break; - } - } - if (c == '"') { - *out++ = c; - in++; - } - } else { - *out = c; - out++; - in++; - } - } - } - } - *out = 0; - return out - data_p; -} - -char *COM_ParseExt( char **data_p, qboolean allowLineBreaks ) -{ - int c = 0, len; - qboolean hasNewLines = qfalse; - char *data; - - data = *data_p; - len = 0; - com_token[0] = 0; - - // make sure incoming data is valid - if ( !data ) - { - *data_p = NULL; - return com_token; - } - - while ( 1 ) - { - // skip whitespace - data = SkipWhitespace( data, &hasNewLines ); - if ( !data ) - { - *data_p = NULL; - return com_token; - } - if ( hasNewLines && !allowLineBreaks ) - { - *data_p = data; - return com_token; - } - - c = *data; - - // skip double slash comments - if ( c == '/' && data[1] == '/' ) - { - data += 2; - while (*data && *data != '\n') { - data++; - } - } - // skip /* */ comments - else if ( c=='/' && data[1] == '*' ) - { - data += 2; - while ( *data && ( *data != '*' || data[1] != '/' ) ) - { - data++; - } - if ( *data ) - { - data += 2; - } - } - else - { - break; - } - } - - // handle quoted strings - if (c == '\"') - { - data++; - while (1) - { - c = *data++; - if (c=='\"' || !c) - { - com_token[len] = 0; - *data_p = ( char * ) data; - return com_token; - } - if (len < MAX_TOKEN_CHARS - 1) - { - com_token[len] = c; - len++; - } - } - } - - // parse a regular word - do - { - if (len < MAX_TOKEN_CHARS - 1) - { - com_token[len] = c; - len++; - } - data++; - c = *data; - if ( c == '\n' ) - com_lines++; - } while (c>32); - - com_token[len] = 0; - - *data_p = ( char * ) data; - return com_token; -} - - -#if 0 -// no longer used -/* -=============== -COM_ParseInfos -=============== -*/ -int COM_ParseInfos( char *buf, int max, char infos[][MAX_INFO_STRING] ) { - char *token; - int count; - char key[MAX_TOKEN_CHARS]; - - count = 0; - - while ( 1 ) { - token = COM_Parse( &buf ); - if ( !token[0] ) { - break; - } - if ( strcmp( token, "{" ) ) { - Com_Printf( "Missing { in info file\n" ); - break; - } - - if ( count == max ) { - Com_Printf( "Max infos exceeded\n" ); - break; - } - - infos[count][0] = 0; - while ( 1 ) { - token = COM_ParseExt( &buf, qtrue ); - if ( !token[0] ) { - Com_Printf( "Unexpected end of info file\n" ); - break; - } - if ( !strcmp( token, "}" ) ) { - break; - } - Q_strncpyz( key, token, sizeof( key ) ); - - token = COM_ParseExt( &buf, qfalse ); - if ( !token[0] ) { - strcpy( token, "" ); - } - Info_SetValueForKey( infos[count], key, token ); - } - count++; - } - - return count; -} -#endif - - -/* -================== -COM_MatchToken -================== -*/ -void COM_MatchToken( char **buf_p, char *match ) { - char *token; - - token = COM_Parse( buf_p ); - if ( strcmp( token, match ) ) { - Com_Error( ERR_DROP, "MatchToken: %s != %s", token, match ); - } -} - - -/* -================= -SkipBracedSection - -The next token should be an open brace. -Skips until a matching close brace is found. -Internal brace depths are properly skipped. -================= -*/ -void SkipBracedSection (char **program) { - char *token; - int depth; - - depth = 0; - do { - token = COM_ParseExt( program, qtrue ); - if( token[1] == 0 ) { - if( token[0] == '{' ) { - depth++; - } - else if( token[0] == '}' ) { - depth--; - } - } - } while( depth && *program ); -} - -/* -================= -SkipRestOfLine -================= -*/ -void SkipRestOfLine ( char **data ) { - char *p; - int c; - - p = *data; - while ( (c = *p++) != 0 ) { - if ( c == '\n' ) { - com_lines++; - break; - } - } - - *data = p; -} - - -void Parse1DMatrix (char **buf_p, int x, float *m) { - char *token; - int i; - - COM_MatchToken( buf_p, "(" ); - - for (i = 0 ; i < x ; i++) { - token = COM_Parse(buf_p); - m[i] = atof(token); - } - - COM_MatchToken( buf_p, ")" ); -} - -void Parse2DMatrix (char **buf_p, int y, int x, float *m) { - int i; - - COM_MatchToken( buf_p, "(" ); - - for (i = 0 ; i < y ; i++) { - Parse1DMatrix (buf_p, x, m + i * x); - } - - COM_MatchToken( buf_p, ")" ); -} - -void Parse3DMatrix (char **buf_p, int z, int y, int x, float *m) { - int i; - - COM_MatchToken( buf_p, "(" ); - - for (i = 0 ; i < z ; i++) { - Parse2DMatrix (buf_p, y, x, m + i * x*y); - } - - COM_MatchToken( buf_p, ")" ); -} - - -/* -============================================================================ - - LIBRARY REPLACEMENT FUNCTIONS - -============================================================================ -*/ - -int Q_isprint( int c ) -{ - if ( c >= 0x20 && c <= 0x7E ) - return ( 1 ); - return ( 0 ); -} - -int Q_islower( int c ) -{ - if (c >= 'a' && c <= 'z') - return ( 1 ); - return ( 0 ); -} - -int Q_isupper( int c ) -{ - if (c >= 'A' && c <= 'Z') - return ( 1 ); - return ( 0 ); -} - -int Q_isalpha( int c ) -{ - if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) - return ( 1 ); - return ( 0 ); -} - -char* Q_strrchr( const char* string, int c ) -{ - char cc = c; - char *s; - char *sp=(char *)0; - - s = (char*)string; - - while (*s) - { - if (*s == cc) - sp = s; - s++; - } - if (cc == 0) - sp = s; - - return sp; -} - -/* -============= -Q_strncpyz - -Safe strncpy that ensures a trailing zero -============= -*/ -void Q_strncpyz( char *dest, const char *src, int destsize ) { - // bk001129 - also NULL dest - if ( !dest ) { - Com_Error( ERR_FATAL, "Q_strncpyz: NULL dest" ); - } - if ( !src ) { - Com_Error( ERR_FATAL, "Q_strncpyz: NULL src" ); - } - if ( destsize < 1 ) { - Com_Error(ERR_FATAL,"Q_strncpyz: destsize < 1" ); - } - - strncpy( dest, src, destsize-1 ); - dest[destsize-1] = 0; -} - -int Q_stricmpn (const char *s1, const char *s2, int n) { - int c1, c2; - - // bk001129 - moved in 1.17 fix not in id codebase - if ( s1 == NULL ) { - if ( s2 == NULL ) - return 0; - else - return -1; - } - else if ( s2==NULL ) - return 1; - - - - do { - c1 = *s1++; - c2 = *s2++; - - if (!n--) { - return 0; // strings are equal until end point - } - - if (c1 != c2) { - if (c1 >= 'a' && c1 <= 'z') { - c1 -= ('a' - 'A'); - } - if (c2 >= 'a' && c2 <= 'z') { - c2 -= ('a' - 'A'); - } - if (c1 != c2) { - return c1 < c2 ? -1 : 1; - } - } - } while (c1); - - return 0; // strings are equal -} - -int Q_strncmp (const char *s1, const char *s2, int n) { - int c1, c2; - - do { - c1 = *s1++; - c2 = *s2++; - - if (!n--) { - return 0; // strings are equal until end point - } - - if (c1 != c2) { - return c1 < c2 ? -1 : 1; - } - } while (c1); - - return 0; // strings are equal -} - -int Q_stricmp (const char *s1, const char *s2) { - return (s1 && s2) ? Q_stricmpn (s1, s2, 99999) : -1; -} - - -char *Q_strlwr( char *s1 ) { - char *s; - - s = s1; - while ( *s ) { - *s = tolower(*s); - s++; - } - return s1; -} - -char *Q_strupr( char *s1 ) { - char *s; - - s = s1; - while ( *s ) { - *s = toupper(*s); - s++; - } - return s1; -} - - -// never goes past bounds or leaves without a terminating 0 -void Q_strcat( char *dest, int size, const char *src ) { - int l1; - - l1 = strlen( dest ); - if ( l1 >= size ) { - Com_Error( ERR_FATAL, "Q_strcat: already overflowed" ); - } - Q_strncpyz( dest + l1, src, size - l1 ); -} - - -int Q_PrintStrlen( const char *string ) { - int len; - const char *p; - - if( !string ) { - return 0; - } - - len = 0; - p = string; - while( *p ) { - if( Q_IsColorString( p ) ) { - p += 2; - continue; - } - p++; - len++; - } - - return len; -} - - -char *Q_CleanStr( char *string ) { - char* d; - char* s; - int c; - - s = string; - d = string; - while ((c = *s) != 0 ) { - if ( Q_IsColorString( s ) ) { - s++; - } - else if ( c >= 0x20 && c <= 0x7E ) { - *d++ = c; - } - s++; - } - *d = '\0'; - - return string; -} - - -void QDECL Com_sprintf( char *dest, int size, const char *fmt, ...) { - int len; - va_list argptr; - char bigbuffer[32000]; // big, but small enough to fit in PPC stack - - va_start (argptr,fmt); - len = vsprintf (bigbuffer,fmt,argptr); - va_end (argptr); - if ( len >= sizeof( bigbuffer ) ) { - Com_Error( ERR_FATAL, "Com_sprintf: overflowed bigbuffer" ); - } - if (len >= size) { - Com_Printf ("Com_sprintf: overflow of %i in %i\n", len, size); -#ifdef _DEBUG - __asm { - int 3; - } -#endif - } - Q_strncpyz (dest, bigbuffer, size ); -} - - -/* -============ -va - -does a varargs printf into a temp buffer, so I don't need to have -varargs versions of all text functions. -FIXME: make this buffer size safe someday -============ -*/ -char * QDECL va( char *format, ... ) { - va_list argptr; - static char string[2][32000]; // in case va is called by nested functions - static int index = 0; - char *buf; - - buf = string[index & 1]; - index++; - - va_start (argptr, format); - vsprintf (buf, format,argptr); - va_end (argptr); - - return buf; -} - - -/* -===================================================================== - - INFO STRINGS - -===================================================================== -*/ - -/* -=============== -Info_ValueForKey - -Searches the string for the given -key and returns the associated value, or an empty string. -FIXME: overflow check? -=============== -*/ -char *Info_ValueForKey( const char *s, const char *key ) { - char pkey[BIG_INFO_KEY]; - static char value[2][BIG_INFO_VALUE]; // use two buffers so compares - // work without stomping on each other - static int valueindex = 0; - char *o; - - if ( !s || !key ) { - return ""; - } - - if ( strlen( s ) >= BIG_INFO_STRING ) { - Com_Error( ERR_DROP, "Info_ValueForKey: oversize infostring" ); - } - - valueindex ^= 1; - if (*s == '\\') - s++; - while (1) - { - o = pkey; - while (*s != '\\') - { - if (!*s) - return ""; - *o++ = *s++; - } - *o = 0; - s++; - - o = value[valueindex]; - - while (*s != '\\' && *s) - { - *o++ = *s++; - } - *o = 0; - - if (!Q_stricmp (key, pkey) ) - return value[valueindex]; - - if (!*s) - break; - s++; - } - - return ""; -} - - -/* -=================== -Info_NextPair - -Used to itterate through all the key/value pairs in an info string -=================== -*/ -void Info_NextPair( const char **head, char *key, char *value ) { - char *o; - const char *s; - - s = *head; - - if ( *s == '\\' ) { - s++; - } - key[0] = 0; - value[0] = 0; - - o = key; - while ( *s != '\\' ) { - if ( !*s ) { - *o = 0; - *head = s; - return; - } - *o++ = *s++; - } - *o = 0; - s++; - - o = value; - while ( *s != '\\' && *s ) { - *o++ = *s++; - } - *o = 0; - - *head = s; -} - - -/* -=================== -Info_RemoveKey -=================== -*/ -void Info_RemoveKey( char *s, const char *key ) { - char *start; - char pkey[MAX_INFO_KEY]; - char value[MAX_INFO_VALUE]; - char *o; - - if ( strlen( s ) >= MAX_INFO_STRING ) { - Com_Error( ERR_DROP, "Info_RemoveKey: oversize infostring" ); - } - - if (strchr (key, '\\')) { - return; - } - - while (1) - { - start = s; - if (*s == '\\') - s++; - o = pkey; - while (*s != '\\') - { - if (!*s) - return; - *o++ = *s++; - } - *o = 0; - s++; - - o = value; - while (*s != '\\' && *s) - { - if (!*s) - return; - *o++ = *s++; - } - *o = 0; - - if (!strcmp (key, pkey) ) - { - strcpy (start, s); // remove this part - return; - } - - if (!*s) - return; - } - -} - -/* -=================== -Info_RemoveKey_Big -=================== -*/ -void Info_RemoveKey_Big( char *s, const char *key ) { - char *start; - char pkey[BIG_INFO_KEY]; - char value[BIG_INFO_VALUE]; - char *o; - - if ( strlen( s ) >= BIG_INFO_STRING ) { - Com_Error( ERR_DROP, "Info_RemoveKey_Big: oversize infostring" ); - } - - if (strchr (key, '\\')) { - return; - } - - while (1) - { - start = s; - if (*s == '\\') - s++; - o = pkey; - while (*s != '\\') - { - if (!*s) - return; - *o++ = *s++; - } - *o = 0; - s++; - - o = value; - while (*s != '\\' && *s) - { - if (!*s) - return; - *o++ = *s++; - } - *o = 0; - - if (!strcmp (key, pkey) ) - { - strcpy (start, s); // remove this part - return; - } - - if (!*s) - return; - } - -} - - - - -/* -================== -Info_Validate - -Some characters are illegal in info strings because they -can mess up the server's parsing -================== -*/ -qboolean Info_Validate( const char *s ) { - if ( strchr( s, '\"' ) ) { - return qfalse; - } - if ( strchr( s, ';' ) ) { - return qfalse; - } - return qtrue; -} - -/* -================== -Info_SetValueForKey - -Changes or adds a key/value pair -================== -*/ -void Info_SetValueForKey( char *s, const char *key, const char *value ) { - char newi[MAX_INFO_STRING]; - - if ( strlen( s ) >= MAX_INFO_STRING ) { - Com_Error( ERR_DROP, "Info_SetValueForKey: oversize infostring" ); - } - - if (strchr (key, '\\') || strchr (value, '\\')) - { - Com_Printf ("Can't use keys or values with a \\\n"); - return; - } - - if (strchr (key, ';') || strchr (value, ';')) - { - Com_Printf ("Can't use keys or values with a semicolon\n"); - return; - } - - if (strchr (key, '\"') || strchr (value, '\"')) - { - Com_Printf ("Can't use keys or values with a \"\n"); - return; - } - - Info_RemoveKey (s, key); - if (!value || !strlen(value)) - return; - - Com_sprintf (newi, sizeof(newi), "\\%s\\%s", key, value); - - if (strlen(newi) + strlen(s) >= MAX_INFO_STRING) - { - Com_Printf ("Info string length exceeded\n"); - return; - } - - strcat (newi, s); - strcpy (s, newi); -} - -/* -================== -Info_SetValueForKey_Big - -Changes or adds a key/value pair -================== -*/ -void Info_SetValueForKey_Big( char *s, const char *key, const char *value ) { - char newi[BIG_INFO_STRING]; - - if ( strlen( s ) >= BIG_INFO_STRING ) { - Com_Error( ERR_DROP, "Info_SetValueForKey: oversize infostring" ); - } - - if (strchr (key, '\\') || strchr (value, '\\')) - { - Com_Printf ("Can't use keys or values with a \\\n"); - return; - } - - if (strchr (key, ';') || strchr (value, ';')) - { - Com_Printf ("Can't use keys or values with a semicolon\n"); - return; - } - - if (strchr (key, '\"') || strchr (value, '\"')) - { - Com_Printf ("Can't use keys or values with a \"\n"); - return; - } - - Info_RemoveKey_Big (s, key); - if (!value || !strlen(value)) - return; - - Com_sprintf (newi, sizeof(newi), "\\%s\\%s", key, value); - - if (strlen(newi) + strlen(s) >= BIG_INFO_STRING) - { - Com_Printf ("BIG Info string length exceeded\n"); - return; - } - - strcat (s, newi); -} - - - - -//==================================================================== - - Deleted: trunk/code/game/q_shared.h =================================================================== --- trunk/code/game/q_shared.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/q_shared.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,1456 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -#ifndef __Q_SHARED_H -#define __Q_SHARED_H - -// q_shared.h -- included first by ALL program modules. -// A user mod should never modify this file - -#define Q3_VERSION "ioQ3 1.33" -// 1.32 released 7-10-2002 - -#define MAX_TEAMNAME 32 - -#ifdef _MSC_VER - -#pragma warning(disable : 4018) // signed/unsigned mismatch -#pragma warning(disable : 4032) -#pragma warning(disable : 4051) -#pragma warning(disable : 4057) // slightly different base types -#pragma warning(disable : 4100) // unreferenced formal parameter -#pragma warning(disable : 4115) -#pragma warning(disable : 4125) // decimal digit terminates octal escape sequence -#pragma warning(disable : 4127) // conditional expression is constant -#pragma warning(disable : 4136) -#pragma warning(disable : 4152) // nonstandard extension, function/data pointer conversion in expression -//#pragma warning(disable : 4201) -//#pragma warning(disable : 4214) -#pragma warning(disable : 4244) -#pragma warning(disable : 4142) // benign redefinition -//#pragma warning(disable : 4305) // truncation from const double to float -//#pragma warning(disable : 4310) // cast truncates constant value -//#pragma warning(disable: 4505) // unreferenced local function has been removed -#pragma warning(disable : 4514) -#pragma warning(disable : 4702) // unreachable code -#pragma warning(disable : 4711) // selected for automatic inline expansion -#pragma warning(disable : 4220) // varargs matches remaining parameters -#endif - -/********************************************************************** - VM Considerations - - The VM can not use the standard system headers because we aren't really - using the compiler they were meant for. We use bg_lib.h which contains - prototypes for the functions we define for our own use in bg_lib.c. - - When writing mods, please add needed headers HERE, do not start including - stuff like in the various .c files that make up each of the VMs - since you will be including system headers files can will have issues. - - Remember, if you use a C library function that is not defined in bg_lib.c, - you will have to add your own version for support in the VM. - - **********************************************************************/ - -#ifdef Q3_VM - -#include "bg_lib.h" - -#else - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif - -#ifdef _MSC_VER - -//#pragma intrinsic( memset, memcpy ) - -#endif - - -// this is the define for determining if we have an asm version of a C function -#if (defined _M_IX86 || defined __i386__) && !defined __sun__ && !defined __LCC__ -#define id386 1 -#else -#define id386 0 -#endif - -#if (defined(powerc) || defined(powerpc) || defined(ppc) || defined(__ppc) || defined(__ppc__)) && !defined(C_ONLY) -#define idppc 1 -#if defined(__VEC__) -#define idppc_altivec 1 -#else -#define idppc_altivec 0 -#endif -#else -#define idppc 0 -#define idppc_altivec 0 -#endif - -// for windows fastcall option - -#define QDECL - -short ShortSwap (short l); -int LongSwap (int l); -float FloatSwap (const float *f); - -//======================= WIN32 DEFINES ================================= - -#ifdef WIN32 - -#define MAC_STATIC - -#undef QDECL -#define QDECL __cdecl - -// buildstring will be incorporated into the version string -#ifdef _MSC_VER -#ifdef NDEBUG -#ifdef _M_IX86 -#define CPUSTRING "win-x86" -#elif defined _M_ALPHA -#define CPUSTRING "win-AXP" -#endif -#else -#ifdef _M_IX86 -#define CPUSTRING "win-x86-debug" -#elif defined _M_ALPHA -#define CPUSTRING "win-AXP-debug" -#endif -#endif -#elif defined __MINGW32__ -#ifdef NDEBUG -#ifdef __i386__ -#define CPUSTRING "mingw-x86" -#endif -#else -#ifdef __i386__ -#define CPUSTRING "mingw-x86-debug" -#endif -#endif -#endif - -#define ID_INLINE __inline - -static ID_INLINE short BigShort( short l) { return ShortSwap(l); } -#define LittleShort -static ID_INLINE int BigLong(int l) { return LongSwap(l); } -#define LittleLong -static ID_INLINE float BigFloat(const float l) { return FloatSwap(&l); } -#define LittleFloat - -#define PATH_SEP '\\' - -#endif - -//======================= MAC OS X DEFINES ===================== - -#if defined(MACOS_X) - -#define MAC_STATIC -#define __cdecl -#define __declspec(x) -#define stricmp strcasecmp -#define ID_INLINE inline - -#ifdef __ppc__ -#define CPUSTRING "MacOSX-ppc" -#elif defined __i386__ -#define CPUSTRING "MacOSX-i386" -#else -#define CPUSTRING "MacOSX-other" -#endif - -#define PATH_SEP '/' - -#define __rlwimi(out, in, shift, maskBegin, maskEnd) asm("rlwimi %0,%1,%2,%3,%4" : "=r" (out) : "r" (in), "i" (shift), "i" (maskBegin), "i" (maskEnd)) -#define __dcbt(addr, offset) asm("dcbt %0,%1" : : "b" (addr), "r" (offset)) - -static inline unsigned int __lwbrx(register void *addr, register int offset) { - register unsigned int word; - - asm("lwbrx %0,%2,%1" : "=r" (word) : "r" (addr), "b" (offset)); - return word; -} - -static inline unsigned short __lhbrx(register void *addr, register int offset) { - register unsigned short halfword; - - asm("lhbrx %0,%2,%1" : "=r" (halfword) : "r" (addr), "b" (offset)); - return halfword; -} - -static inline float __fctiw(register float f) { - register float fi; - - asm("fctiw %0,%1" : "=f" (fi) : "f" (f)); - - return fi; -} - -#define BigShort -static inline short LittleShort(short l) { return ShortSwap(l); } -#define BigLong -static inline int LittleLong (int l) { return LongSwap(l); } -#define BigFloat -static inline float LittleFloat (const float l) { return FloatSwap(&l); } - -#endif - -//======================= MAC DEFINES ================================= - -#ifdef __MACOS__ - -#include -#define MAC_STATIC -#define ID_INLINE inline - -#define CPUSTRING "MacOS-PPC" - -#define PATH_SEP ':' - -void Sys_PumpEvents( void ); - -#define BigShort -static inline short LittleShort(short l) { return ShortSwap(l); } -#define BigLong -static inline int LittleLong (int l) { return LongSwap(l); } -#define BigFloat -static inline float LittleFloat (const float l) { return FloatSwap(&l); } - -#endif - -//======================= LINUX DEFINES ================================= - -// the mac compiler can't handle >32k of locals, so we -// just waste space and make big arrays static... -#ifdef __linux__ - -// bk001205 - from Makefile -#define stricmp strcasecmp - -#define MAC_STATIC // bk: FIXME -#define ID_INLINE inline - -#ifdef __i386__ -#define CPUSTRING "linux-i386" -#elif defined __axp__ -#define CPUSTRING "linux-alpha" -#elif defined __x86_64__ -#define CPUSTRING "linux-x86_64" -#elif defined __powerpc64__ -#define CPUSTRING "linux-ppc64" -#elif defined __powerpc__ -#define CPUSTRING "linux-ppc" -#elif defined __s390__ -#define CPUSTRING "linux-s390" -#elif defined __s390x__ -#define CPUSTRING "linux-s390x" -#elif defined __ia64__ -#define CPUSTRING "linux-ia64" -#else -#define CPUSTRING "linux-other" -#endif - -#define PATH_SEP '/' - -// bk001205 - try -#ifdef Q3_STATIC -#define GAME_HARD_LINKED -#define CGAME_HARD_LINKED -#define UI_HARD_LINKED -#define BOTLIB_HARD_LINKED -#endif - -#if __FLOAT_WORD_ORDER == __LITTLE_ENDIAN -inline static short BigShort( short l) { return ShortSwap(l); } -#define LittleShort -inline static int BigLong(int l) { return LongSwap(l); } -#define LittleLong -inline static float BigFloat(const float l) { return FloatSwap(&l); } -#define LittleFloat -#else -#define BigShort -inline static short LittleShort(short l) { return ShortSwap(l); } -#define BigLong -inline static int LittleLong (int l) { return LongSwap(l); } -#define BigFloat -inline static float LittleFloat (const float l) { return FloatSwap(&l); } -#endif - -#endif - -//======================= FreeBSD DEFINES ===================== -#ifdef __FreeBSD__ // rb010123 - -#define stricmp strcasecmp - -#define MAC_STATIC -#define ID_INLINE inline - -#ifdef __i386__ -#define CPUSTRING "freebsd-i386" -#elif defined __axp__ -#define CPUSTRING "freebsd-alpha" -#else -#define CPUSTRING "freebsd-other" -#endif - -#define PATH_SEP '/' - -// bk010116 - omitted Q3STATIC (see Linux above), broken target - -#if !idppc -static short BigShort( short l) { return ShortSwap(l); } -#define LittleShort -static int BigLong(int l) { return LongSwap(l); } -#define LittleLong -static float BigFloat(const float l) { return FloatSwap(&l); } -#define LittleFloat -#else -#define BigShort -static short LittleShort(short l) { return ShortSwap(l); } -#define BigLong -static int LittleLong (int l) { return LongSwap(l); } -#define BigFloat -static float LittleFloat (const float l) { return FloatSwap(&l); } -#endif - -#endif - -//============================================================= - -typedef unsigned char byte; - -typedef enum {qfalse, qtrue} qboolean; - -typedef int qhandle_t; -typedef int sfxHandle_t; -typedef int fileHandle_t; -typedef int clipHandle_t; - - -#ifndef NULL -#define NULL ((void *)0) -#endif - -#define MAX_QINT 0x7fffffff -#define MIN_QINT (-MAX_QINT-1) - - -// angle indexes -#define PITCH 0 // up / down -#define YAW 1 // left / right -#define ROLL 2 // fall over - -// the game guarantees that no string from the network will ever -// exceed MAX_STRING_CHARS -#define MAX_STRING_CHARS 1024 // max length of a string passed to Cmd_TokenizeString -#define MAX_STRING_TOKENS 1024 // max tokens resulting from Cmd_TokenizeString -#define MAX_TOKEN_CHARS 1024 // max length of an individual token - -#define MAX_INFO_STRING 1024 -#define MAX_INFO_KEY 1024 -#define MAX_INFO_VALUE 1024 - -#define BIG_INFO_STRING 8192 // used for system info key only -#define BIG_INFO_KEY 8192 -#define BIG_INFO_VALUE 8192 - - -#define MAX_QPATH 64 // max length of a quake game pathname -#ifdef PATH_MAX -#define MAX_OSPATH PATH_MAX -#else -#define MAX_OSPATH 256 // max length of a filesystem pathname -#endif - -#define MAX_NAME_LENGTH 32 // max length of a client name - -#define MAX_SAY_TEXT 150 - -// paramters for command buffer stuffing -typedef enum { - EXEC_NOW, // don't return until completed, a VM should NEVER use this, - // because some commands might cause the VM to be unloaded... - EXEC_INSERT, // insert at current position, but don't run yet - EXEC_APPEND // add to end of the command buffer (normal case) -} cbufExec_t; - - -// -// these aren't needed by any of the VMs. put in another header? -// -#define MAX_MAP_AREA_BYTES 32 // bit vector of area visibility - - -// print levels from renderer (FIXME: set up for game / cgame?) -typedef enum { - PRINT_ALL, - PRINT_DEVELOPER, // only print when "developer 1" - PRINT_WARNING, - PRINT_ERROR -} printParm_t; - - -#ifdef ERR_FATAL -#undef ERR_FATAL // this is be defined in malloc.h -#endif - -// parameters to the main Error routine -typedef enum { - ERR_FATAL, // exit the entire game with a popup window - ERR_DROP, // print to console and disconnect from game - ERR_SERVERDISCONNECT, // don't kill server - ERR_DISCONNECT, // client disconnected from the server - ERR_NEED_CD // pop up the need-cd dialog -} errorParm_t; - - -// font rendering values used by ui and cgame - -#define PROP_GAP_WIDTH 3 -#define PROP_SPACE_WIDTH 8 -#define PROP_HEIGHT 27 -#define PROP_SMALL_SIZE_SCALE 0.75 - -#define BLINK_DIVISOR 200 -#define PULSE_DIVISOR 75 - -#define UI_LEFT 0x00000000 // default -#define UI_CENTER 0x00000001 -#define UI_RIGHT 0x00000002 -#define UI_FORMATMASK 0x00000007 -#define UI_SMALLFONT 0x00000010 -#define UI_BIGFONT 0x00000020 // default -#define UI_GIANTFONT 0x00000040 -#define UI_DROPSHADOW 0x00000800 -#define UI_BLINK 0x00001000 -#define UI_INVERSE 0x00002000 -#define UI_PULSE 0x00004000 - -#if defined(_DEBUG) && !defined(BSPC) - #define HUNK_DEBUG -#endif - -typedef enum { - h_high, - h_low, - h_dontcare -} ha_pref; - -#ifdef HUNK_DEBUG -#define Hunk_Alloc( size, preference ) Hunk_AllocDebug(size, preference, #size, __FILE__, __LINE__) -void *Hunk_AllocDebug( int size, ha_pref preference, char *label, char *file, int line ); -#else -void *Hunk_Alloc( int size, ha_pref preference ); -#endif - -#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(MACOS_X) -// https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=371 -// custom Snd_Memset implementation for glibc memset bug workaround -void Snd_Memset (void* dest, const int val, const size_t count); -#else -#define Snd_Memset Com_Memset -#endif - -#if !( defined __VECTORC ) -void Com_Memset (void* dest, const int val, const size_t count); -void Com_Memcpy (void* dest, const void* src, const size_t count); -#else -#define Com_Memset memset -#define Com_Memcpy memcpy -#endif - -#define CIN_system 1 -#define CIN_loop 2 -#define CIN_hold 4 -#define CIN_silent 8 -#define CIN_shader 16 - -/* -============================================================== - -MATHLIB - -============================================================== -*/ - - -typedef float vec_t; -typedef vec_t vec2_t[2]; -typedef vec_t vec3_t[3]; -typedef vec_t vec4_t[4]; -typedef vec_t vec5_t[5]; - -typedef int fixed4_t; -typedef int fixed8_t; -typedef int fixed16_t; - -#ifndef M_PI -#define M_PI 3.14159265358979323846f // matches value in gcc v2 math.h -#endif - -#define NUMVERTEXNORMALS 162 -extern vec3_t bytedirs[NUMVERTEXNORMALS]; - -// all drawing is done to a 640*480 virtual screen size -// and will be automatically scaled to the real resolution -#define SCREEN_WIDTH 640 -#define SCREEN_HEIGHT 480 - -#define TINYCHAR_WIDTH (SMALLCHAR_WIDTH) -#define TINYCHAR_HEIGHT (SMALLCHAR_HEIGHT/2) - -#define SMALLCHAR_WIDTH 8 -#define SMALLCHAR_HEIGHT 16 - -#define BIGCHAR_WIDTH 16 -#define BIGCHAR_HEIGHT 16 - -#define GIANTCHAR_WIDTH 32 -#define GIANTCHAR_HEIGHT 48 - -extern vec4_t colorBlack; -extern vec4_t colorRed; -extern vec4_t colorGreen; -extern vec4_t colorBlue; -extern vec4_t colorYellow; -extern vec4_t colorMagenta; -extern vec4_t colorCyan; -extern vec4_t colorWhite; -extern vec4_t colorLtGrey; -extern vec4_t colorMdGrey; -extern vec4_t colorDkGrey; - -#define Q_COLOR_ESCAPE '^' -#define Q_IsColorString(p) ( p && *(p) == Q_COLOR_ESCAPE && *((p)+1) && *((p)+1) != Q_COLOR_ESCAPE ) - -#define COLOR_BLACK '0' -#define COLOR_RED '1' -#define COLOR_GREEN '2' -#define COLOR_YELLOW '3' -#define COLOR_BLUE '4' -#define COLOR_CYAN '5' -#define COLOR_MAGENTA '6' -#define COLOR_WHITE '7' -#define ColorIndex(c) ( ( (c) - '0' ) & 7 ) - -#define S_COLOR_BLACK "^0" -#define S_COLOR_RED "^1" -#define S_COLOR_GREEN "^2" -#define S_COLOR_YELLOW "^3" -#define S_COLOR_BLUE "^4" -#define S_COLOR_CYAN "^5" -#define S_COLOR_MAGENTA "^6" -#define S_COLOR_WHITE "^7" - -extern vec4_t g_color_table[8]; - -#define MAKERGB( v, r, g, b ) v[0]=r;v[1]=g;v[2]=b -#define MAKERGBA( v, r, g, b, a ) v[0]=r;v[1]=g;v[2]=b;v[3]=a - -#define DEG2RAD( a ) ( ( (a) * M_PI ) / 180.0F ) -#define RAD2DEG( a ) ( ( (a) * 180.0f ) / M_PI ) - -struct cplane_s; - -extern vec3_t vec3_origin; -extern vec3_t axisDefault[3]; - -#define nanmask (255<<23) - -#define IS_NAN(x) (((*(int *)&x)&nanmask)==nanmask) - -#if idppc - -static inline float Q_rsqrt( float number ) { - float x = 0.5f * number; - float y; -#ifdef __GNUC__ - asm("frsqrte %0,%1" : "=f" (y) : "f" (number)); -#else - y = __frsqrte( number ); -#endif - return y * (1.5f - (x * y * y)); - } - -#ifdef __GNUC__ -static inline float Q_fabs(float x) { - float abs_x; - - asm("fabs %0,%1" : "=f" (abs_x) : "f" (x)); - return abs_x; -} -#else -#define Q_fabs __fabsf -#endif - -#else -float Q_fabs( float f ); -float Q_rsqrt( float f ); // reciprocal square root -#endif - -#define SQRTFAST( x ) ( (x) * Q_rsqrt( x ) ) - -signed char ClampChar( int i ); -signed short ClampShort( int i ); - -// this isn't a real cheap function to call! -int DirToByte( vec3_t dir ); -void ByteToDir( int b, vec3_t dir ); - -#if 1 - -#define DotProduct(x,y) ((x)[0]*(y)[0]+(x)[1]*(y)[1]+(x)[2]*(y)[2]) -#define VectorSubtract(a,b,c) ((c)[0]=(a)[0]-(b)[0],(c)[1]=(a)[1]-(b)[1],(c)[2]=(a)[2]-(b)[2]) -#define VectorAdd(a,b,c) ((c)[0]=(a)[0]+(b)[0],(c)[1]=(a)[1]+(b)[1],(c)[2]=(a)[2]+(b)[2]) -#define VectorCopy(a,b) ((b)[0]=(a)[0],(b)[1]=(a)[1],(b)[2]=(a)[2]) -#define VectorScale(v, s, o) ((o)[0]=(v)[0]*(s),(o)[1]=(v)[1]*(s),(o)[2]=(v)[2]*(s)) -#define VectorMA(v, s, b, o) ((o)[0]=(v)[0]+(b)[0]*(s),(o)[1]=(v)[1]+(b)[1]*(s),(o)[2]=(v)[2]+(b)[2]*(s)) - -#else - -#define DotProduct(x,y) _DotProduct(x,y) -#define VectorSubtract(a,b,c) _VectorSubtract(a,b,c) -#define VectorAdd(a,b,c) _VectorAdd(a,b,c) -#define VectorCopy(a,b) _VectorCopy(a,b) -#define VectorScale(v, s, o) _VectorScale(v,s,o) -#define VectorMA(v, s, b, o) _VectorMA(v,s,b,o) - -#endif - -#ifdef __LCC__ -#ifdef VectorCopy -#undef VectorCopy -// this is a little hack to get more efficient copies in our interpreter -typedef struct { - float v[3]; -} vec3struct_t; -#define VectorCopy(a,b) (*(vec3struct_t *)b=*(vec3struct_t *)a) -#define ID_INLINE static -#endif -#endif - -#define VectorClear(a) ((a)[0]=(a)[1]=(a)[2]=0) -#define VectorNegate(a,b) ((b)[0]=-(a)[0],(b)[1]=-(a)[1],(b)[2]=-(a)[2]) -#define VectorSet(v, x, y, z) ((v)[0]=(x), (v)[1]=(y), (v)[2]=(z)) -#define Vector4Copy(a,b) ((b)[0]=(a)[0],(b)[1]=(a)[1],(b)[2]=(a)[2],(b)[3]=(a)[3]) - -#define SnapVector(v) {v[0]=((int)(v[0]));v[1]=((int)(v[1]));v[2]=((int)(v[2]));} -// just in case you do't want to use the macros -vec_t _DotProduct( const vec3_t v1, const vec3_t v2 ); -void _VectorSubtract( const vec3_t veca, const vec3_t vecb, vec3_t out ); -void _VectorAdd( const vec3_t veca, const vec3_t vecb, vec3_t out ); -void _VectorCopy( const vec3_t in, vec3_t out ); -void _VectorScale( const vec3_t in, float scale, vec3_t out ); -void _VectorMA( const vec3_t veca, float scale, const vec3_t vecb, vec3_t vecc ); - -unsigned ColorBytes3 (float r, float g, float b); -unsigned ColorBytes4 (float r, float g, float b, float a); - -float NormalizeColor( const vec3_t in, vec3_t out ); - -float RadiusFromBounds( const vec3_t mins, const vec3_t maxs ); -void ClearBounds( vec3_t mins, vec3_t maxs ); -void AddPointToBounds( const vec3_t v, vec3_t mins, vec3_t maxs ); - -#ifndef __LCC__ -static ID_INLINE int VectorCompare( const vec3_t v1, const vec3_t v2 ) { - if (v1[0] != v2[0] || v1[1] != v2[1] || v1[2] != v2[2]) { - return 0; - } - return 1; -} - -static ID_INLINE vec_t VectorLength( const vec3_t v ) { - return (vec_t)sqrt (v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); -} - -static ID_INLINE vec_t VectorLengthSquared( const vec3_t v ) { - return (v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); -} - -static ID_INLINE vec_t Distance( const vec3_t p1, const vec3_t p2 ) { - vec3_t v; - - VectorSubtract (p2, p1, v); - return VectorLength( v ); -} - -static ID_INLINE vec_t DistanceSquared( const vec3_t p1, const vec3_t p2 ) { - vec3_t v; - - VectorSubtract (p2, p1, v); - return v[0]*v[0] + v[1]*v[1] + v[2]*v[2]; -} - -// fast vector normalize routine that does not check to make sure -// that length != 0, nor does it return length, uses rsqrt approximation -static ID_INLINE void VectorNormalizeFast( vec3_t v ) -{ - float ilength; - - ilength = Q_rsqrt( DotProduct( v, v ) ); - - v[0] *= ilength; - v[1] *= ilength; - v[2] *= ilength; -} - -static ID_INLINE void VectorInverse( vec3_t v ){ - v[0] = -v[0]; - v[1] = -v[1]; - v[2] = -v[2]; -} - -static ID_INLINE void CrossProduct( const vec3_t v1, const vec3_t v2, vec3_t cross ) { - cross[0] = v1[1]*v2[2] - v1[2]*v2[1]; - cross[1] = v1[2]*v2[0] - v1[0]*v2[2]; - cross[2] = v1[0]*v2[1] - v1[1]*v2[0]; -} - -#else -int VectorCompare( const vec3_t v1, const vec3_t v2 ); - -vec_t VectorLength( const vec3_t v ); - -vec_t VectorLengthSquared( const vec3_t v ); - -vec_t Distance( const vec3_t p1, const vec3_t p2 ); - -vec_t DistanceSquared( const vec3_t p1, const vec3_t p2 ); - -void VectorNormalizeFast( vec3_t v ); - -void VectorInverse( vec3_t v ); - -void CrossProduct( const vec3_t v1, const vec3_t v2, vec3_t cross ); - -#endif - -vec_t VectorNormalize (vec3_t v); // returns vector length -vec_t VectorNormalize2( const vec3_t v, vec3_t out ); -void Vector4Scale( const vec4_t in, vec_t scale, vec4_t out ); -void VectorRotate( vec3_t in, vec3_t matrix[3], vec3_t out ); -int Q_log2(int val); - -float Q_acos(float c); - -int Q_rand( int *seed ); -float Q_random( int *seed ); -float Q_crandom( int *seed ); - -#define random() ((rand () & 0x7fff) / ((float)0x7fff)) -#define crandom() (2.0 * (random() - 0.5)) - -void vectoangles( const vec3_t value1, vec3_t angles); -void AnglesToAxis( const vec3_t angles, vec3_t axis[3] ); - -void AxisClear( vec3_t axis[3] ); -void AxisCopy( vec3_t in[3], vec3_t out[3] ); - -void SetPlaneSignbits( struct cplane_s *out ); -int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *plane); - -float AngleMod(float a); -float LerpAngle (float from, float to, float frac); -float AngleSubtract( float a1, float a2 ); -void AnglesSubtract( vec3_t v1, vec3_t v2, vec3_t v3 ); - -float AngleNormalize360 ( float angle ); -float AngleNormalize180 ( float angle ); -float AngleDelta ( float angle1, float angle2 ); - -qboolean PlaneFromPoints( vec4_t plane, const vec3_t a, const vec3_t b, const vec3_t c ); -void ProjectPointOnPlane( vec3_t dst, const vec3_t p, const vec3_t normal ); -void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, float degrees ); -void RotateAroundDirection( vec3_t axis[3], float yaw ); -void MakeNormalVectors( const vec3_t forward, vec3_t right, vec3_t up ); -// perpendicular vector could be replaced by this - -//int PlaneTypeForNormal (vec3_t normal); - -void MatrixMultiply(float in1[3][3], float in2[3][3], float out[3][3]); -void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up); -void PerpendicularVector( vec3_t dst, const vec3_t src ); - - -//============================================= - -float Com_Clamp( float min, float max, float value ); - -char *COM_SkipPath( char *pathname ); -void COM_StripExtension( const char *in, char *out ); -void COM_DefaultExtension( char *path, int maxSize, const char *extension ); - -void COM_BeginParseSession( const char *name ); -int COM_GetCurrentParseLine( void ); -char *COM_Parse( char **data_p ); -char *COM_ParseExt( char **data_p, qboolean allowLineBreak ); -int COM_Compress( char *data_p ); -void COM_ParseError( char *format, ... ); -void COM_ParseWarning( char *format, ... ); -//int COM_ParseInfos( char *buf, int max, char infos[][MAX_INFO_STRING] ); - -#define MAX_TOKENLENGTH 1024 - -#ifndef TT_STRING -//token types -#define TT_STRING 1 // string -#define TT_LITERAL 2 // literal -#define TT_NUMBER 3 // number -#define TT_NAME 4 // name -#define TT_PUNCTUATION 5 // punctuation -#endif - -typedef struct pc_token_s -{ - int type; - int subtype; - int intvalue; - float floatvalue; - char string[MAX_TOKENLENGTH]; -} pc_token_t; - -// data is an in/out parm, returns a parsed out token - -void COM_MatchToken( char**buf_p, char *match ); - -void SkipBracedSection (char **program); -void SkipRestOfLine ( char **data ); - -void Parse1DMatrix (char **buf_p, int x, float *m); -void Parse2DMatrix (char **buf_p, int y, int x, float *m); -void Parse3DMatrix (char **buf_p, int z, int y, int x, float *m); - -void QDECL Com_sprintf (char *dest, int size, const char *fmt, ...); - - -// mode parm for FS_FOpenFile -typedef enum { - FS_READ, - FS_WRITE, - FS_APPEND, - FS_APPEND_SYNC -} fsMode_t; - -typedef enum { - FS_SEEK_CUR, - FS_SEEK_END, - FS_SEEK_SET -} fsOrigin_t; - -//============================================= - -int Q_isprint( int c ); -int Q_islower( int c ); -int Q_isupper( int c ); -int Q_isalpha( int c ); - -// portable case insensitive compare -int Q_stricmp (const char *s1, const char *s2); -int Q_strncmp (const char *s1, const char *s2, int n); -int Q_stricmpn (const char *s1, const char *s2, int n); -char *Q_strlwr( char *s1 ); -char *Q_strupr( char *s1 ); -char *Q_strrchr( const char* string, int c ); - -// buffer size safe library replacements -void Q_strncpyz( char *dest, const char *src, int destsize ); -void Q_strcat( char *dest, int size, const char *src ); - -// strlen that discounts Quake color sequences -int Q_PrintStrlen( const char *string ); -// removes color sequences from string -char *Q_CleanStr( char *string ); - -//============================================= - -// 64-bit integers for global rankings interface -// implemented as a struct for qvm compatibility -typedef struct -{ - byte b0; - byte b1; - byte b2; - byte b3; - byte b4; - byte b5; - byte b6; - byte b7; -} qint64; - -//============================================= -/* -short BigShort(short l); -short LittleShort(short l); -int BigLong (int l); -int LittleLong (int l); -qint64 BigLong64 (qint64 l); -qint64 LittleLong64 (qint64 l); -float BigFloat (const float *l); -float LittleFloat (const float *l); - -void Swap_Init (void); -*/ -char * QDECL va(char *format, ...); - -//============================================= - -// -// key / value info strings -// -char *Info_ValueForKey( const char *s, const char *key ); -void Info_RemoveKey( char *s, const char *key ); -void Info_RemoveKey_big( char *s, const char *key ); -void Info_SetValueForKey( char *s, const char *key, const char *value ); -void Info_SetValueForKey_Big( char *s, const char *key, const char *value ); -qboolean Info_Validate( const char *s ); -void Info_NextPair( const char **s, char *key, char *value ); - -// this is only here so the functions in q_shared.c and bg_*.c can link -void QDECL Com_Error( int level, const char *error, ... ); -void QDECL Com_Printf( const char *msg, ... ); - - -/* -========================================================== - -CVARS (console variables) - -Many variables can be used for cheating purposes, so when -cheats is zero, force all unspecified variables to their -default values. -========================================================== -*/ - -#define CVAR_ARCHIVE 1 // set to cause it to be saved to vars.rc - // used for system variables, not for player - // specific configurations -#define CVAR_USERINFO 2 // sent to server on connect or change -#define CVAR_SERVERINFO 4 // sent in response to front end requests -#define CVAR_SYSTEMINFO 8 // these cvars will be duplicated on all clients -#define CVAR_INIT 16 // don't allow change from console at all, - // but can be set from the command line -#define CVAR_LATCH 32 // will only change when C code next does - // a Cvar_Get(), so it can't be changed - // without proper initialization. modified - // will be set, even though the value hasn't - // changed yet -#define CVAR_ROM 64 // display only, cannot be set by user at all -#define CVAR_USER_CREATED 128 // created by a set command -#define CVAR_TEMP 256 // can be set even when cheats are disabled, but is not archived -#define CVAR_CHEAT 512 // can not be changed if cheats are disabled -#define CVAR_NORESTART 1024 // do not clear when a cvar_restart is issued - -// nothing outside the Cvar_*() functions should modify these fields! -typedef struct cvar_s { - char *name; - char *string; - char *resetString; // cvar_restart will reset to this value - char *latchedString; // for CVAR_LATCH vars - int flags; - qboolean modified; // set each time the cvar is changed - int modificationCount; // incremented each time the cvar is changed - float value; // atof( string ) - int integer; // atoi( string ) - struct cvar_s *next; - struct cvar_s *hashNext; -} cvar_t; - -#define MAX_CVAR_VALUE_STRING 256 - -typedef int cvarHandle_t; - -// the modules that run in the virtual machine can't access the cvar_t directly, -// so they must ask for structured updates -typedef struct { - cvarHandle_t handle; - int modificationCount; - float value; - int integer; - char string[MAX_CVAR_VALUE_STRING]; -} vmCvar_t; - -/* -============================================================== - -COLLISION DETECTION - -============================================================== -*/ - -#include "surfaceflags.h" // shared with the q3map utility - -// plane types are used to speed some tests -// 0-2 are axial planes -#define PLANE_X 0 -#define PLANE_Y 1 -#define PLANE_Z 2 -#define PLANE_NON_AXIAL 3 - - -/* -================= -PlaneTypeForNormal -================= -*/ - -#define PlaneTypeForNormal(x) (x[0] == 1.0 ? PLANE_X : (x[1] == 1.0 ? PLANE_Y : (x[2] == 1.0 ? PLANE_Z : PLANE_NON_AXIAL) ) ) - -// plane_t structure -// !!! if this is changed, it must be changed in asm code too !!! -typedef struct cplane_s { - vec3_t normal; - float dist; - byte type; // for fast side tests: 0,1,2 = axial, 3 = nonaxial - byte signbits; // signx + (signy<<1) + (signz<<2), used as lookup during collision - byte pad[2]; -} cplane_t; - - -// a trace is returned when a box is swept through the world -typedef struct { - qboolean allsolid; // if true, plane is not valid - qboolean startsolid; // if true, the initial point was in a solid area - float fraction; // time completed, 1.0 = didn't hit anything - vec3_t endpos; // final position - cplane_t plane; // surface normal at impact, transformed to world space - int surfaceFlags; // surface hit - int contents; // contents on other side of surface hit - int entityNum; // entity the contacted sirface is a part of -} trace_t; - -// trace->entityNum can also be 0 to (MAX_GENTITIES-1) -// or ENTITYNUM_NONE, ENTITYNUM_WORLD - - -// markfragments are returned by CM_MarkFragments() -typedef struct { - int firstPoint; - int numPoints; -} markFragment_t; - - - -typedef struct { - vec3_t origin; - vec3_t axis[3]; -} orientation_t; - -//===================================================================== - - -// in order from highest priority to lowest -// if none of the catchers are active, bound key strings will be executed -#define KEYCATCH_CONSOLE 0x0001 -#define KEYCATCH_UI 0x0002 -#define KEYCATCH_MESSAGE 0x0004 -#define KEYCATCH_CGAME 0x0008 - - -// sound channels -// channel 0 never willingly overrides -// other channels will allways override a playing sound on that channel -typedef enum { - CHAN_AUTO, - CHAN_LOCAL, // menu sounds, etc - CHAN_WEAPON, - CHAN_VOICE, - CHAN_ITEM, - CHAN_BODY, - CHAN_LOCAL_SOUND, // chat messages, etc - CHAN_ANNOUNCER // announcer voices, etc -} soundChannel_t; - - -/* -======================================================================== - - ELEMENTS COMMUNICATED ACROSS THE NET - -======================================================================== -*/ - -#define ANGLE2SHORT(x) ((int)((x)*65536/360) & 65535) -#define SHORT2ANGLE(x) ((x)*(360.0/65536)) - -#define SNAPFLAG_RATE_DELAYED 1 -#define SNAPFLAG_NOT_ACTIVE 2 // snapshot used during connection and for zombies -#define SNAPFLAG_SERVERCOUNT 4 // toggled every map_restart so transitions can be detected - -// -// per-level limits -// -#define MAX_CLIENTS 64 // absolute limit -#define MAX_LOCATIONS 64 - -#define GENTITYNUM_BITS 10 // don't need to send any more -#define MAX_GENTITIES (1<serverTime of last executed command - int pm_type; - int bobCycle; // for view bobbing and footstep generation - int pm_flags; // ducked, jump_held, etc - int pm_time; - - vec3_t origin; - vec3_t velocity; - int weaponTime; - int gravity; - int speed; - int delta_angles[3]; // add to command angles to get view direction - // changed by spawns, rotating objects, and teleporters - - int groundEntityNum;// ENTITYNUM_NONE = in air - - int legsTimer; // don't change low priority animations until this runs out - int legsAnim; // mask off ANIM_TOGGLEBIT - - int torsoTimer; // don't change low priority animations until this runs out - int torsoAnim; // mask off ANIM_TOGGLEBIT - - int movementDir; // a number 0 to 7 that represents the reletive angle - // of movement to the view angle (axial and diagonals) - // when at rest, the value will remain unchanged - // used to twist the legs during strafing - - vec3_t grapplePoint; // location of grapple to pull towards if PMF_GRAPPLE_PULL - - int eFlags; // copied to entityState_t->eFlags - - int eventSequence; // pmove generated events - int events[MAX_PS_EVENTS]; - int eventParms[MAX_PS_EVENTS]; - - int externalEvent; // events set on player from another source - int externalEventParm; - int externalEventTime; - - int clientNum; // ranges from 0 to MAX_CLIENTS-1 - int weapon; // copied to entityState_t->weapon - int weaponstate; - - vec3_t viewangles; // for fixed views - int viewheight; - - // damage feedback - int damageEvent; // when it changes, latch the other parms - int damageYaw; - int damagePitch; - int damageCount; - - int stats[MAX_STATS]; - int persistant[MAX_PERSISTANT]; // stats that aren't cleared on death - int powerups[MAX_POWERUPS]; // level.time that the powerup runs out - int ammo[MAX_WEAPONS]; - - int generic1; - int loopSound; - int jumppad_ent; // jumppad entity hit this frame - - // not communicated over the net at all - int ping; // server to game info for scoreboard - int pmove_framecount; // FIXME: don't transmit over the network - int jumppad_frame; - int entityEventSequence; -} playerState_t; - - -//==================================================================== - - -// -// usercmd_t->button bits, many of which are generated by the client system, -// so they aren't game/cgame only definitions -// -#define BUTTON_ATTACK 1 -#define BUTTON_TALK 2 // displays talk balloon and disables actions -#define BUTTON_USE_HOLDABLE 4 -#define BUTTON_GESTURE 8 -#define BUTTON_WALKING 16 // walking can't just be infered from MOVE_RUN - // because a key pressed late in the frame will - // only generate a small move value for that frame - // walking will use different animations and - // won't generate footsteps -#define BUTTON_AFFIRMATIVE 32 -#define BUTTON_NEGATIVE 64 - -#define BUTTON_GETFLAG 128 -#define BUTTON_GUARDBASE 256 -#define BUTTON_PATROL 512 -#define BUTTON_FOLLOWME 1024 - -#define BUTTON_ANY 2048 // any key whatsoever - -#define MOVE_RUN 120 // if forwardmove or rightmove are >= MOVE_RUN, - // then BUTTON_WALKING should be set - -// usercmd_t is sent to the server each client frame -typedef struct usercmd_s { - int serverTime; - int angles[3]; - int buttons; - byte weapon; // weapon - signed char forwardmove, rightmove, upmove; -} usercmd_t; - -//=================================================================== - -// if entityState->solid == SOLID_BMODEL, modelindex is an inline model number -#define SOLID_BMODEL 0xffffff - -typedef enum { - TR_STATIONARY, - TR_INTERPOLATE, // non-parametric, but interpolate between snapshots - TR_LINEAR, - TR_LINEAR_STOP, - TR_SINE, // value = base + sin( time / duration ) * delta - TR_GRAVITY -} trType_t; - -typedef struct { - trType_t trType; - int trTime; - int trDuration; // if non 0, trTime + trDuration = stop time - vec3_t trBase; - vec3_t trDelta; // velocity, etc -} trajectory_t; - -// entityState_t is the information conveyed from the server -// in an update message about entities that the client will -// need to render in some way -// Different eTypes may use the information in different ways -// The messages are delta compressed, so it doesn't really matter if -// the structure size is fairly large - -typedef struct entityState_s { - int number; // entity index - int eType; // entityType_t - int eFlags; - - trajectory_t pos; // for calculating position - trajectory_t apos; // for calculating angles - - int time; - int time2; - - vec3_t origin; - vec3_t origin2; - - vec3_t angles; - vec3_t angles2; - - int otherEntityNum; // shotgun sources, etc - int otherEntityNum2; - - int groundEntityNum; // -1 = in air - - int constantLight; // r + (g<<8) + (b<<16) + (intensity<<24) - int loopSound; // constantly loop this sound - - int modelindex; - int modelindex2; - int clientNum; // 0 to (MAX_CLIENTS - 1), for players and corpses - int frame; - - int solid; // for client side prediction, trap_linkentity sets this properly - - int event; // impulse events -- muzzle flashes, footsteps, etc - int eventParm; - - // for players - int powerups; // bit flags - int weapon; // determines weapon and flash model, etc - int legsAnim; // mask off ANIM_TOGGLEBIT - int torsoAnim; // mask off ANIM_TOGGLEBIT - - int generic1; -} entityState_t; - -typedef enum { - CA_UNINITIALIZED, - CA_DISCONNECTED, // not talking to a server - CA_AUTHORIZING, // not used any more, was checking cd key - CA_CONNECTING, // sending request packets to the server - CA_CHALLENGING, // sending challenge packets to the server - CA_CONNECTED, // netchan_t established, getting gamestate - CA_LOADING, // only during cgame initialization, never during main loop - CA_PRIMED, // got gamestate, waiting for first frame - CA_ACTIVE, // game views should be displayed - CA_CINEMATIC // playing a cinematic or a static pic, not connected to a server -} connstate_t; - -// font support - -#define GLYPH_START 0 -#define GLYPH_END 255 -#define GLYPH_CHARSTART 32 -#define GLYPH_CHAREND 127 -#define GLYPHS_PER_FONT GLYPH_END - GLYPH_START + 1 -typedef struct { - int height; // number of scan lines - int top; // top of glyph in buffer - int bottom; // bottom of glyph in buffer - int pitch; // width for copying - int xSkip; // x adjustment - int imageWidth; // width of actual image - int imageHeight; // height of actual image - float s; // x offset in image where glyph starts - float t; // y offset in image where glyph starts - float s2; - float t2; - qhandle_t glyph; // handle to the shader with the glyph - char shaderName[32]; -} glyphInfo_t; - -typedef struct { - glyphInfo_t glyphs [GLYPHS_PER_FONT]; - float glyphScale; - char name[MAX_QPATH]; -} fontInfo_t; - -#define Square(x) ((x)*(x)) - -// real time -//============================================= - - -typedef struct qtime_s { - int tm_sec; /* seconds after the minute - [0,59] */ - int tm_min; /* minutes after the hour - [0,59] */ - int tm_hour; /* hours since midnight - [0,23] */ - int tm_mday; /* day of the month - [1,31] */ - int tm_mon; /* months since January - [0,11] */ - int tm_year; /* years since 1900 */ - int tm_wday; /* days since Sunday - [0,6] */ - int tm_yday; /* days since January 1 - [0,365] */ - int tm_isdst; /* daylight savings time flag */ -} qtime_t; - - -// server browser sources -// TTimo: AS_MPLAYER is no longer used -#define AS_LOCAL 0 -#define AS_MPLAYER 1 -#define AS_GLOBAL 2 -#define AS_FAVORITES 3 - - -// cinematic states -typedef enum { - FMV_IDLE, - FMV_PLAY, // play - FMV_EOF, // all other conditions, i.e. stop/EOF/abort - FMV_ID_BLT, - FMV_ID_IDLE, - FMV_LOOPED, - FMV_ID_WAIT -} e_status; - -typedef enum _flag_status { - FLAG_ATBASE = 0, - FLAG_TAKEN, // CTF - FLAG_TAKEN_RED, // One Flag CTF - FLAG_TAKEN_BLUE, // One Flag CTF - FLAG_DROPPED -} flagStatus_t; - - - -#define MAX_GLOBAL_SERVERS 4096 -#define MAX_OTHER_SERVERS 128 -#define MAX_PINGREQUESTS 32 -#define MAX_SERVERSTATUSREQUESTS 16 - -#define SAY_ALL 0 -#define SAY_TEAM 1 -#define SAY_TELL 2 - -#define CDKEY_LEN 16 -#define CDCHKSUM_LEN 2 - - -#endif // __Q_SHARED_H Deleted: trunk/code/game/surfaceflags.h =================================================================== --- trunk/code/game/surfaceflags.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/game/surfaceflags.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,80 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -// This file must be identical in the quake and utils directories - -// contents flags are seperate bits -// a given brush can contribute multiple content bits - -// these definitions also need to be in q_shared.h! - -#define CONTENTS_SOLID 1 // an eye is never valid in a solid -#define CONTENTS_LAVA 8 -#define CONTENTS_SLIME 16 -#define CONTENTS_WATER 32 -#define CONTENTS_FOG 64 - -#define CONTENTS_NOTTEAM1 0x0080 -#define CONTENTS_NOTTEAM2 0x0100 -#define CONTENTS_NOBOTCLIP 0x0200 - -#define CONTENTS_AREAPORTAL 0x8000 - -#define CONTENTS_PLAYERCLIP 0x10000 -#define CONTENTS_MONSTERCLIP 0x20000 -//bot specific contents types -#define CONTENTS_TELEPORTER 0x40000 -#define CONTENTS_JUMPPAD 0x80000 -#define CONTENTS_CLUSTERPORTAL 0x100000 -#define CONTENTS_DONOTENTER 0x200000 -#define CONTENTS_BOTCLIP 0x400000 -#define CONTENTS_MOVER 0x800000 - -#define CONTENTS_ORIGIN 0x1000000 // removed before bsping an entity - -#define CONTENTS_BODY 0x2000000 // should never be on a brush, only in game -#define CONTENTS_CORPSE 0x4000000 -#define CONTENTS_DETAIL 0x8000000 // brushes not used for the bsp -#define CONTENTS_STRUCTURAL 0x10000000 // brushes used for the bsp -#define CONTENTS_TRANSLUCENT 0x20000000 // don't consume surface fragments inside -#define CONTENTS_TRIGGER 0x40000000 -#define CONTENTS_NODROP 0x80000000 // don't leave bodies or items (death fog, lava) - -#define SURF_NODAMAGE 0x1 // never give falling damage -#define SURF_SLICK 0x2 // effects game physics -#define SURF_SKY 0x4 // lighting from environment map -#define SURF_LADDER 0x8 -#define SURF_NOIMPACT 0x10 // don't make missile explosions -#define SURF_NOMARKS 0x20 // don't leave missile marks -#define SURF_FLESH 0x40 // make flesh sounds and effects -#define SURF_NODRAW 0x80 // don't generate a drawsurface at all -#define SURF_HINT 0x100 // make a primary bsp splitter -#define SURF_SKIP 0x200 // completely ignore, allowing non-closed brushes -#define SURF_NOLIGHTMAP 0x400 // surface doesn't need a lightmap -#define SURF_POINTLIGHT 0x800 // generate lighting info at vertexes -#define SURF_METALSTEPS 0x1000 // clanking footsteps -#define SURF_NOSTEPS 0x2000 // no footstep sounds -#define SURF_NONSOLID 0x4000 // don't collide against curves with this set -#define SURF_LIGHTFILTER 0x8000 // act as a light filter during q3map -light -#define SURF_ALPHASHADOW 0x10000 // do per-pixel light shadow casting in q3map -#define SURF_NODLIGHT 0x20000 // don't dlight even if solid (solid lava, skies) -#define SURF_DUST 0x40000 // leave a dust trail when walking on this surface Modified: trunk/code/jpeg-6/jload.c =================================================================== --- trunk/code/jpeg-6/jload.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/jpeg-6/jload.c 2005-10-26 19:45:21 UTC (rev 181) @@ -1,5 +1,5 @@ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" /* Modified: trunk/code/null/mac_net.c =================================================================== --- trunk/code/null/mac_net.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/null/mac_net.c 2005-10-26 19:45:21 UTC (rev 181) @@ -20,7 +20,7 @@ =========================================================================== */ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" /* Deleted: trunk/code/q3_ui/keycodes.h =================================================================== --- trunk/code/q3_ui/keycodes.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/q3_ui/keycodes.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,163 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -#ifndef __KEYCODES_H__ -#define __KEYCODES_H__ - -// -// these are the key numbers that should be passed to KeyEvent -// - -// normal keys should be passed as lowercased ascii - -typedef enum { - K_TAB = 9, - K_ENTER = 13, - K_ESCAPE = 27, - K_SPACE = 32, - - K_BACKSPACE = 127, - - K_COMMAND = 128, - K_CAPSLOCK, - K_POWER, - K_PAUSE, - - K_UPARROW, - K_DOWNARROW, - K_LEFTARROW, - K_RIGHTARROW, - - K_ALT, - K_CTRL, - K_SHIFT, - K_INS, - K_DEL, - K_PGDN, - K_PGUP, - K_HOME, - K_END, - - K_F1, - K_F2, - K_F3, - K_F4, - K_F5, - K_F6, - K_F7, - K_F8, - K_F9, - K_F10, - K_F11, - K_F12, - K_F13, - K_F14, - K_F15, - - K_KP_HOME, - K_KP_UPARROW, - K_KP_PGUP, - K_KP_LEFTARROW, - K_KP_5, - K_KP_RIGHTARROW, - K_KP_END, - K_KP_DOWNARROW, - K_KP_PGDN, - K_KP_ENTER, - K_KP_INS, - K_KP_DEL, - K_KP_SLASH, - K_KP_MINUS, - K_KP_PLUS, - K_KP_NUMLOCK, - K_KP_STAR, - K_KP_EQUALS, - - K_MOUSE1, - K_MOUSE2, - K_MOUSE3, - K_MOUSE4, - K_MOUSE5, - - K_MWHEELDOWN, - K_MWHEELUP, - - K_JOY1, - K_JOY2, - K_JOY3, - K_JOY4, - K_JOY5, - K_JOY6, - K_JOY7, - K_JOY8, - K_JOY9, - K_JOY10, - K_JOY11, - K_JOY12, - K_JOY13, - K_JOY14, - K_JOY15, - K_JOY16, - K_JOY17, - K_JOY18, - K_JOY19, - K_JOY20, - K_JOY21, - K_JOY22, - K_JOY23, - K_JOY24, - K_JOY25, - K_JOY26, - K_JOY27, - K_JOY28, - K_JOY29, - K_JOY30, - K_JOY31, - K_JOY32, - - K_AUX1, - K_AUX2, - K_AUX3, - K_AUX4, - K_AUX5, - K_AUX6, - K_AUX7, - K_AUX8, - K_AUX9, - K_AUX10, - K_AUX11, - K_AUX12, - K_AUX13, - K_AUX14, - K_AUX15, - K_AUX16, - - K_LAST_KEY // this had better be <256! -} keyNum_t; - - -// The menu code needs to get both key and char events, but -// to avoid duplicating the paths, the char events are just -// distinguished by or'ing in K_CHAR_FLAG (ugly) -#define K_CHAR_FLAG 1024 - -#endif Modified: trunk/code/q3_ui/ui_local.h =================================================================== --- trunk/code/q3_ui/ui_local.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/q3_ui/ui_local.h 2005-10-26 19:45:21 UTC (rev 181) @@ -23,14 +23,14 @@ #ifndef __UI_LOCAL_H__ #define __UI_LOCAL_H__ -#include "../game/q_shared.h" -#include "../cgame/tr_types.h" +#include "../qcommon/q_shared.h" +#include "../renderer/tr_types.h" //NOTE: include the ui_public.h from the new UI #include "../ui/ui_public.h" // bk001205 - yes, do have to use this //redefine to old API version #undef UI_API_VERSION #define UI_API_VERSION 4 -#include "keycodes.h" +#include "../client/keycodes.h" #include "../game/bg_public.h" typedef void (*voidfunc_f)(void); Modified: trunk/code/qcommon/cm_local.h =================================================================== --- trunk/code/qcommon/cm_local.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/cm_local.h 2005-10-26 19:45:21 UTC (rev 181) @@ -20,7 +20,7 @@ =========================================================================== */ -#include "../game/q_shared.h" +#include "q_shared.h" #include "qcommon.h" #include "cm_polylib.h" Modified: trunk/code/qcommon/cmd.c =================================================================== --- trunk/code/qcommon/cmd.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/cmd.c 2005-10-26 19:45:21 UTC (rev 181) @@ -21,7 +21,7 @@ */ // cmd.c -- Quake script command processing module -#include "../game/q_shared.h" +#include "q_shared.h" #include "qcommon.h" #define MAX_CMD_BUFFER 16384 Deleted: trunk/code/qcommon/cmd.c.save =================================================================== --- trunk/code/qcommon/cmd.c.save 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/cmd.c.save 2005-10-26 19:45:21 UTC (rev 181) @@ -1,636 +0,0 @@ -// cmd.c -- Quake script command processing module - -#include "../game/q_shared.h" -#include "qcommon.h" - -#define MAX_CMD_BUFFER 8192 -int cmd_wait; -msg_t cmd_text; -byte cmd_text_buf[MAX_CMD_BUFFER]; -char cmd_defer_text_buf[MAX_CMD_BUFFER]; - - -//============================================================================= - -/* -============ -Cmd_Wait_f - -Causes execution of the remainder of the command buffer to be delayed until -next frame. This allows commands like: -bind g "cmd use rocket ; +attack ; wait ; -attack ; cmd use blaster" -============ -*/ -void Cmd_Wait_f( void ) { - if ( Cmd_Argc() == 2 ) { - cmd_wait = atoi( Cmd_Argv( 1 ) ); - } else { - cmd_wait = 1; - } -} - - -/* -============================================================================= - - COMMAND BUFFER - -============================================================================= -*/ - -/* -============ -Cbuf_Init -============ -*/ -void Cbuf_Init (void) -{ - MSG_Init (&cmd_text, cmd_text_buf, sizeof(cmd_text_buf)); -} - -/* -============ -Cbuf_AddText - -Adds command text at the end of the buffer, does NOT add a final \n -============ -*/ -void Cbuf_AddText( const char *text ) { - int l; - - l = strlen (text); - - if (cmd_text.cursize + l >= cmd_text.maxsize) - { - Com_Printf ("Cbuf_AddText: overflow\n"); - return; - } - MSG_WriteData (&cmd_text, text, strlen (text)); -} - - -/* -============ -Cbuf_InsertText - -Adds command text immediately after the current command -Adds a \n to the text -============ -*/ -void Cbuf_InsertText( const char *text ) { - int len; - int i; - - len = strlen( text ) + 1; - if ( len + cmd_text.cursize > cmd_text.maxsize ) { - Com_Printf( "Cbuf_InsertText overflowed\n" ); - return; - } - - // move the existing command text - for ( i = cmd_text.cursize - 1 ; i >= 0 ; i-- ) { - cmd_text.data[ i + len ] = cmd_text.data[ i ]; - } - - // copy the new text in - memcpy( cmd_text.data, text, len - 1 ); - - // add a \n - cmd_text.data[ len - 1 ] = '\n'; - - cmd_text.cursize += len; -} - - -/* -============ -Cbuf_ExecuteText -============ -*/ -void Cbuf_ExecuteText (int exec_when, const char *text) -{ - switch (exec_when) - { - case EXEC_NOW: - Cmd_ExecuteString (text); - break; - case EXEC_INSERT: - Cbuf_InsertText (text); - break; - case EXEC_APPEND: - Cbuf_AddText (text); - break; - default: - Com_Error (ERR_FATAL, "Cbuf_ExecuteText: bad exec_when"); - } -} - -/* -============ -Cbuf_Execute -============ -*/ -void Cbuf_Execute (void) -{ - int i; - char *text; - char line[MAX_CMD_BUFFER]; - int quotes; - - while (cmd_text.cursize) - { - if ( cmd_wait ) { - // skip out while text still remains in buffer, leaving it - // for next frame - cmd_wait--; - break; - } - - // find a \n or ; line break - text = (char *)cmd_text.data; - - quotes = 0; - for (i=0 ; i< cmd_text.cursize ; i++) - { - if (text[i] == '"') - quotes++; - if ( !(quotes&1) && text[i] == ';') - break; // don't break if inside a quoted string - if (text[i] == '\n' || text[i] == '\r' ) - break; - } - - - memcpy (line, text, i); - line[i] = 0; - -// delete the text from the command buffer and move remaining commands down -// this is necessary because commands (exec) can insert data at the -// beginning of the text buffer - - if (i == cmd_text.cursize) - cmd_text.cursize = 0; - else - { - i++; - cmd_text.cursize -= i; - memmove (text, text+i, cmd_text.cursize); - text[cmd_text.cursize] = 0; - } - -// execute the command line - Cmd_ExecuteString (line); - } -} - - -/* -============================================================================== - - SCRIPT COMMANDS - -============================================================================== -*/ - - -/* -=============== -Cmd_Exec_f -=============== -*/ -void Cmd_Exec_f( void ) { - fileHandle_t f; - int len; - char filename[MAX_QPATH]; - char *buffer; - - if (Cmd_Argc () != 2) { - Com_Printf ("exec : execute a script file\n"); - return; - } - - Q_strncpyz( filename, Cmd_Argv(1), sizeof( filename ) ); - COM_DefaultExtension( filename, sizeof( filename ), ".cfg" ); - len = FS_FOpenFileRead( filename, &f, qfalse ); - if ( len <= 0 ) { - Com_Printf ("Couldn't read %s.\n", filename ); - return; - } - - buffer = Z_Malloc(len+1); - - if (FS_Read(buffer, len, f) == len) { - FS_FCloseFile( f ); - buffer[len] = 0; - Com_Printf ("execing %s\n",Cmd_Argv(1)); - Cbuf_InsertText (buffer); - } - else { - Com_Printf ("couldn't exec %s\n",Cmd_Argv(1)); - } - - Z_Free(buffer); -} - - -/* -=============== -Cmd_Vstr_f - -Inserts the current value of a variable as command text -=============== -*/ -void Cmd_Vstr_f( void ) { - char *v; - - if (Cmd_Argc () != 2) { - Com_Printf ("vstr : execute a variable command\n"); - return; - } - - v = Cvar_VariableString( Cmd_Argv( 1 ) ); - Cbuf_InsertText( va("%s\n", v ) ); -} - - -/* -=============== -Cmd_Echo_f - -Just prints the rest of the line to the console -=============== -*/ -void Cmd_Echo_f (void) -{ - int i; - - for (i=1 ; i= cmd_argc ) { - return ""; - } - return cmd_argv[arg]; -} - -/* -============ -Cmd_ArgvBuffer - -The interpreted versions use this because -they can't have pointers returned to them -============ -*/ -void Cmd_ArgvBuffer( int arg, char *buffer, int bufferLength ) { - Q_strncpyz( buffer, Cmd_Argv( arg ), bufferLength ); -} - - -/* -============ -Cmd_Args - -Returns a single string containing argv(1) to argv(argc()-1) -============ -*/ -char *Cmd_Args( void ) { - static char cmd_args[MAX_STRING_CHARS]; - int i; - - cmd_args[0] = 0; - for ( i = 1 ; i < cmd_argc ; i++ ) { - strcat( cmd_args, cmd_argv[i] ); - if ( i != cmd_argc ) { - strcat( cmd_args, " " ); - } - } - - return cmd_args; -} - - -/* -============ -Cmd_ArgsBuffer - -The interpreted versions use this because -they can't have pointers returned to them -============ -*/ -void Cmd_ArgsBuffer( char *buffer, int bufferLength ) { - Q_strncpyz( buffer, Cmd_Args(), bufferLength ); -} - - -/* -============ -Cmd_TokenizeString - -Parses the given string into command line tokens. -The text is copied to a seperate buffer and 0 characters -are inserted in the apropriate place, The argv array -will point into this temporary buffer. -============ -*/ -void Cmd_TokenizeString( const char *text_in ) { - const char *text; - char *textOut; - - // clear previous args - cmd_argc = 0; - - if ( !text_in ) { - return; - } - - text = text_in; - textOut = cmd_tokenized; - - while ( 1 ) { - if ( cmd_argc == MAX_STRING_TOKENS ) { - return; // this is usually something malicious - } - - while ( 1 ) { - // skip whitespace - while ( *text && *text <= ' ' ) { - text++; - } - if ( !*text ) { - return; // all tokens parsed - } - - // skip // comments - if ( text[0] == '/' && text[1] == '/' ) { - return; // all tokens parsed - } - - // skip /* */ comments - if ( text[0] == '/' && text[1] =='*' ) { - while ( *text && ( text[0] != '*' || text[1] != '/' ) ) { - text++; - } - if ( !*text ) { - return; // all tokens parsed - } - text += 2; - } else { - break; // we are ready to parse a token - } - } - - // handle quoted strings - if ( *text == '"' ) { - cmd_argv[cmd_argc] = textOut; - cmd_argc++; - text++; - while ( *text && *text != '"' ) { - *textOut++ = *text++; - } - *textOut++ = 0; - if ( !*text ) { - return; // all tokens parsed - } - text++; - continue; - } - - // regular token - cmd_argv[cmd_argc] = textOut; - cmd_argc++; - - // skip until whitespace, quote, or command - while ( *text > ' ' ) { - if ( text[0] == '"' ) { - break; - } - - if ( text[0] == '/' && text[1] == '/' ) { - break; - } - - // skip /* */ comments - if ( text[0] == '/' && text[1] =='*' ) { - break; - } - - *textOut++ = *text++; - } - - *textOut++ = 0; - - if ( !*text ) { - return; // all tokens parsed - } - } - -} - - -/* -============ -Cmd_AddCommand -============ -*/ -void Cmd_AddCommand( const char *cmd_name, xcommand_t function ) { - cmd_function_t *cmd; - - // fail if the command already exists - for ( cmd = cmd_functions ; cmd ; cmd=cmd->next ) { - if ( !strcmp( cmd_name, cmd->name ) ) { - // allow completion-only commands to be silently doubled - if ( function != NULL ) { - Com_Printf ("Cmd_AddCommand: %s already defined\n", cmd_name); - } - return; - } - } - - cmd = Z_Malloc (sizeof(cmd_function_t)); - cmd->name = CopyString( cmd_name ); - cmd->function = function; - cmd->next = cmd_functions; - cmd_functions = cmd; -} - -/* -============ -Cmd_RemoveCommand -============ -*/ -void Cmd_RemoveCommand( const char *cmd_name ) { - cmd_function_t *cmd, **back; - - back = &cmd_functions; - while( 1 ) { - cmd = *back; - if ( !cmd ) { - // command wasn't active - return; - } - if ( !strcmp( cmd_name, cmd->name ) ) { - *back = cmd->next; - Z_Free (cmd); - return; - } - back = &cmd->next; - } -} - - -/* -============ -Cmd_CommandCompletion -============ -*/ -void Cmd_CommandCompletion( void(*callback)(const char *s) ) { - cmd_function_t *cmd; - - for (cmd=cmd_functions ; cmd ; cmd=cmd->next) { - callback( cmd->name ); - } -} - - -/* -============ -Cmd_ExecuteString - -A complete command line has been parsed, so try to execute it -============ -*/ -void Cmd_ExecuteString( const char *text ) { - cmd_function_t *cmd, **prev; - - // execute the command line - Cmd_TokenizeString( text ); - if ( !Cmd_Argc() ) { - return; // no tokens - } - - // check registered command functions - for ( prev = &cmd_functions ; *prev ; prev = &cmd->next ) { - cmd = *prev; - if ( !Q_stricmp( cmd_argv[0],cmd->name ) ) { - // rearrange the links so that the command will be - // near the head of the list next time it is used - *prev = cmd->next; - cmd->next = cmd_functions; - cmd_functions = cmd; - - // perform the action - if ( !cmd->function ) { - // let the cgame or game handle it - break; - } else { - cmd->function (); - } - return; - } - } - - // check cvars - if ( Cvar_Command() ) { - return; - } - - // check client game commands - if ( com_cl_running && com_cl_running->integer && CL_GameCommand() ) { - return; - } - - // check server game commands - if ( com_sv_running && com_sv_running->integer && SV_GameCommand() ) { - return; - } - - // check ui commands - if ( com_cl_running && com_cl_running->integer && UI_GameCommand() ) { - return; - } - - // send it as a server command if we are connected - // this will usually result in a chat message - CL_ForwardCommandToServer (); -} - -/* -============ -Cmd_List_f -============ -*/ -void Cmd_List_f (void) -{ - cmd_function_t *cmd; - int i; - char *match; - - if ( Cmd_Argc() > 1 ) { - match = Cmd_Argv( 1 ); - } else { - match = NULL; - } - - i = 0; - for (cmd=cmd_functions ; cmd ; cmd=cmd->next) { - if (match && !Com_Filter(match, cmd->name, qfalse)) continue; - - Com_Printf ("%s\n", cmd->name); - i++; - } - Com_Printf ("%i commands\n", i); -} - -/* -============ -Cmd_Init -============ -*/ -void Cmd_Init (void) { - Cmd_AddCommand ("cmdlist",Cmd_List_f); - Cmd_AddCommand ("exec",Cmd_Exec_f); - Cmd_AddCommand ("vstr",Cmd_Vstr_f); - Cmd_AddCommand ("echo",Cmd_Echo_f); - Cmd_AddCommand ("wait", Cmd_Wait_f); -} - Modified: trunk/code/qcommon/common.c =================================================================== --- trunk/code/qcommon/common.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/common.c 2005-10-26 19:45:21 UTC (rev 181) @@ -21,7 +21,7 @@ */ // common.c -- misc functions used in client and server -#include "../game/q_shared.h" +#include "q_shared.h" #include "qcommon.h" #include #if defined __linux__ || defined MACOS_X || defined __FreeBSD__ Modified: trunk/code/qcommon/cvar.c =================================================================== --- trunk/code/qcommon/cvar.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/cvar.c 2005-10-26 19:45:21 UTC (rev 181) @@ -21,7 +21,7 @@ */ // cvar.c -- dynamic variable tracking -#include "../game/q_shared.h" +#include "q_shared.h" #include "qcommon.h" cvar_t *cvar_vars; Modified: trunk/code/qcommon/files.c =================================================================== --- trunk/code/qcommon/files.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/files.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ *****************************************************************************/ -#include "../game/q_shared.h" +#include "q_shared.h" #include "qcommon.h" #include "unzip.h" Modified: trunk/code/qcommon/huffman.c =================================================================== --- trunk/code/qcommon/huffman.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/huffman.c 2005-10-26 19:45:21 UTC (rev 181) @@ -24,7 +24,7 @@ * Compression book. The ranks are not actually stored, but implicitly defined * by the location of a node within a doubly-linked list */ -#include "../game/q_shared.h" +#include "q_shared.h" #include "qcommon.h" static int bloc = 0; Modified: trunk/code/qcommon/msg.c =================================================================== --- trunk/code/qcommon/msg.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/msg.c 2005-10-26 19:45:21 UTC (rev 181) @@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ -#include "../game/q_shared.h" +#include "q_shared.h" #include "qcommon.h" static huffman_t msgHuff; Modified: trunk/code/qcommon/net_chan.c =================================================================== --- trunk/code/qcommon/net_chan.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/net_chan.c 2005-10-26 19:45:21 UTC (rev 181) @@ -20,7 +20,7 @@ =========================================================================== */ -#include "../game/q_shared.h" +#include "q_shared.h" #include "qcommon.h" /* Copied: trunk/code/qcommon/q_math.c (from rev 175, trunk/code/game/q_math.c) Copied: trunk/code/qcommon/q_shared.c (from rev 175, trunk/code/game/q_shared.c) Copied: trunk/code/qcommon/q_shared.h (from rev 175, trunk/code/game/q_shared.h) Copied: trunk/code/qcommon/surfaceflags.h (from rev 175, trunk/code/game/surfaceflags.h) Modified: trunk/code/qcommon/vm_local.h =================================================================== --- trunk/code/qcommon/vm_local.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/qcommon/vm_local.h 2005-10-26 19:45:21 UTC (rev 181) @@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ -#include "../game/q_shared.h" +#include "q_shared.h" #include "qcommon.h" typedef enum { Modified: trunk/code/renderer/tr_local.h =================================================================== --- trunk/code/renderer/tr_local.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/renderer/tr_local.h 2005-10-26 19:45:21 UTC (rev 181) @@ -24,7 +24,7 @@ #ifndef TR_LOCAL_H #define TR_LOCAL_H -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qfiles.h" #include "../qcommon/qcommon.h" #include "tr_public.h" Modified: trunk/code/renderer/tr_public.h =================================================================== --- trunk/code/renderer/tr_public.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/renderer/tr_public.h 2005-10-26 19:45:21 UTC (rev 181) @@ -22,7 +22,7 @@ #ifndef __TR_PUBLIC_H #define __TR_PUBLIC_H -#include "../cgame/tr_types.h" +#include "tr_types.h" #define REF_API_VERSION 8 Copied: trunk/code/renderer/tr_types.h (from rev 175, trunk/code/cgame/tr_types.h) Modified: trunk/code/server/server.h =================================================================== --- trunk/code/server/server.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/server/server.h 2005-10-26 19:45:21 UTC (rev 181) @@ -21,7 +21,7 @@ */ // server.h -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #include "../game/g_public.h" #include "../game/bg_public.h" Modified: trunk/code/server/sv_bot.c =================================================================== --- trunk/code/server/sv_bot.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/server/sv_bot.c 2005-10-26 19:45:21 UTC (rev 181) @@ -22,7 +22,7 @@ // sv_bot.c #include "server.h" -#include "../game/botlib.h" +#include "../botlib/botlib.h" typedef struct bot_debugpoly_s { Modified: trunk/code/server/sv_game.c =================================================================== --- trunk/code/server/sv_game.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/server/sv_game.c 2005-10-26 19:45:21 UTC (rev 181) @@ -23,7 +23,7 @@ #include "server.h" -#include "../game/botlib.h" +#include "../botlib/botlib.h" botlib_export_t *botlib_export; Modified: trunk/code/server/sv_net_chan.c =================================================================== --- trunk/code/server/sv_net_chan.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/server/sv_net_chan.c 2005-10-26 19:45:21 UTC (rev 181) @@ -20,7 +20,7 @@ =========================================================================== */ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #include "server.h" Deleted: trunk/code/ui/keycodes.h =================================================================== --- trunk/code/ui/keycodes.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/ui/keycodes.h 2005-10-26 19:45:21 UTC (rev 181) @@ -1,163 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -#ifndef __KEYCODES_H__ -#define __KEYCODES_H__ - -// -// these are the key numbers that should be passed to KeyEvent -// - -// normal keys should be passed as lowercased ascii - -typedef enum { - K_TAB = 9, - K_ENTER = 13, - K_ESCAPE = 27, - K_SPACE = 32, - - K_BACKSPACE = 127, - - K_COMMAND = 128, - K_CAPSLOCK, - K_POWER, - K_PAUSE, - - K_UPARROW, - K_DOWNARROW, - K_LEFTARROW, - K_RIGHTARROW, - - K_ALT, - K_CTRL, - K_SHIFT, - K_INS, - K_DEL, - K_PGDN, - K_PGUP, - K_HOME, - K_END, - - K_F1, - K_F2, - K_F3, - K_F4, - K_F5, - K_F6, - K_F7, - K_F8, - K_F9, - K_F10, - K_F11, - K_F12, - K_F13, - K_F14, - K_F15, - - K_KP_HOME, - K_KP_UPARROW, - K_KP_PGUP, - K_KP_LEFTARROW, - K_KP_5, - K_KP_RIGHTARROW, - K_KP_END, - K_KP_DOWNARROW, - K_KP_PGDN, - K_KP_ENTER, - K_KP_INS, - K_KP_DEL, - K_KP_SLASH, - K_KP_MINUS, - K_KP_PLUS, - K_KP_NUMLOCK, - K_KP_STAR, - K_KP_EQUALS, - - K_MOUSE1, - K_MOUSE2, - K_MOUSE3, - K_MOUSE4, - K_MOUSE5, - - K_MWHEELDOWN, - K_MWHEELUP, - - K_JOY1, - K_JOY2, - K_JOY3, - K_JOY4, - K_JOY5, - K_JOY6, - K_JOY7, - K_JOY8, - K_JOY9, - K_JOY10, - K_JOY11, - K_JOY12, - K_JOY13, - K_JOY14, - K_JOY15, - K_JOY16, - K_JOY17, - K_JOY18, - K_JOY19, - K_JOY20, - K_JOY21, - K_JOY22, - K_JOY23, - K_JOY24, - K_JOY25, - K_JOY26, - K_JOY27, - K_JOY28, - K_JOY29, - K_JOY30, - K_JOY31, - K_JOY32, - - K_AUX1, - K_AUX2, - K_AUX3, - K_AUX4, - K_AUX5, - K_AUX6, - K_AUX7, - K_AUX8, - K_AUX9, - K_AUX10, - K_AUX11, - K_AUX12, - K_AUX13, - K_AUX14, - K_AUX15, - K_AUX16, - - K_LAST_KEY // this had better be <256! -} keyNum_t; - - -// The menu code needs to get both key and char events, but -// to avoid duplicating the paths, the char events are just -// distinguished by or'ing in K_CHAR_FLAG (ugly) -#define K_CHAR_FLAG 1024 - -#endif Modified: trunk/code/ui/ui_local.h =================================================================== --- trunk/code/ui/ui_local.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/ui/ui_local.h 2005-10-26 19:45:21 UTC (rev 181) @@ -23,10 +23,10 @@ #ifndef __UI_LOCAL_H__ #define __UI_LOCAL_H__ -#include "../game/q_shared.h" -#include "../cgame/tr_types.h" +#include "../qcommon/q_shared.h" +#include "../renderer/tr_types.h" #include "ui_public.h" -#include "keycodes.h" +#include "../client/keycodes.h" #include "../game/bg_public.h" #include "ui_shared.h" Modified: trunk/code/ui/ui_shared.h =================================================================== --- trunk/code/ui/ui_shared.h 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/ui/ui_shared.h 2005-10-26 19:45:21 UTC (rev 181) @@ -23,9 +23,9 @@ #define __UI_SHARED_H -#include "../game/q_shared.h" -#include "../cgame/tr_types.h" -#include "keycodes.h" +#include "../qcommon/q_shared.h" +#include "../renderer/tr_types.h" +#include "../client/keycodes.h" #include "../../ui/menudef.h" Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/unix/Makefile 2005-10-26 19:45:21 UTC (rev 181) @@ -75,7 +75,7 @@ SPLNDIR=$(MOUNT_DIR)/splines # extract version info -VERSION=$(shell grep Q3_VERSION ../game/q_shared.h | \ +VERSION=$(shell grep Q3_VERSION ../qcommon/q_shared.h | \ sed -e 's/.*Q3\ \(.*\)"/\1/') ############################################################################# @@ -444,11 +444,13 @@ @if [ ! -d $(B)/baseq3/cgame ];then mkdir $(B)/baseq3/cgame;fi @if [ ! -d $(B)/baseq3/game ];then mkdir $(B)/baseq3/game;fi @if [ ! -d $(B)/baseq3/ui ];then mkdir $(B)/baseq3/ui;fi + @if [ ! -d $(B)/baseq3/qcommon ];then mkdir $(B)/baseq3/qcommon;fi @if [ ! -d $(B)/baseq3/vm ];then mkdir $(B)/baseq3/vm;fi @if [ ! -d $(B)/missionpack ];then mkdir $(B)/missionpack;fi @if [ ! -d $(B)/missionpack/cgame ];then mkdir $(B)/missionpack/cgame;fi @if [ ! -d $(B)/missionpack/game ];then mkdir $(B)/missionpack/game;fi @if [ ! -d $(B)/missionpack/ui ];then mkdir $(B)/missionpack/ui;fi + @if [ ! -d $(B)/missionpack/qcommon ];then mkdir $(B)/missionpack/qcommon;fi @if [ ! -d $(B)/missionpack/vm ];then mkdir $(B)/missionpack/vm;fi @if [ ! -d $(B)/q3static ];then mkdir $(B)/q3static;fi @@ -465,7 +467,7 @@ $(Q3ASM): $(MAKE) -C ../tools/asm install -DO_Q3LCC=$(Q3LCC) -o $@ -S -DQ3_VM -I$(CGDIR) -I$(GDIR) -I$(UIDIR) $< +DO_Q3LCC=$(Q3LCC) -o $@ -S -DQ3_VM -I$(CGDIR) -I$(GDIR) -I$(UIDIR) -I$(CMDIR) $< ############################################################################# # CLIENT/SERVER @@ -769,8 +771,8 @@ $(B)/client/msg.o : $(CMDIR)/msg.c; $(DO_CC) $(B)/client/net_chan.o : $(CMDIR)/net_chan.c; $(DO_CC) $(B)/client/huffman.o : $(CMDIR)/huffman.c; $(DO_CC) -$(B)/client/q_shared.o : $(GDIR)/q_shared.c; $(DO_CC) -$(B)/client/q_math.o : $(GDIR)/q_math.c; $(DO_CC) +$(B)/client/q_shared.o : $(CMDIR)/q_shared.c; $(DO_CC) +$(B)/client/q_math.o : $(CMDIR)/q_math.c; $(DO_CC) $(B)/client/be_aas_bspq3.o : $(BLIBDIR)/be_aas_bspq3.c; $(DO_BOT_CC) $(B)/client/be_aas_cluster.o : $(BLIBDIR)/be_aas_cluster.c; $(DO_BOT_CC) @@ -1018,8 +1020,8 @@ $(B)/ded/msg.o : $(CMDIR)/msg.c; $(DO_DED_CC) $(B)/ded/net_chan.o : $(CMDIR)/net_chan.c; $(DO_DED_CC) $(B)/ded/huffman.o : $(CMDIR)/huffman.c; $(DO_DED_CC) -$(B)/ded/q_shared.o : $(GDIR)/q_shared.c; $(DO_DED_CC) -$(B)/ded/q_math.o : $(GDIR)/q_math.c; $(DO_DED_CC) +$(B)/ded/q_shared.o : $(CMDIR)/q_shared.c; $(DO_DED_CC) +$(B)/ded/q_math.o : $(CMDIR)/q_math.c; $(DO_DED_CC) $(B)/ded/be_aas_bspq3.o : $(BLIBDIR)/be_aas_bspq3.c; $(DO_BOT_CC) $(B)/ded/be_aas_cluster.o : $(BLIBDIR)/be_aas_cluster.c; $(DO_BOT_CC) @@ -1099,8 +1101,9 @@ $(B)/baseq3/cgame/cg_snapshot.o \ $(B)/baseq3/cgame/cg_view.o \ $(B)/baseq3/cgame/cg_weapons.o \ - $(B)/baseq3/game/q_math.o \ - $(B)/baseq3/game/q_shared.o + \ + $(B)/baseq3/qcommon/q_math.o \ + $(B)/baseq3/qcommon/q_shared.o Q3CGOBJ = $(Q3CGOBJ_) $(B)/baseq3/cgame/cg_syscalls.o Q3CGVMOBJ = $(Q3CGOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm @@ -1138,9 +1141,10 @@ $(B)/missionpack/cgame/cg_snapshot.o \ $(B)/missionpack/cgame/cg_view.o \ $(B)/missionpack/cgame/cg_weapons.o \ - $(B)/missionpack/game/q_math.o \ - $(B)/missionpack/game/q_shared.o \ - $(B)/missionpack/ui/ui_shared.o + $(B)/missionpack/ui/ui_shared.o \ + \ + $(B)/missionpack/qcommon/q_math.o \ + $(B)/missionpack/qcommon/q_shared.o MPCGOBJ = $(MPCGOBJ_) $(B)/missionpack/cgame/cg_syscalls.o MPCGVMOBJ = $(MPCGOBJ_:%.o=%.asm) $(B)/missionpack/game/bg_lib.asm @@ -1189,8 +1193,8 @@ $(B)/baseq3/game/g_utils.o \ $(B)/baseq3/game/g_weapon.o \ \ - $(B)/baseq3/game/q_math.o \ - $(B)/baseq3/game/q_shared.o + $(B)/baseq3/qcommon/q_math.o \ + $(B)/baseq3/qcommon/q_shared.o Q3GOBJ = $(Q3GOBJ_) $(B)/baseq3/game/g_syscalls.o Q3GVMOBJ = $(Q3GOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm @@ -1237,8 +1241,8 @@ $(B)/missionpack/game/g_utils.o \ $(B)/missionpack/game/g_weapon.o \ \ - $(B)/missionpack/game/q_math.o \ - $(B)/missionpack/game/q_shared.o + $(B)/missionpack/qcommon/q_math.o \ + $(B)/missionpack/qcommon/q_shared.o MPGOBJ = $(MPGOBJ_) $(B)/missionpack/game/g_syscalls.o MPGVMOBJ = $(MPGOBJ_:%.o=%.asm) $(B)/missionpack/game/bg_lib.asm @@ -1297,8 +1301,8 @@ $(B)/baseq3/ui/ui_teamorders.o \ $(B)/baseq3/ui/ui_video.o \ \ - $(B)/baseq3/game/q_math.o \ - $(B)/baseq3/game/q_shared.o + $(B)/baseq3/qcommon/q_math.o \ + $(B)/baseq3/qcommon/q_shared.o Q3UIOBJ = $(Q3UIOBJ_) $(B)/missionpack/ui/ui_syscalls.o Q3UIVMOBJ = $(Q3UIOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm @@ -1322,8 +1326,8 @@ \ $(B)/missionpack/game/bg_misc.o \ \ - $(B)/missionpack/game/q_math.o \ - $(B)/missionpack/game/q_shared.o + $(B)/missionpack/qcommon/q_math.o \ + $(B)/missionpack/qcommon/q_shared.o MPUIOBJ = $(MPUIOBJ_) $(B)/missionpack/ui/ui_syscalls.o MPUIVMOBJ = $(MPUIOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm @@ -1379,7 +1383,19 @@ $(DO_Q3LCC) -DMISSIONPACK +$(B)/baseq3/qcommon/%.o: $(CMDIR)/%.c + $(DO_SHLIB_CC) +$(B)/baseq3/qcommon/%.asm: $(CMDIR)/%.c $(Q3LCC) + $(DO_Q3LCC) + +$(B)/missionpack/qcommon/%.o: $(CMDIR)/%.c + $(DO_SHLIB_CC) -DMISSIONPACK + +$(B)/missionpack/qcommon/%.asm: $(CMDIR)/%.c $(Q3LCC) + $(DO_Q3LCC) -DMISSIONPACK + + ############################################################################# # MISC ############################################################################# Modified: trunk/code/unix/linux_signals.c =================================================================== --- trunk/code/unix/linux_signals.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/unix/linux_signals.c 2005-10-26 19:45:21 UTC (rev 181) @@ -21,7 +21,7 @@ */ #include -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #ifndef DEDICATED #include "../renderer/tr_local.h" Modified: trunk/code/unix/linux_snd.c =================================================================== --- trunk/code/unix/linux_snd.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/unix/linux_snd.c 2005-10-26 19:45:21 UTC (rev 181) @@ -38,7 +38,7 @@ #endif #include -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../client/snd_local.h" int audio_fd; Modified: trunk/code/unix/sdl_snd.c =================================================================== --- trunk/code/unix/sdl_snd.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/unix/sdl_snd.c 2005-10-26 19:45:21 UTC (rev 181) @@ -53,7 +53,7 @@ #include "SDL.h" -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../client/snd_local.h" int snd_inited=0; Modified: trunk/code/unix/unix_main.c =================================================================== --- trunk/code/unix/unix_main.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/unix/unix_main.c 2005-10-26 19:45:21 UTC (rev 181) @@ -50,7 +50,7 @@ // FIXME TTimo should we gard this? most *nix system should comply? #include -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #include "../renderer/tr_public.h" Modified: trunk/code/unix/unix_net.c =================================================================== --- trunk/code/unix/unix_net.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/unix/unix_net.c 2005-10-26 19:45:21 UTC (rev 181) @@ -21,7 +21,7 @@ */ // unix_net.c -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #include Modified: trunk/code/unix/unix_shared.c =================================================================== --- trunk/code/unix/unix_shared.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/unix/unix_shared.c 2005-10-26 19:45:21 UTC (rev 181) @@ -29,7 +29,7 @@ #include #include -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" //============================================================================= Modified: trunk/code/win32/win_net.c =================================================================== --- trunk/code/win32/win_net.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/win32/win_net.c 2005-10-26 19:45:21 UTC (rev 181) @@ -21,7 +21,7 @@ */ // net_wins.c -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #include "win_local.h" Modified: trunk/code/win32/win_shared.c =================================================================== --- trunk/code/win32/win_shared.c 2005-10-26 19:32:15 UTC (rev 180) +++ trunk/code/win32/win_shared.c 2005-10-26 19:45:21 UTC (rev 181) @@ -20,7 +20,7 @@ =========================================================================== */ -#include "../game/q_shared.h" +#include "../qcommon/q_shared.h" #include "../qcommon/qcommon.h" #include "win_local.h" #include From DONOTREPLY at icculus.org Wed Oct 26 16:52:54 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 26 Oct 2005 16:52:54 -0400 Subject: r182 - trunk/code/macosx/Quake3.pbproj Message-ID: <20051026205254.25602.qmail@icculus.org> Author: tma Date: 2005-10-26 16:52:53 -0400 (Wed, 26 Oct 2005) New Revision: 182 Modified: trunk/code/macosx/Quake3.pbproj/project.pbxproj Log: * Fixed the OS X build as broken by revision 181 Modified: trunk/code/macosx/Quake3.pbproj/project.pbxproj =================================================================== --- trunk/code/macosx/Quake3.pbproj/project.pbxproj 2005-10-26 19:45:21 UTC (rev 181) +++ trunk/code/macosx/Quake3.pbproj/project.pbxproj 2005-10-26 20:52:53 UTC (rev 182) @@ -81,7 +81,6 @@ 00F5ED39FEBA95B7C697A12F = { buildActionMask = 2147483647; files = ( - 13380E0F00ADFAACC697A10E, 13380E1300ADFAD5C697A10E, 13380E1500ADFB0CC697A10E, 13380E1700ADFBFDC697A10E, @@ -109,8 +108,6 @@ 13380E0C00ADFA72C697A10E, 13380E0D00ADFA94C697A10E, 13380E0E00ADFA9EC697A10E, - 13380E1000ADFAACC697A10E, - 13380E1100ADFAACC697A10E, 13380E1200ADFACAC697A10E, 13380E1400ADFAD5C697A10E, 13380E1600ADFB0CC697A10E, @@ -218,7 +215,6 @@ 00F5ED91FEBA9615C697A12F = { buildActionMask = 2147483647; files = ( - 13380E3600ADFDCFC697A10E, 13380E5100AE0235C697A10E, ); isa = PBXHeadersBuildPhase; @@ -236,8 +232,6 @@ files = ( 13380E3400ADFDA1C697A10E, 13380E3500ADFDA1C697A10E, - 13380E3700ADFDCFC697A10E, - 13380E3800ADFDCFC697A10E, 13380E3900ADFDE1C697A10E, 13380E3B00ADFE0CC697A10E, 13380E3C00ADFE1EC697A10E, @@ -305,6 +299,15 @@ }; 012AD90700868211C697A10E = { children = ( + 92603734091019830018EAE6, + 92603735091019830018EAE6, + 92603736091019830018EAE6, + 92603737091019830018EAE6, + 92603738091019830018EAE6, + 92603739091019830018EAE6, + 9260373A091019830018EAE6, + 9260373B091019830018EAE6, + 9260373C091019830018EAE6, 012AD90800868211C697A10E, 012AD90900868211C697A10E, 012AD90A00868211C697A10E, @@ -1531,7 +1534,6 @@ 012AD9A100868211C697A10E, 012AD9A200868211C697A10E, 012AD9A300868211C697A10E, - 012AD9A400868211C697A10E, ); isa = PBXGroup; path = cgame; @@ -1714,16 +1716,9 @@ refType = 4; sourceTree = ""; }; - 012AD9A400868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = tr_types.h; - refType = 4; - sourceTree = ""; - }; 012AD9A500868211C697A10E = { children = ( + 9260378009101A6C0018EAE6, 012AD9A600868211C697A10E, 012AD9A700868211C697A10E, 012AD9A800868211C697A10E, @@ -1917,14 +1912,6 @@ 012ADA3000868211C697A10E, 012ADA3100868211C697A10E, 012ADA3200868211C697A10E, - 012ADA3300868211C697A10E, - 012ADA3400868211C697A10E, - 012ADA3500868211C697A10E, - 012ADA3600868211C697A10E, - 012ADA3700868211C697A10E, - 012ADA3800868211C697A10E, - 012ADA3900868211C697A10E, - 012ADA3A00868211C697A10E, 012ADA3B00868211C697A10E, 012ADA3C00868211C697A10E, 012ADA3D00868211C697A10E, @@ -1932,7 +1919,6 @@ 012ADA3F00868211C697A10E, 012ADA4000868211C697A10E, 012ADA4100868211C697A10E, - 012ADA4200868211C697A10E, 012ADA4300868211C697A10E, 012ADA4400868211C697A10E, 012ADA4500868211C697A10E, @@ -1962,10 +1948,6 @@ 012ADA5D00868211C697A10E, 012ADA5E00868211C697A10E, 012ADA5F00868211C697A10E, - 012ADA6000868211C697A10E, - 012ADA6100868211C697A10E, - 012ADA6200868211C697A10E, - 012ADA6300868211C697A10E, 012ADA6400868211C697A10E, ); isa = PBXGroup; @@ -2085,70 +2067,6 @@ refType = 4; sourceTree = ""; }; - 012ADA3300868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = be_aas.h; - refType = 4; - sourceTree = ""; - }; - 012ADA3400868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = be_ai_char.h; - refType = 4; - sourceTree = ""; - }; - 012ADA3500868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = be_ai_chat.h; - refType = 4; - sourceTree = ""; - }; - 012ADA3600868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = be_ai_gen.h; - refType = 4; - sourceTree = ""; - }; - 012ADA3700868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = be_ai_goal.h; - refType = 4; - sourceTree = ""; - }; - 012ADA3800868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = be_ai_move.h; - refType = 4; - sourceTree = ""; - }; - 012ADA3900868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = be_ai_weap.h; - refType = 4; - sourceTree = ""; - }; - 012ADA3A00868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = be_ea.h; - refType = 4; - sourceTree = ""; - }; 012ADA3B00868211C697A10E = { fileEncoding = 30; isa = PBXFileReference; @@ -2205,14 +2123,6 @@ refType = 4; sourceTree = ""; }; - 012ADA4200868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = botlib.h; - refType = 4; - sourceTree = ""; - }; 012ADA4300868211C697A10E = { fileEncoding = 30; isa = PBXFileReference; @@ -2445,38 +2355,6 @@ refType = 4; sourceTree = ""; }; - 012ADA6000868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = q_math.c; - refType = 4; - sourceTree = ""; - }; - 012ADA6100868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - path = q_shared.c; - refType = 4; - sourceTree = ""; - }; - 012ADA6200868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = q_shared.h; - refType = 4; - sourceTree = ""; - }; - 012ADA6300868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = surfaceflags.h; - refType = 4; - sourceTree = ""; - }; 012ADA6400868211C697A10E = { fileEncoding = 30; isa = PBXFileReference; @@ -3124,7 +3002,6 @@ }; 012ADABB00868211C697A10E = { children = ( - 012ADABC00868211C697A10E, 012ADABD00868211C697A10E, 012ADABE00868211C697A10E, 012ADABF00868211C697A10E, @@ -3178,14 +3055,6 @@ refType = 4; sourceTree = ""; }; - 012ADABC00868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = keycodes.h; - refType = 4; - sourceTree = ""; - }; 012ADABD00868211C697A10E = { fileEncoding = 30; isa = PBXFileReference; @@ -3564,6 +3433,10 @@ }; 012ADAEC00868211C697A10E = { children = ( + 92603763091019D20018EAE6, + 92603764091019D20018EAE6, + 92603765091019D20018EAE6, + 92603766091019D20018EAE6, 012ADAED00868211C697A10E, 012ADAEE00868211C697A10E, 012ADAEF00868211C697A10E, @@ -3799,7 +3672,7 @@ }; 012ADB0600868211C697A10E = { children = ( - 012ADB0700868211C697A10E, + 9260377909101A3B0018EAE6, 012ADB0800868211C697A10E, 012ADB0900868211C697A10E, 012ADB0A00868211C697A10E, @@ -3833,14 +3706,6 @@ refType = 4; sourceTree = ""; }; - 012ADB0700868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = amd3d.h; - refType = 4; - sourceTree = ""; - }; 012ADB0800868211C697A10E = { fileEncoding = 30; isa = PBXFileReference; @@ -4311,7 +4176,6 @@ }; 012ADB4000868211C697A10E = { children = ( - 012ADB4100868211C697A10E, 012ADB4200868211C697A10E, 012ADB4300868211C697A10E, 012ADB4400868211C697A10E, @@ -4327,14 +4191,6 @@ refType = 4; sourceTree = ""; }; - 012ADB4100868211C697A10E = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - path = keycodes.h; - refType = 4; - sourceTree = ""; - }; 012ADB4200868211C697A10E = { fileEncoding = 30; isa = PBXFileReference; @@ -4815,8 +4671,6 @@ 016EAE0500B4BDD1C697A10E, 016EAE0600B4BDD1C697A10E, 016EAE0700B4BDD1C697A10E, - 016EAE0800B4BDD1C697A10E, - 016EAE1400B4BE42C697A10E, ); isa = PBXHeadersBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -4839,12 +4693,6 @@ settings = { }; }; - 016EAE0800B4BDD1C697A10E = { - fileRef = 012ADB4100868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 016EAE0900B4BDD1C697A10E = { buildActionMask = 2147483647; files = ( @@ -4861,8 +4709,6 @@ 016EAE0F00B4BDD1C697A10E, 016EAE1000B4BDD1C697A10E, 016EAE1100B4BDD1C697A10E, - 016EAE1500B4BE42C697A10E, - 016EAE1600B4BE42C697A10E, 016EAE1700B4BE53C697A10E, 4F23A81908F4FA8F00CB90D3, ); @@ -4919,24 +4765,6 @@ isa = PBXRezBuildPhase; runOnlyForDeploymentPostprocessing = 0; }; - 016EAE1400B4BE42C697A10E = { - fileRef = 012ADA6200868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 016EAE1500B4BE42C697A10E = { - fileRef = 012ADA6000868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 016EAE1600B4BE42C697A10E = { - fileRef = 012ADA6100868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 016EAE1700B4BE53C697A10E = { fileRef = 012ADA3E00868211C697A10E; isa = PBXBuildFile; @@ -5015,7 +4843,6 @@ 0170307C00B48B5CC697A10E, 0170307D00B48B5CC697A10E, 0170307E00B48B5CC697A10E, - 0170307F00B48B5CC697A10E, 0170308400B48B5CC697A10E, 0170308500B48B5CC697A10E, 0170308600B48B5CC697A10E, @@ -5047,6 +4874,19 @@ 017030A100B48B5CC697A10E, 017030A200B48B5CC697A10E, 017030A300B48B5CC697A10E, + 9260374F091019830018EAE6, + 92603750091019830018EAE6, + 92603751091019830018EAE6, + 92603752091019830018EAE6, + 92603753091019830018EAE6, + 92603754091019830018EAE6, + 92603755091019830018EAE6, + 92603756091019830018EAE6, + 92603757091019830018EAE6, + 92603771091019D30018EAE6, + 92603772091019D30018EAE6, + 9260377C09101A3B0018EAE6, + 9260378309101A6C0018EAE6, ); isa = PBXHeadersBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -5140,8 +4980,6 @@ 017030DE00B48B5CC697A10E, 017030DF00B48B5CC697A10E, 017030E000B48B5CC697A10E, - 017030E100B48B5CC697A10E, - 017030E200B48B5CC697A10E, 017030F200B48B5CC697A10E, 017030F300B48B5CC697A10E, 017030F400B48B5CC697A10E, @@ -5180,6 +5018,8 @@ F54951F40354EAA2011BCB42, 4FB23865047AB9F60098ACF3, 4F23A81308F4FA8F00CB90D3, + 9260376F091019D30018EAE6, + 92603770091019D30018EAE6, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -5462,12 +5302,6 @@ settings = { }; }; - 0170307F00B48B5CC697A10E = { - fileRef = 012ADA6200868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 0170308400B48B5CC697A10E = { fileRef = 012AD90800868211C697A10E; isa = PBXBuildFile; @@ -6020,18 +5854,6 @@ settings = { }; }; - 017030E100B48B5CC697A10E = { - fileRef = 012ADA6000868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 017030E200B48B5CC697A10E = { - fileRef = 012ADA6100868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 017030F200B48B5CC697A10E = { fileRef = 012AD90A00868211C697A10E; isa = PBXBuildFile; @@ -6558,24 +6380,6 @@ settings = { }; }; - 043627D30086965EC697A10E = { - fileRef = 012ADA6200868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 043627D40086965EC697A10E = { - fileRef = 012ADA6100868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 043627D50086965EC697A10E = { - fileRef = 012ADA6000868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 043627D600869679C697A10E = { fileRef = 012ADB1200868211C697A10E; isa = PBXBuildFile; @@ -7811,7 +7615,6 @@ 043627BD00868916C697A10E, 043627BE00868916C697A10E, 043627BF00868916C697A10E, - 043627D30086965EC697A10E, 043627D700869713C697A10E, 043627DE00869726C697A10E, 043627E100869827C697A10E, @@ -7862,6 +7665,19 @@ 015ECC0E00894EC0C697A10E, 011F78F300B25B66C697A10E, F5ED1436037096A001F6289A, + 9260373D091019830018EAE6, + 9260373E091019830018EAE6, + 9260373F091019830018EAE6, + 92603740091019830018EAE6, + 92603741091019830018EAE6, + 92603742091019830018EAE6, + 92603743091019830018EAE6, + 92603744091019830018EAE6, + 92603745091019830018EAE6, + 92603769091019D30018EAE6, + 9260376A091019D30018EAE6, + 9260377A09101A3B0018EAE6, + 9260378109101A6C0018EAE6, ); isa = PBXHeadersBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -7886,8 +7702,6 @@ 043627CB00868916C697A10E, 043627CC00868916C697A10E, 043627D20086963EC697A10E, - 043627D40086965EC697A10E, - 043627D50086965EC697A10E, 043627D600869679C697A10E, 043627D800869713C697A10E, 043627D900869713C697A10E, @@ -8020,6 +7834,8 @@ 4FB23867047ABF780098ACF3, 4FEFFEDA047B008000719638, 4F23A81D08F4FA8F00CB90D3, + 92603767091019D30018EAE6, + 92603768091019D30018EAE6, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -8208,24 +8024,6 @@ settings = { }; }; - 13380E0F00ADFAACC697A10E = { - fileRef = 012ADA6200868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 13380E1000ADFAACC697A10E = { - fileRef = 012ADA6000868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 13380E1100ADFAACC697A10E = { - fileRef = 012ADA6100868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 13380E1200ADFACAC697A10E = { fileRef = 012ADA4500868211C697A10E; isa = PBXBuildFile; @@ -8442,24 +8240,6 @@ settings = { }; }; - 13380E3600ADFDCFC697A10E = { - fileRef = 012ADA6200868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 13380E3700ADFDCFC697A10E = { - fileRef = 012ADA6100868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 13380E3800ADFDCFC697A10E = { - fileRef = 012ADA6000868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 13380E3900ADFDE1C697A10E = { fileRef = 012ADA3E00868211C697A10E; isa = PBXBuildFile; @@ -8852,7 +8632,6 @@ 4FF0904B04896C0E00030DA8, 4FF0904C04896C0E00030DA8, 4FF0904D04896C0E00030DA8, - 4FF0904E04896C0E00030DA8, 4FF0904F04896C0E00030DA8, 4FF0905004896C0E00030DA8, 4FF0905104896C0E00030DA8, @@ -8903,6 +8682,19 @@ 4FF0907E04896C0E00030DA8, 4FF0907F04896C0E00030DA8, 4FF0908604896C0E00030DA8, + 92603746091019830018EAE6, + 92603747091019830018EAE6, + 92603748091019830018EAE6, + 92603749091019830018EAE6, + 9260374A091019830018EAE6, + 9260374B091019830018EAE6, + 9260374C091019830018EAE6, + 9260374D091019830018EAE6, + 9260374E091019830018EAE6, + 9260376D091019D30018EAE6, + 9260376E091019D30018EAE6, + 9260377B09101A3B0018EAE6, + 9260378209101A6C0018EAE6, ); isa = PBXHeadersBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -8931,12 +8723,6 @@ settings = { }; }; - 4FF0904E04896C0E00030DA8 = { - fileRef = 012ADA6200868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 4FF0904F04896C0E00030DA8 = { fileRef = 012ADB0300868211C697A10E; isa = PBXBuildFile; @@ -9275,8 +9061,6 @@ 4FF0909004896C0E00030DA8, 4FF0909104896C0E00030DA8, 4FF0909204896C0E00030DA8, - 4FF0909304896C0E00030DA8, - 4FF0909404896C0E00030DA8, 4FF0909504896C0E00030DA8, 4FF0909604896C0E00030DA8, 4FF0909704896C0E00030DA8, @@ -9409,6 +9193,8 @@ 4FF0911B04896C0E00030DA8, 4FF0911C04896C0E00030DA8, 4F23A81508F4FA8F00CB90D3, + 9260376B091019D30018EAE6, + 9260376C091019D30018EAE6, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -9455,18 +9241,6 @@ settings = { }; }; - 4FF0909304896C0E00030DA8 = { - fileRef = 012ADA6100868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 4FF0909404896C0E00030DA8 = { - fileRef = 012ADA6000868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 4FF0909504896C0E00030DA8 = { fileRef = 012ADB1200868211C697A10E; isa = PBXBuildFile; @@ -10367,7 +10141,6 @@ 4FF0913804896C1600030DA8, 4FF0913904896C1600030DA8, 4FF0913A04896C1600030DA8, - 4FF0913B04896C1600030DA8, 4FF0913C04896C1600030DA8, 4FF0913D04896C1600030DA8, 4FF0913E04896C1600030DA8, @@ -10399,6 +10172,19 @@ 4FF0915904896C1600030DA8, 4FF0915A04896C1600030DA8, 4FF0915B04896C1600030DA8, + 92603758091019830018EAE6, + 92603759091019830018EAE6, + 9260375A091019830018EAE6, + 9260375B091019830018EAE6, + 9260375C091019830018EAE6, + 9260375D091019830018EAE6, + 9260375E091019830018EAE6, + 9260375F091019830018EAE6, + 92603760091019830018EAE6, + 92603775091019D30018EAE6, + 92603776091019D30018EAE6, + 9260377D09101A3B0018EAE6, + 9260378409101A6C0018EAE6, ); isa = PBXHeadersBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -10511,12 +10297,6 @@ settings = { }; }; - 4FF0913B04896C1600030DA8 = { - fileRef = 012ADA6200868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 4FF0913C04896C1600030DA8 = { fileRef = 012AD90800868211C697A10E; isa = PBXBuildFile; @@ -10792,8 +10572,6 @@ 4FF091B104896C1600030DA8, 4FF091B204896C1600030DA8, 4FF091B304896C1600030DA8, - 4FF091B404896C1600030DA8, - 4FF091B504896C1600030DA8, 4FF091B604896C1600030DA8, 4FF091B704896C1600030DA8, 4FF091B804896C1600030DA8, @@ -10832,6 +10610,8 @@ 4FF091DD04896C1600030DA8, 4FF091DF04896C1600030DA8, 4F23A81F08F4FA8F00CB90D3, + 92603773091019D30018EAE6, + 92603774091019D30018EAE6, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -11352,18 +11132,6 @@ settings = { }; }; - 4FF091B404896C1600030DA8 = { - fileRef = 012ADA6000868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; - 4FF091B504896C1600030DA8 = { - fileRef = 012ADA6100868211C697A10E; - isa = PBXBuildFile; - settings = { - }; - }; 4FF091B604896C1600030DA8 = { fileRef = 012AD90A00868211C697A10E; isa = PBXBuildFile; @@ -11659,6 +11427,496 @@ //4F2 //4F3 //4F4 +//920 +//921 +//922 +//923 +//924 + 92603734091019830018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = be_aas.h; + refType = 4; + sourceTree = ""; + }; + 92603735091019830018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = be_ai_char.h; + refType = 4; + sourceTree = ""; + }; + 92603736091019830018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = be_ai_chat.h; + refType = 4; + sourceTree = ""; + }; + 92603737091019830018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = be_ai_gen.h; + refType = 4; + sourceTree = ""; + }; + 92603738091019830018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = be_ai_goal.h; + refType = 4; + sourceTree = ""; + }; + 92603739091019830018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = be_ai_move.h; + refType = 4; + sourceTree = ""; + }; + 9260373A091019830018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = be_ai_weap.h; + refType = 4; + sourceTree = ""; + }; + 9260373B091019830018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = be_ea.h; + refType = 4; + sourceTree = ""; + }; + 9260373C091019830018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = botlib.h; + refType = 4; + sourceTree = ""; + }; + 9260373D091019830018EAE6 = { + fileRef = 92603734091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260373E091019830018EAE6 = { + fileRef = 92603735091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260373F091019830018EAE6 = { + fileRef = 92603736091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603740091019830018EAE6 = { + fileRef = 92603737091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603741091019830018EAE6 = { + fileRef = 92603738091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603742091019830018EAE6 = { + fileRef = 92603739091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603743091019830018EAE6 = { + fileRef = 9260373A091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603744091019830018EAE6 = { + fileRef = 9260373B091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603745091019830018EAE6 = { + fileRef = 9260373C091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603746091019830018EAE6 = { + fileRef = 92603734091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603747091019830018EAE6 = { + fileRef = 92603735091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603748091019830018EAE6 = { + fileRef = 92603736091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603749091019830018EAE6 = { + fileRef = 92603737091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260374A091019830018EAE6 = { + fileRef = 92603738091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260374B091019830018EAE6 = { + fileRef = 92603739091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260374C091019830018EAE6 = { + fileRef = 9260373A091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260374D091019830018EAE6 = { + fileRef = 9260373B091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260374E091019830018EAE6 = { + fileRef = 9260373C091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260374F091019830018EAE6 = { + fileRef = 92603734091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603750091019830018EAE6 = { + fileRef = 92603735091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603751091019830018EAE6 = { + fileRef = 92603736091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603752091019830018EAE6 = { + fileRef = 92603737091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603753091019830018EAE6 = { + fileRef = 92603738091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603754091019830018EAE6 = { + fileRef = 92603739091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603755091019830018EAE6 = { + fileRef = 9260373A091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603756091019830018EAE6 = { + fileRef = 9260373B091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603757091019830018EAE6 = { + fileRef = 9260373C091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603758091019830018EAE6 = { + fileRef = 92603734091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603759091019830018EAE6 = { + fileRef = 92603735091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260375A091019830018EAE6 = { + fileRef = 92603736091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260375B091019830018EAE6 = { + fileRef = 92603737091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260375C091019830018EAE6 = { + fileRef = 92603738091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260375D091019830018EAE6 = { + fileRef = 92603739091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260375E091019830018EAE6 = { + fileRef = 9260373A091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260375F091019830018EAE6 = { + fileRef = 9260373B091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603760091019830018EAE6 = { + fileRef = 9260373C091019830018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603763091019D20018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + path = q_math.c; + refType = 4; + sourceTree = ""; + }; + 92603764091019D20018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + path = q_shared.c; + refType = 4; + sourceTree = ""; + }; + 92603765091019D20018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = q_shared.h; + refType = 4; + sourceTree = ""; + }; + 92603766091019D20018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = surfaceflags.h; + refType = 4; + sourceTree = ""; + }; + 92603767091019D30018EAE6 = { + fileRef = 92603763091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603768091019D30018EAE6 = { + fileRef = 92603764091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603769091019D30018EAE6 = { + fileRef = 92603765091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260376A091019D30018EAE6 = { + fileRef = 92603766091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260376B091019D30018EAE6 = { + fileRef = 92603763091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260376C091019D30018EAE6 = { + fileRef = 92603764091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260376D091019D30018EAE6 = { + fileRef = 92603765091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260376E091019D30018EAE6 = { + fileRef = 92603766091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260376F091019D30018EAE6 = { + fileRef = 92603763091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603770091019D30018EAE6 = { + fileRef = 92603764091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603771091019D30018EAE6 = { + fileRef = 92603765091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603772091019D30018EAE6 = { + fileRef = 92603766091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603773091019D30018EAE6 = { + fileRef = 92603763091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603774091019D30018EAE6 = { + fileRef = 92603764091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603775091019D30018EAE6 = { + fileRef = 92603765091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 92603776091019D30018EAE6 = { + fileRef = 92603766091019D20018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260377909101A3B0018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = tr_types.h; + refType = 4; + sourceTree = ""; + }; + 9260377A09101A3B0018EAE6 = { + fileRef = 9260377909101A3B0018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260377B09101A3B0018EAE6 = { + fileRef = 9260377909101A3B0018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260377C09101A3B0018EAE6 = { + fileRef = 9260377909101A3B0018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260377D09101A3B0018EAE6 = { + fileRef = 9260377909101A3B0018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260378009101A6C0018EAE6 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = keycodes.h; + refType = 4; + sourceTree = ""; + }; + 9260378109101A6C0018EAE6 = { + fileRef = 9260378009101A6C0018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260378209101A6C0018EAE6 = { + fileRef = 9260378009101A6C0018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260378309101A6C0018EAE6 = { + fileRef = 9260378009101A6C0018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; + 9260378409101A6C0018EAE6 = { + fileRef = 9260378009101A6C0018EAE6; + isa = PBXBuildFile; + settings = { + }; + }; +//920 +//921 +//922 +//923 +//924 //F50 //F51 //F52 From DONOTREPLY at icculus.org Wed Oct 26 18:52:17 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 26 Oct 2005 18:52:17 -0400 Subject: r183 - trunk/code/tools/lcc Message-ID: <20051026225217.2929.qmail@icculus.org> Author: tma Date: 2005-10-26 18:52:17 -0400 (Wed, 26 Oct 2005) New Revision: 183 Modified: trunk/code/tools/lcc/makefile Log: * Split lcc $AR into $AR and $ARFLAGS (from vapier) Modified: trunk/code/tools/lcc/makefile =================================================================== --- trunk/code/tools/lcc/makefile 2005-10-26 20:52:53 UTC (rev 182) +++ trunk/code/tools/lcc/makefile 2005-10-26 22:52:17 UTC (rev 183) @@ -15,7 +15,8 @@ LCC_CFLAGS=-O2 -Wall -fno-strict-aliasing LDFLAGS= LD=gcc -AR=ar ruv +AR=ar +ARFLAGS=cru RANLIB=ranlib DIFF=diff RM=rm -f @@ -77,7 +78,7 @@ $(LD) $(LDFLAGS) -o $@ $(BD)main$(O) $(EXTRAOBJS) $(BD)librcc$(A) $(EXTRALIBS) $(BD)librcc$(A): $(RCCOBJS) - $(AR) $@ $(RCCOBJS); $(RANLIB) $@ || true + $(AR) $(ARFLAGS) $@ $(RCCOBJS); $(RANLIB) $@ || true $(RCCOBJS): src/c.h src/token.h src/config.h @@ -145,7 +146,7 @@ LIBOBJS=$(BD)assert$(O) $(BD)bbexit$(O) $(BD)yynull$(O) -$(BD)liblcc$(A): $(LIBOBJS); $(AR) $@ $(BD)assert$(O) $(BD)bbexit$(O) $(BD)yynull$(O); $(RANLIB) $@ || true +$(BD)liblcc$(A): $(LIBOBJS); $(AR) $(ARFLAGS) $@ $(BD)assert$(O) $(BD)bbexit$(O) $(BD)yynull$(O); $(RANLIB) $@ || true $(BD)assert$(O): lib/assert.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/assert.c $(BD)yynull$(O): lib/yynull.c; $(CC) $(LCC_CFLAGS) -c -o $@ lib/yynull.c From DONOTREPLY at icculus.org Wed Oct 26 18:59:30 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 26 Oct 2005 18:59:30 -0400 Subject: r184 - in trunk/code/tools: asm lcc Message-ID: <20051026225930.3436.qmail@icculus.org> Author: tma Date: 2005-10-26 18:59:30 -0400 (Wed, 26 Oct 2005) New Revision: 184 Modified: trunk/code/tools/asm/Makefile trunk/code/tools/lcc/makefile Log: * Small changes to distclean target from vapier Modified: trunk/code/tools/asm/Makefile =================================================================== --- trunk/code/tools/asm/Makefile 2005-10-26 22:52:17 UTC (rev 183) +++ trunk/code/tools/asm/Makefile 2005-10-26 22:59:30 UTC (rev 184) @@ -22,4 +22,4 @@ install -s -m 0755 q3asm$(BINEXT) ../ uninstall: - -rm ../q3asm$(BINEXT) + rm -f ../q3asm$(BINEXT) Modified: trunk/code/tools/lcc/makefile =================================================================== --- trunk/code/tools/lcc/makefile 2005-10-26 22:52:17 UTC (rev 183) +++ trunk/code/tools/lcc/makefile 2005-10-26 22:59:30 UTC (rev 184) @@ -252,6 +252,7 @@ $(RM) $(BD)rcc.c $(BD)rcc.h $(RM) $(BD)rcc1$(E) $(BD)rcc1$(E) $(BD)1rcc$(E) $(BD)2rcc$(E) $(RM) $(BD)*.ilk + $(RM) -r $(BD) clobber:: clean $(RM) $(BD)q3rcc$(E) $(BD)2html$(E) $(BD)pass2$(E) $(BD)lburg$(E) $(BD)q3cpp$(E) $(BD)q3lcc$(E) $(BD)bprint$(E) $(BD)*$(A) From DONOTREPLY at icculus.org Wed Oct 26 19:08:56 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 26 Oct 2005 19:08:56 -0400 Subject: r185 - trunk/code/tools/lcc/cpp Message-ID: <20051026230856.4126.qmail@icculus.org> Author: tma Date: 2005-10-26 19:08:56 -0400 (Wed, 26 Oct 2005) New Revision: 185 Modified: trunk/code/tools/lcc/cpp/cpp.h Log: * Use platform headers to source various libc prototypes instead of unsafe static ones (from vapier) Modified: trunk/code/tools/lcc/cpp/cpp.h =================================================================== --- trunk/code/tools/lcc/cpp/cpp.h 2005-10-26 22:59:30 UTC (rev 184) +++ trunk/code/tools/lcc/cpp/cpp.h 2005-10-26 23:08:56 UTC (rev 185) @@ -155,9 +155,9 @@ extern Includelist includelist[NINCLUDE]; extern char wd[]; -extern int creat(char *, int); -extern int open(char *, int); -extern int close(int); -extern int dup2(int, int); -extern int write(int, char *, size_t); -extern int read(int, char *, size_t); +#ifndef _WIN32 +#include +#else +#include +#endif +#include From DONOTREPLY at icculus.org Wed Oct 26 19:15:44 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 26 Oct 2005 19:15:44 -0400 Subject: r186 - trunk/code/unix Message-ID: <20051026231544.4842.qmail@icculus.org> Author: tma Date: 2005-10-26 19:15:44 -0400 (Wed, 26 Oct 2005) New Revision: 186 Modified: trunk/code/unix/unix_main.c Log: * Add notional support for various architectures from vapier. Whether or not these architectures work in practice is another matter :). Modified: trunk/code/unix/unix_main.c =================================================================== --- trunk/code/unix/unix_main.c 2005-10-26 23:08:56 UTC (rev 185) +++ trunk/code/unix/unix_main.c 2005-10-26 23:15:44 UTC (rev 186) @@ -368,6 +368,16 @@ Cvar_Set( "arch", "linux alpha" ); # elif defined __sparc__ Cvar_Set( "arch", "linux sparc" ); +# elif defined __arm__ + Cvar_Set( "arch", "linux arm" ); +# elif defined __cris__ + Cvar_Set( "arch", "linux cris" ); +# elif defined __hppa__ + Cvar_Set( "arch", "linux hppa" ); +# elif defined __mips__ + Cvar_Set( "arch", "linux mips" ); +# elif defined __sh__ + Cvar_Set( "arch", "linux sh" ); # else # error unsupported architecture #endif @@ -780,10 +790,18 @@ snprintf (fname, sizeof(fname), "%ss390x.so", name); #elif defined __ia64__ snprintf (fname, sizeof(fname), "%sia64.so", name); -#elif defined __axp__ +#elif defined __alpha__ snprintf (fname, sizeof(fname), "%saxp.so", name); #elif defined __mips__ snprintf (fname, sizeof(fname), "%smips.so", name); +#elif defined __arm__ + snprintf (fname, sizeof(fname), "%sarm.so", name); +#elif defined __cris__ + snprintf (fname, sizeof(fname), "%scris.so", name); +#elif defined __hppa__ + snprintf (fname, sizeof(fname), "%shppa.so", name); +#elif defined __sh__ + snprintf (fname, sizeof(fname), "%ssh.so", name); #else #error Unknown arch #endif From DONOTREPLY at icculus.org Wed Oct 26 19:44:28 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 26 Oct 2005 19:44:28 -0400 Subject: r187 - in trunk/code: tools tools/asm tools/lcc unix Message-ID: <20051026234428.8114.qmail@icculus.org> Author: tma Date: 2005-10-26 19:44:28 -0400 (Wed, 26 Oct 2005) New Revision: 187 Modified: trunk/code/tools/ trunk/code/tools/asm/ trunk/code/tools/lcc/ trunk/code/unix/ Log: * Added some patterns to the ignore list Property changes on: trunk/code/tools ___________________________________________________________________ Name: svn:ignore + q3asm q3lcc q3cpp q3rcc Property changes on: trunk/code/tools/asm ___________________________________________________________________ Name: svn:ignore + q3asm Property changes on: trunk/code/tools/lcc ___________________________________________________________________ Name: svn:ignore + build Property changes on: trunk/code/unix ___________________________________________________________________ Name: svn:ignore + release* debug* From DONOTREPLY at icculus.org Thu Oct 27 17:13:48 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 27 Oct 2005 17:13:48 -0400 Subject: r188 - in trunk/code: game qcommon unix Message-ID: <20051027211348.10105.qmail@icculus.org> Author: ludwig Date: 2005-10-27 17:13:47 -0400 (Thu, 27 Oct 2005) New Revision: 188 Added: trunk/code/qcommon/vm_x86_64.c Modified: trunk/code/game/bg_lib.c trunk/code/game/bg_lib.h trunk/code/qcommon/cvar.c trunk/code/qcommon/qcommon.h trunk/code/qcommon/vm.c trunk/code/unix/Makefile trunk/code/unix/unix_main.c Log: add x86_64 vm. experimental, not enabled by default. you need as for it to work. Modified: trunk/code/game/bg_lib.c =================================================================== --- trunk/code/game/bg_lib.c 2005-10-26 23:44:28 UTC (rev 187) +++ trunk/code/game/bg_lib.c 2005-10-27 21:13:47 UTC (rev 188) @@ -38,6 +38,8 @@ * SUCH DAMAGE. */ +#include "bg_lib.h" + #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)qsort.c 8.1 (Berkeley) 6/4/93"; Modified: trunk/code/game/bg_lib.h =================================================================== --- trunk/code/game/bg_lib.h 2005-10-26 23:44:28 UTC (rev 187) +++ trunk/code/game/bg_lib.h 2005-10-27 21:13:47 UTC (rev 188) @@ -23,7 +23,13 @@ // compiled for the virtual machine // This file is NOT included on native builds +#ifndef BG_LIB_H +#define BG_LIB_H +#ifndef NULL +#define NULL ((void *)0) +#endif + typedef int size_t; typedef char * va_list; @@ -89,3 +95,4 @@ double fabs( double x ); double acos( double x ); +#endif // BG_LIB_H Modified: trunk/code/qcommon/cvar.c =================================================================== --- trunk/code/qcommon/cvar.c 2005-10-26 23:44:28 UTC (rev 187) +++ trunk/code/qcommon/cvar.c 2005-10-27 21:13:47 UTC (rev 188) @@ -286,7 +286,7 @@ cvar_t *Cvar_Set2( const char *var_name, const char *value, qboolean force ) { cvar_t *var; - Com_DPrintf( "Cvar_Set2: %s %s\n", var_name, value ); +// Com_DPrintf( "Cvar_Set2: %s %s\n", var_name, value ); if ( !Cvar_ValidateString( var_name ) ) { Com_Printf("invalid cvar name string: %s\n", var_name ); Modified: trunk/code/qcommon/qcommon.h =================================================================== --- trunk/code/qcommon/qcommon.h 2005-10-26 23:44:28 UTC (rev 187) +++ trunk/code/qcommon/qcommon.h 2005-10-27 21:13:47 UTC (rev 188) @@ -547,6 +547,8 @@ qboolean FS_FileExists( const char *file ); +char *FS_BuildOSPath( const char *base, const char *game, const char *qpath ); + int FS_LoadStack( void ); int FS_GetFileList( const char *path, const char *extension, char *listbuf, int bufsize ); @@ -603,7 +605,7 @@ void FS_Flush( fileHandle_t f ); -void QDECL FS_Printf( fileHandle_t f, const char *fmt, ... ); +void QDECL FS_Printf( fileHandle_t f, const char *fmt, ... ) __attribute__ ((format (printf, 2, 3))); // like fprintf int FS_FOpenFileByMode( const char *qpath, fileHandle_t *f, fsMode_t mode ); Modified: trunk/code/qcommon/vm.c =================================================================== --- trunk/code/qcommon/vm.c 2005-10-26 23:44:28 UTC (rev 187) +++ trunk/code/qcommon/vm.c 2005-10-27 21:13:47 UTC (rev 188) @@ -745,12 +745,15 @@ args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13], args[14], args[15]); + } else { +#ifdef __i386__ // i386 calling convention doesn't need conversion #if defined(HAVE_VM_COMPILED) - } else if ( vm->compiled ) { - // only used on 32bit machines so this cast is fine - r = VM_CallCompiled( vm, (int*)&callnum ); + if ( vm->compiled ) + r = VM_CallCompiled( vm, (int*)callnum ); + else #endif - } else { + r = VM_CallInterpreted( vm, (int*)callnum ); +#else struct { int callnum; int args[16]; @@ -763,7 +766,13 @@ a.args[i] = va_arg(ap, long); } va_end(ap); - r = VM_CallInterpreted( vm, &a.callnum ); +#if defined(HAVE_VM_COMPILED) + if ( vm->compiled ) + r = VM_CallCompiled( vm, &a.callnum ); + else +#endif + r = VM_CallInterpreted( vm, &a.callnum ); +#endif } if ( oldVM != NULL ) // bk001220 - assert(currentVM!=NULL) for oldVM==NULL Added: trunk/code/qcommon/vm_x86_64.c =================================================================== --- trunk/code/qcommon/vm_x86_64.c 2005-10-26 23:44:28 UTC (rev 187) +++ trunk/code/qcommon/vm_x86_64.c 2005-10-27 21:13:47 UTC (rev 188) @@ -0,0 +1,1264 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. +Copyright (C) 2005 Ludwig Nussel + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ +// vm_x86_64.c -- load time compiler and execution environment for x86-64 + +#include "vm_local.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifdef VM_X86_64_STANDALONE +#include +#include +#include + +static vmInterpret_t interpret = VMI_COMPILED; + +#define DEBUG_VM + +static FILE* _asout; +vm_t* currentVM; + +static cvar_t _com_developer; +cvar_t *com_developer = &_com_developer; + +char* mmapfile(const char* fn, size_t* size); + +long printsyscall(long* args) +{ + printf("callnr %ld, args: %ld %ld %ld %ld\n", + args[0], + args[1], + args[2], + args[3], + args[4]); + + switch( args[0] ) { + case 1: + fputs((VMA(1)?VMA(1):"(NULL)\n"), stderr); + return 0; + case 999: + { + int a[5]; + a[0] = 3; + a[1] = args[1]; + a[2] = args[2]; + a[3] = args[3]; + a[4] = args[4]; + if(!currentVM->compiled) + return VM_CallInterpreted(currentVM, a); + else + return VM_CallCompiled(currentVM, a); + } + case 1000: + { + int a[5]; + a[0] = 4; + a[1] = args[1]; + a[2] = args[2]; + a[3] = args[3]; + a[4] = args[4]; + if(!currentVM->compiled) + return VM_CallInterpreted(currentVM, a); + else + return VM_CallCompiled(currentVM, a); + } + case 1001: + printf("got buffer with content '%s', length %d\n", (char*)VMA(1), (int)args[2]); + strncpy(VMA(1), "blah\n", args[2]); + return 0; + } + + return 0x66; +} + +fileHandle_t FS_FOpenFileWrite( const char *filename ) +{ + _asout = fopen(filename, "w"); + return 0; +} + +int FS_Write( const void *buffer, int len, fileHandle_t h ) +{ + return fwrite(buffer, 1, len, _asout); +} + +void FS_Printf( fileHandle_t h, const char *fmt, ... ) +{ + va_list ap; + va_start(ap, fmt); + vfprintf(_asout, fmt, ap); + va_end(ap); +} + +void FS_Flush( fileHandle_t f ) +{ + fflush(_asout); +} + +void FS_FCloseFile( fileHandle_t f ) +{ + fclose(_asout); +} + +char *FS_BuildOSPath( const char *base, const char *game, const char *qpath ) +{ + static char buf[4096]; + strcpy(buf, "./"); + strcat(buf, qpath); + return buf; +} + +cvar_t *Cvar_Get( const char *var_name, const char *var_value, int flags ) { + static cvar_t c = { .string = "" }; + return &c; +} +#endif // VM_X86_64_STANDALONE + +#ifdef DEBUG_VM +#define Dfprintf(fd, args...) fprintf(fd, ##args) +static FILE* qdasmout; +#else +#define Dfprintf(args...) +#endif + +/* + + eax scratch + ebx scratch + ecx scratch (required for shifts) + edx scratch (required for divisions) + rsi stack pointer + rdi program frame pointer + r8 pointer to begin of real stack memory + r9 return address to real program + r10 start of generated code +*/ + + +static long callAsmCall(long callProgramStack, long callSyscallNum) +{ + vm_t *savedVM; + long ret = 0x77; + long args[11]; + int iargs[11]; + int i; + +// Dfprintf(stderr, "callAsmCall(%ld, %ld)\n", callProgramStack, callSyscallNum); +// Com_Printf("-> callAsmCall %s, level %d, num %ld\n", currentVM->name, currentVM->callLevel, callSyscallNum); + + savedVM = currentVM; + + // save the stack to allow recursive VM entry + currentVM->programStack = callProgramStack - 4; + + args[0] = callSyscallNum; + iargs[0] = callSyscallNum; + for(i = 0; i < 10; ++i) + { + iargs[i+1] = *(int *)((byte *)currentVM->dataBase + callProgramStack + 8 + 4*i); + args[i+1] = *(int *)((byte *)currentVM->dataBase + callProgramStack + 8 + 4*i); + } + ret = currentVM->systemCall(args); + + currentVM = savedVM; +// Com_Printf("<- callAsmCall %s, level %d, num %ld\n", currentVM->name, currentVM->callLevel, callSyscallNum); + + return ret; +} + +#ifdef DEBUG_VM // bk001204 +static char *opnames[256] = { + "OP_UNDEF", + + "OP_IGNORE", + + "OP_BREAK", + + "OP_ENTER", + "OP_LEAVE", + "OP_CALL", + "OP_PUSH", + "OP_POP", + + "OP_CONST", + + "OP_LOCAL", + + "OP_JUMP", + + //------------------- + + "OP_EQ", + "OP_NE", + + "OP_LTI", + "OP_LEI", + "OP_GTI", + "OP_GEI", + + "OP_LTU", + "OP_LEU", + "OP_GTU", + "OP_GEU", + + "OP_EQF", + "OP_NEF", + + "OP_LTF", + "OP_LEF", + "OP_GTF", + "OP_GEF", + + //------------------- + + "OP_LOAD1", + "OP_LOAD2", + "OP_LOAD4", + "OP_STORE1", + "OP_STORE2", + "OP_STORE4", + "OP_ARG", + + "OP_BLOCK_COPY", + + //------------------- + + "OP_SEX8", + "OP_SEX16", + + "OP_NEGI", + "OP_ADD", + "OP_SUB", + "OP_DIVI", + "OP_DIVU", + "OP_MODI", + "OP_MODU", + "OP_MULI", + "OP_MULU", + + "OP_BAND", + "OP_BOR", + "OP_BXOR", + "OP_BCOM", + + "OP_LSH", + "OP_RSHI", + "OP_RSHU", + + "OP_NEGF", + "OP_ADDF", + "OP_SUBF", + "OP_DIVF", + "OP_MULF", + + "OP_CVIF", + "OP_CVFI" +}; +#endif // DEBUG_VM + +static unsigned char op_argsize[256] = +{ + [OP_ENTER] = 4, + [OP_LEAVE] = 4, + [OP_CONST] = 4, + [OP_LOCAL] = 4, + [OP_EQ] = 4, + [OP_NE] = 4, + [OP_LTI] = 4, + [OP_LEI] = 4, + [OP_GTI] = 4, + [OP_GEI] = 4, + [OP_LTU] = 4, + [OP_LEU] = 4, + [OP_GTU] = 4, + [OP_GEU] = 4, + [OP_EQF] = 4, + [OP_NEF] = 4, + [OP_LTF] = 4, + [OP_LEF] = 4, + [OP_GTF] = 4, + [OP_GEF] = 4, + [OP_ARG] = 1, + [OP_BLOCK_COPY] = 4, +}; + +#define emit(x...) \ + do { FS_Printf(fh_s, ##x); FS_Write("\n", 1, fh_s); } while(0) + +// integer compare and jump +#define IJ(op) \ + emit("subq $8, %%rsi"); \ + emit("movl 4(%%rsi), %%eax"); \ + emit("cmpl 8(%%rsi), %%eax"); \ + emit(op " i_%08x", instruction+1); \ + emit("jmp i_%08x", iarg); + +#ifdef USE_X87 +#define FJ(bits, op) \ + emit("subq $8, %%rsi");\ + emit("flds 4(%%rsi)");\ + emit("fcomps 8(%%rsi)");\ + emit("fnstsw %%ax");\ + emit("testb $" #bits ", %%ah");\ + emit(op " i_%08x", instruction+1);\ + emit("jmp i_%08x", iarg); +#define XJ(x) +#else +#define FJ(x, y) +#define XJ(op) \ + emit("subq $8, %%rsi");\ + emit("movss 4(%%rsi), %%xmm0");\ + emit("ucomiss 8(%%rsi), %%xmm0");\ + emit("jp i_%08x", instruction+1);\ + emit(op " i_%08x", instruction+1);\ + emit("jmp i_%08x", iarg); +#endif + +#define SIMPLE(op) \ + emit("subq $4, %%rsi"); \ + emit("movl 4(%%rsi), %%eax"); \ + emit(op " %%eax, 0(%%rsi)"); + +#ifdef USE_X87 +#define FSIMPLE(op) \ + emit("subq $4, %%rsi"); \ + emit("flds 0(%%rsi)"); \ + emit(op " 4(%%rsi)"); \ + emit("fstps 0(%%rsi)"); +#define XSIMPLE(op) +#else +#define FSIMPLE(op) +#define XSIMPLE(op) \ + emit("subq $4, %%rsi"); \ + emit("movss 0(%%rsi), %%xmm0"); \ + emit(op " 4(%%rsi), %%xmm0"); \ + emit("movss %%xmm0, 0(%%rsi)"); +#endif + +#define SHIFT(op) \ + emit("subq $4, %%rsi"); \ + emit("movl 4(%%rsi), %%ecx"); \ + emit("movl 0(%%rsi), %%eax"); \ + emit(op " %%cl, %%eax"); \ + emit("movl %%eax, 0(%%rsi)"); + +#if 1 +#define RANGECHECK(reg) \ + emit("andl $0x%x, %%" #reg, vm->dataMask); +#else +#define RANGECHECK(reg) +#endif + +#ifdef DEBUG_VM +#define NOTIMPL(x) \ + do { Com_Error(ERR_DROP, "instruction not implemented: %s\n", opnames[x]); } while(0) +#else +#define NOTIMPL(x) \ + do { Com_Error(ERR_DROP, "instruction not implemented: %x\n", x); } while(0) +#endif + +static void* getentrypoint(vm_t* vm) +{ + return vm->codeBase+64; // skip ELF header +} + +char* mmapfile(const char* fn, size_t* size) +{ + int fd = -1; + char* mem = NULL; + struct stat stb; + + fd = open(fn, O_RDONLY); + if(fd == -1) + goto out; + + if(fstat(fd, &stb) == -1) + goto out; + + *size = stb.st_size; + + mem = mmap(NULL, stb.st_size, PROT_READ|PROT_EXEC, MAP_SHARED, fd, 0); + if(mem == (void*)-1) + mem = NULL; + +out: + if(fd != -1) + close(fd); + + return mem; +} + +static int doas(const char* in, const char* out, unsigned char** compiledcode) +{ + char rin[4096]; + char rout[4096]; + char* buf; + char* mem; + cvar_t* homedir; + size_t size = -1, allocsize; + int ps; + pid_t pid; + + homedir = Cvar_Get("fs_homepath", "", 0); + + buf = FS_BuildOSPath(homedir->string, NULL, in); + strcpy(rin, buf); + + buf = FS_BuildOSPath(homedir->string, NULL, out); + strcpy(rout, buf); + + Com_Printf("running assembler\n"); + pid = fork(); + if(pid == -1) + Com_Error(ERR_FATAL, "can't fork\n"); + + if(!pid) + { + char* const argv[] = { + "as", + "-o", + rout, + rin, + NULL + }; + + execvp(argv[0], argv); + _exit(-1); + } + else + { + int status; + if(waitpid(pid, &status, 0) == -1) + Com_Error(ERR_FATAL, "can't wait for as: %s\n", strerror(errno)); + + if(!WIFEXITED(status)) + Com_Error(ERR_FATAL, "as died\n"); + if(WEXITSTATUS(status)) + Com_Error(ERR_FATAL, "as failed with status %d\n", WEXITSTATUS(status)); + } + + Com_Printf("done\n"); + + mem = mmapfile(rout, &size); + if(!mem) + Com_Error(ERR_FATAL, "can't mmap object file %s: %s\n", rout, strerror(errno)); + + ps = sysconf(_SC_PAGE_SIZE); + if(ps == -1) + Com_Error(ERR_FATAL, "can't determine page size: %s\n", strerror(errno)); + + --ps; + + allocsize = (size+ps)&~ps; + buf = Hunk_Alloc(allocsize, h_high); + + buf = (void*)(((unsigned long)buf+ps)&~ps); + + memcpy(buf, mem, size); + + munmap(mem, 0); + + if((*compiledcode = (unsigned char*)buf)) + { +#ifdef VM_X86_64_STANDALONE // no idea why + if(mprotect(buf, allocsize, PROT_READ|PROT_EXEC) == -1) + Com_Error(ERR_FATAL, "mprotect failed on %p+%x: %s\n", buf, allocsize, strerror(errno)); +#endif + return size; + } + + return -1; +} + +/* +================= +VM_Compile +================= +*/ +void VM_Compile( vm_t *vm, vmHeader_t *header ) { + unsigned char op; + int pc; + unsigned instruction; + char* code; + unsigned iarg = 0; + unsigned char barg = 0; + void* entryPoint; + + char fn_s[MAX_QPATH]; // output file for assembler code + char fn_o[MAX_QPATH]; // file written by as +#ifdef DEBUG_VM + char fn_d[MAX_QPATH]; // disassembled +#endif + fileHandle_t fh_s; + byte* compiledcode; + int compiledsize; + + Com_Printf("compiling %s\n", vm->name); + + strcpy(fn_s,vm->name); + strcpy(fn_o,vm->name); + strcat(fn_s, ".s"); + strcat(fn_o, ".o"); +#ifdef DEBUG_VM + strcpy(fn_d,vm->name); + strcat(fn_d, ".qdasm"); + + qdasmout = fopen(fn_d, "w"); +#endif + + fh_s = FS_FOpenFileWrite(fn_s); + if(fh_s == -1) + Com_Error(ERR_DROP, "can't write %s\n", fn_s); + + // translate all instructions + pc = 0; + code = (char *)header + header->codeOffset; + + emit("start:"); + emit("or %%r8, %%r8"); // check whether to set up instruction pointers + emit("jnz main"); + emit("jmp setupinstructionpointers"); + emit("exit:"); + emit("jmp *%%r9"); + + emit("main:"); + + for ( instruction = 0; instruction < header->instructionCount; ++instruction ) + { + op = code[ pc ]; + ++pc; + + vm->instructionPointers[instruction] = pc; + +#if 0 + emit("nop"); + emit("movq $%d, %%r15", instruction); + emit("nop"); +#endif + + if(op_argsize[op] == 4) + { + iarg = *(int*)(code+pc); + pc += 4; + Dfprintf(qdasmout, "%s %8u\n", opnames[op], iarg); + } + else if(op_argsize[op] == 1) + { + barg = code[pc++]; + Dfprintf(qdasmout, "%s %8hhu\n", opnames[op], barg); + } + else + { + Dfprintf(qdasmout, "%s\n", opnames[op]); + } + emit("i_%08x:", instruction); + switch ( op ) + { + case OP_UNDEF: + NOTIMPL(op); + break; + case OP_IGNORE: + emit("nop"); + break; + case OP_BREAK: + emit("int3"); + break; + case OP_ENTER: + emit("subl $%d, %%edi", iarg); + RANGECHECK(edi); + break; + case OP_LEAVE: + emit("addl $%d, %%edi", iarg); // get rid of stack frame + RANGECHECK(edi); + emit("movl 0(%%r8, %%rdi, 1), %%eax"); // get return address + emit("movq $%lu, %%rbx", (unsigned long)vm->instructionPointers); + emit("cmp $-1, %%eax"); + emit("je jumptoexit%d", instruction); + emit("movl (%%rbx, %%rax, 4), %%eax"); // load new relative jump address + emit("addq %%r10, %%rax"); + emit("jmp *%%rax"); + emit("jumptoexit%d:", instruction); + emit("jmp exit"); + break; + case OP_CALL: + emit("movl 0(%%rsi), %%eax"); // get instr from stack + emit("subq $4, %%rsi"); + emit("movl $%d, 0(%%r8, %%rdi, 1)", instruction+1); // save next instruction + emit("orl %%eax, %%eax"); + emit("jl callSyscall%d", instruction); + emit("movq $%lu, %%rbx", (unsigned long)vm->instructionPointers); + emit("movl (%%rbx, %%rax, 4), %%eax"); // load new relative jump address + emit("addq %%r10, %%rax"); + emit("jmp *%%rax"); + emit("callSyscall%d:", instruction); +// emit("fnsave 4(%%rsi)"); + emit("push %%rsi"); + emit("push %%rdi"); + emit("push %%r8"); + emit("push %%r9"); + emit("push %%r10"); + emit("negl %%eax"); // convert to actual number + emit("decl %%eax"); + // first argument already in rdi + emit("movq %%rax, %%rsi"); // second argument in rsi + emit("movq $%ld, %%rax", (unsigned long)callAsmCall); + emit("callq *%%rax"); + emit("pop %%r10"); + emit("pop %%r9"); + emit("pop %%r8"); + emit("pop %%rdi"); + emit("pop %%rsi"); +// emit("frstor 4(%%rsi)"); + emit("addq $4, %%rsi"); + emit("movl %%eax, (%%rsi)"); + break; + case OP_PUSH: + emit("addq $4, %%rsi"); + break; + case OP_POP: + emit("subq $4, %%rsi"); + break; + case OP_CONST: + emit("addq $4, %%rsi"); + emit("movl $%d, 0(%%rsi)", iarg); + break; + case OP_LOCAL: + emit("movl %%edi, %%ebx"); + emit("addl $%d,%%ebx", iarg); + emit("addq $4, %%rsi"); + emit("movl %%ebx, 0(%%rsi)"); + break; + case OP_JUMP: + emit("movl 0(%%rsi), %%eax"); // get instr from stack + emit("subq $4, %%rsi"); + emit("movq $%lu, %%rbx", (unsigned long)vm->instructionPointers); + emit("movl (%%rbx, %%rax, 4), %%eax"); // load new relative jump address + emit("addq %%r10, %%rax"); + emit("jmp *%%rax"); + break; + case OP_EQ: + IJ("jne"); + break; + case OP_NE: + IJ("je"); + break; + case OP_LTI: + IJ("jnl"); + break; + case OP_LEI: + IJ("jnle"); + break; + case OP_GTI: + IJ("jng"); + break; + case OP_GEI: + IJ("jnge"); + break; + case OP_LTU: + IJ("jnb"); + break; + case OP_LEU: + IJ("jnbe"); + break; + case OP_GTU: + IJ("jna"); + break; + case OP_GEU: + IJ("jnae"); + break; + case OP_EQF: + FJ(0x40, "jz"); + XJ("jnz"); + break; + case OP_NEF: + FJ(0x40, "jnz"); +#ifndef USE_X87 + emit("subq $8, %%rsi"); + emit("movss 4(%%rsi), %%xmm0"); + emit("ucomiss 8(%%rsi), %%xmm0"); + emit("jp dojump_i_%08x", instruction); + emit("jz i_%08x", instruction+1); + emit("dojump_i_%08x:", instruction); + emit("jmp i_%08x", iarg); +#endif + break; + case OP_LTF: + FJ(0x01, "jz"); + XJ("jnc"); + break; + case OP_LEF: + FJ(0x41, "jz"); + XJ("ja"); + break; + case OP_GTF: + FJ(0x41, "jnz"); + XJ("jbe"); + break; + case OP_GEF: + FJ(0x01, "jnz"); + XJ("jb"); + break; + case OP_LOAD1: + emit("movl 0(%%rsi), %%eax"); // get pointer from stack + RANGECHECK(eax); + emit("movb 0(%%r8, %%rax, 1), %%al"); // deref into eax + emit("andq $255, %%rax"); + emit("movl %%eax, 0(%%rsi)"); // store on stack + break; + case OP_LOAD2: + emit("movl 0(%%rsi), %%eax"); // get pointer from stack + RANGECHECK(eax); + emit("movw 0(%%r8, %%rax, 1), %%rax"); // deref into eax + emit("movl %%eax, 0(%%rsi)"); // store on stack + break; + case OP_LOAD4: + emit("movl 0(%%rsi), %%eax"); // get pointer from stack + RANGECHECK(eax); + emit("movl 0(%%r8, %%rax, 1), %%eax"); // deref into eax + emit("movl %%eax, 0(%%rsi)"); // store on stack + break; + case OP_STORE1: + emit("movl 0(%%rsi), %%eax"); // get value from stack + emit("andq $255, %%rax"); + emit("movl -4(%%rsi), %%ebx"); // get pointer from stack + RANGECHECK(ebx); + emit("movb %%al, 0(%%r8, %%rbx, 1)"); // store in memory + emit("subq $8, %%rsi"); + break; + case OP_STORE2: + emit("movl 0(%%rsi), %%eax"); // get value from stack + emit("movl -4(%%rsi), %%ebx"); // get pointer from stack + RANGECHECK(ebx); + emit("movw %%rax, 0(%%r8, %%rbx, 1)"); // store in memory + emit("subq $8, %%rsi"); + break; + case OP_STORE4: + emit("movl -4(%%rsi), %%ebx"); // get pointer from stack + RANGECHECK(ebx); + emit("movl 0(%%rsi), %%ecx"); // get value from stack + emit("movl %%ecx, 0(%%r8, %%rbx, 1)"); // store in memory + emit("subq $8, %%rsi"); + break; + case OP_ARG: + emit("subq $4, %%rsi"); + emit("movl 4(%%rsi), %%eax"); // get value from stack + emit("movl $0x%hhx, %%ebx", barg); + emit("addl %%edi, %%ebx"); + RANGECHECK(ebx); + emit("movl %%eax, 0(%%r8,%%rbx, 1)"); // store in args space + break; + case OP_BLOCK_COPY: + if(iarg % 4) Com_Error(ERR_DROP, + "argument to OP_BLOCK_COPY not multiple of 4\n"); + + emit("subq $8, %%rsi"); + emit("movl 8(%%rsi), %%ebx"); // get pointer from stack + + emit("movl %%ebx, %%ecx"); + RANGECHECK(ecx); + emit("cmp %%ebx, %%ecx"); + emit("jne broken%d", instruction); + + emit("movl %%ecx, %%edx"); + emit("addl $%d, %%edx", iarg); + emit("addl $%d, %%ecx", iarg); + RANGECHECK(edx); + emit("cmp %%ecx, %%edx"); + emit("jne broken%d", instruction); + + emit("movl 4(%%rsi), %%eax"); // get pointer from stack + + emit("movl %%eax, %%ecx"); + RANGECHECK(ecx); + emit("cmp %%eax, %%ecx"); + emit("jne broken%d", instruction); + + emit("movl %%ecx, %%edx"); + emit("addl $%d, %%edx", iarg); + emit("addl $%d, %%ecx", iarg); + RANGECHECK(edx); + emit("cmp %%ecx, %%edx"); + emit("jne broken%d", instruction); + + emit("addq %%r8, %%rax"); // calc real address + emit("addq %%r8, %%rbx"); // calc real address + emit("movl $%d, %%ecx", iarg); + emit("shrl $2, %%ecx"); + emit("block_copy_loop_%d:", instruction); + emit("decl %%ecx"); + emit("movl 0(%%rbx, %%rcx, 4), %%edx"); + emit("movl %%edx, 0(%%rax, %%rcx, 4)"); + emit("orl %%ecx, %%ecx"); + emit("jnz block_copy_loop_%d", instruction); + emit("jmp i_%08x", instruction+1); + + emit("broken%d:", instruction); + emit("int3"); + + break; + case OP_SEX8: + emit("movw 0(%%rsi), %%rax"); + emit("andq $255, %%rax"); + emit("cbw"); + emit("cwde"); + emit("movl %%eax, 0(%%rsi)"); + break; + case OP_SEX16: + emit("movw 0(%%rsi), %%rax"); + emit("cwde"); + emit("movl %%eax, 0(%%rsi)"); + break; + case OP_NEGI: + emit("negl 0(%%rsi)"); + break; + case OP_ADD: + SIMPLE("addl"); + break; + case OP_SUB: + SIMPLE("subl"); + break; + case OP_DIVI: + emit("subq $4, %%rsi"); + emit("movl 0(%%rsi), %%eax"); + emit("cdq"); + emit("idivl 4(%%rsi)"); + emit("movl %%eax, 0(%%rsi)"); + break; + case OP_DIVU: + emit("subq $4, %%rsi"); + emit("movl 0(%%rsi), %%eax"); + emit("xorq %%rdx, %%rdx"); + emit("divl 4(%%rsi)"); + emit("movl %%eax, 0(%%rsi)"); + break; + case OP_MODI: + emit("subq $4, %%rsi"); + emit("movl 0(%%rsi), %%eax"); + emit("xorl %%edx, %%edx"); + emit("divl 4(%%rsi)"); + emit("movl %%edx, 0(%%rsi)"); + break; + case OP_MODU: + emit("subq $4, %%rsi"); + emit("movl 0(%%rsi), %%eax"); + emit("xorl %%edx, %%edx"); + emit("idivl 4(%%rsi)"); + emit("movl %%edx, 0(%%rsi)"); + break; + case OP_MULI: + emit("subq $4, %%rsi"); + emit("movl 0(%%rsi), %%eax"); + emit("imull 4(%%rsi)"); + emit("movl %%eax, 0(%%rsi)"); + break; + case OP_MULU: + emit("subq $4, %%rsi"); + emit("movl 0(%%rsi), %%eax"); + emit("mull 4(%%rsi)"); + emit("movl %%eax, 0(%%rsi)"); + break; + case OP_BAND: + SIMPLE("andl"); + break; + case OP_BOR: + SIMPLE("orl"); + break; + case OP_BXOR: + SIMPLE("xorl"); + break; + case OP_BCOM: + emit("notl 0(%%rsi)"); + break; + case OP_LSH: + SHIFT("shl"); + break; + case OP_RSHI: + SHIFT("sarl"); + break; + case OP_RSHU: + SHIFT("shrl"); + break; + case OP_NEGF: +#ifdef USE_X87 + emit("flds 0(%%rsi)"); + emit("fchs"); + emit("fstps 0(%%rsi)"); +#else + emit("movl $0x80000000, %%eax"); + emit("xorl %%eax, 0(%%rsi)"); +#endif + break; + case OP_ADDF: + FSIMPLE("fadds"); + XSIMPLE("addss"); + break; + case OP_SUBF: + FSIMPLE("fsubs"); + XSIMPLE("subss"); + break; + case OP_DIVF: + FSIMPLE("fdivs"); + XSIMPLE("divss"); + break; + case OP_MULF: + FSIMPLE("fmuls"); + XSIMPLE("mulss"); + break; + case OP_CVIF: +#ifdef USE_X87 + emit("filds 0(%%rsi)"); + emit("fstps 0(%%rsi)"); +#else + emit("movl 0(%%rsi), %%eax"); + emit("cvtsi2ss %%eax, %%xmm0"); + emit("movss %%xmm0, 0(%%rsi)"); +#endif + break; + case OP_CVFI: +#ifdef USE_X87 + emit("flds 0(%%rsi)"); + emit("fnstcw 4(%%rsi)"); + emit("movw $0x0F7F, 8(%%rsi)"); // round toward zero + emit("fldcw 8(%%rsi)"); + emit("fistpl 0(%%rsi)"); + emit("fldcw 4(%%rsi)"); +#else + emit("movss 0(%%rsi), %%xmm0"); + emit("cvttss2si %%xmm0, %%eax"); + emit("movl %%eax, 0(%%rsi)"); +#endif + break; + default: + NOTIMPL(op); + break; + } + } + + + emit("setupinstructionpointers:"); + emit("movq $%lu, %%rax", (unsigned long)vm->instructionPointers); + for ( instruction = 0; instruction < header->instructionCount; ++instruction ) + { + emit("movl $i_%08x-start, %d(%%rax)", instruction, instruction*4); + } + emit("jmp exit"); + + emit("debugger:"); + if(1); + { + int i = 6; + while(i--) + { + emit("nop"); + emit("int3"); + } + } + + FS_Flush(fh_s); + FS_FCloseFile(fh_s); + + compiledsize = doas(fn_s, fn_o, &compiledcode); + + vm->codeBase = compiledcode; // remember to skip ELF header! + vm->codeLength = compiledsize; + + entryPoint = getentrypoint(vm); + +// __asm__ __volatile__ ("int3"); + Com_Printf("computing jump table\n"); + + // call code with r8 set to zero to set up instruction pointers + __asm__ __volatile__ ( + " xorq %%r8,%%r8 \r\n" \ + " movq $doneinit,%%r9 \r\n" \ + " movq %0,%%r10 \r\n" \ + " jmp *%%r10 \r\n" \ + "doneinit: \r\n" \ + : + : "m" (entryPoint) + : "%r8", "%r9", "%r10", "%rax" + ); + +#ifdef DEBUG_VM + fflush(qdasmout); +#endif + + Com_Printf( "VM file %s compiled to %i bytes of code (0x%lx - 0x%lx)\n", vm->name, vm->codeLength, vm->codeBase, vm->codeBase+vm->codeLength ); +} + +/* +============== +VM_CallCompiled + +This function is called directly by the generated code +============== +*/ + +#ifdef DEBUG_VM +static char* memData; +#endif + +int VM_CallCompiled( vm_t *vm, int *args ) { + int programCounter; + int programStack; + int stackOnEntry; + byte *image; + void *entryPoint; + void *opStack; + int stack[1024] = { 0xDEADBEEF }; + + currentVM = vm; + + ++vm->callLevel; +// Com_Printf("entering %s level %d, call %d, arg1 = 0x%x\n", vm->name, vm->callLevel, args[0], args[1]); + + // interpret the code + vm->currentlyInterpreting = qtrue; + +// callMask = vm->dataMask; + + // we might be called recursively, so this might not be the very top + programStack = vm->programStack; + stackOnEntry = programStack; + + // set up the stack frame + image = vm->dataBase; +#ifdef DEBUG_VM + memData = (char*)image; +#endif + + programCounter = 0; + + programStack -= 48; + + *(int *)&image[ programStack + 44] = args[9]; + *(int *)&image[ programStack + 40] = args[8]; + *(int *)&image[ programStack + 36] = args[7]; + *(int *)&image[ programStack + 32] = args[6]; + *(int *)&image[ programStack + 28] = args[5]; + *(int *)&image[ programStack + 24] = args[4]; + *(int *)&image[ programStack + 20] = args[3]; + *(int *)&image[ programStack + 16] = args[2]; + *(int *)&image[ programStack + 12] = args[1]; + *(int *)&image[ programStack + 8 ] = args[0]; + *(int *)&image[ programStack + 4 ] = 0x77777777; // return stack + *(int *)&image[ programStack ] = -1; // will terminate the loop on return + + // off we go into generated code... + entryPoint = getentrypoint(vm); + opStack = &stack; + + __asm__ __volatile__ ( + " movq %5,%%rsi \r\n" \ + " movl %4,%%edi \r\n" \ + " movq $done,%%r9 \r\n" \ + " movq %2,%%r10 \r\n" \ + " movq %3,%%r8 \r\n" \ + " jmp *%%r10 \r\n" \ + "done: \r\n" \ + " movl %%edi, %0 \r\n" \ + " movq %%rsi, %1 \r\n" \ + : "=m" (programStack), "=m" (opStack) + : "m" (entryPoint), "m" (vm->dataBase), "m" (programStack), "m" (opStack) + : "%rsi", "%rdi", "%rax", "%rbx", "%rcx", "%rdx", "%r8", "%r9", "%r10", "%r15", "%xmm0" + ); + + if ( opStack != &stack[1] ) { + Com_Error( ERR_DROP, "opStack corrupted in compiled code (offset %d)\n", (void*)&stack[1] - opStack); + } + if ( programStack != stackOnEntry - 48 ) { + Com_Error( ERR_DROP, "programStack corrupted in compiled code\n" ); + } + +// Com_Printf("exiting %s level %d\n", vm->name, vm->callLevel); + --vm->callLevel; + vm->programStack = stackOnEntry; + + return *(int *)opStack; +} + +#ifdef VM_X86_64_STANDALONE + +#include + +int testops(vm_t* vm) +{ + int i1, i2, vmres; + int i; + float f1, f2, fres, fvmres; + int numitests = 26; + int numftests = 11; + int ret = 0; + int testno; + int res = 0xC0DEDBAD; + + srand(time(NULL)); + + i1 = 1 + (int) (1000.0 * (rand() / (RAND_MAX + 1.0))); + i2 = 1 + (int) (1000.0 * (rand() / (RAND_MAX + 1.0))); + + if(i1 < i2) + { + i = i1; + i1 = i2; + i2 = i; + } + + f1 = i1/1.5; + f2 = i2/1.5; + + if(!i2) i2=i1; + if(!f2) f2=f1; + + printf("i1: %d i2: %d\n", i1, i2); + printf("f1: %f f2: %f\n", f1, f2); + +testintops: + for (testno = 1; testno < numitests; ++testno) + { + printf("int test %d ... ", testno); + fflush(stdout); + + res = test(testno, i1, i2); + vmres = VM_Call(vm, testno, i1, i2); + + if(vmres == res) + { + printf("ok: %d == %d\n", res, vmres); + } + else + { + printf("failed: %d != %d\n", res, vmres); + ret = 1; + } + } + if(i1 != i2) + { + i2 = i1; + goto testintops; + } + +testfops: + i1 = *(int*)&f1; + i2 = *(int*)&f2; + + for (testno = 100; testno < 100+numftests; ++testno) + { + printf("float test %d ... ", testno); + fflush(stdout); + + res = test(testno, i1, i2); + vmres = VM_Call(vm, testno, i1, i2); + + fres = *(float*)&res; + fvmres = *(float*)&vmres; + + if(fvmres == fres) + { + printf("ok: %f == %f\n", fres, fvmres); + } + else + { + printf("failed: %f != %f\n", fres, fvmres); + ret = 1; + } + } + if(f1 > f2) + { + float t = f1; + f1 = f2; + f2 = t; + goto testfops; + } + else if(f1 < f2) + { + f2 = f1; + goto testfops; + } + + return ret; +} + +void VM_VmInfo_f( void ); + +int main(int argc, char* argv[]) +{ + size_t size; + vmHeader_t *header; + vm_t* vm[3]; + unsigned dataLength; + int i; + long args[11] = {0}; + int ret = 0xDEADBEEF; + char* mem; + + char* file = argv[1]; + + char module[128]; + + if(argc < 2) + return -1; + + strcpy(module, file); + *strchr(module, '.') = '\0'; + + vm[0] = VM_Create( module, printsyscall, interpret ); + vm[1] = VM_Create( module, printsyscall, interpret ); + vm[2] = VM_Create( module, printsyscall, interpret ); + + VM_VmInfo_f(); + + if(argc > 2) + { + for(i = 2; i < argc; ++i) + { + args[i-2] = strtol(argv[i],NULL,0); + } + + ret = VM_Call(vm[0], args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); + ret += VM_Call(vm[1], args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); + ret += VM_Call(vm[2], args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); + } + else + { + ret = testops(vm[0]); + ret += testops(vm[1]); + ret += testops(vm[2]); + ret += testops(vm[1]); + ret += testops(vm[0]); + } + + +#ifdef DEBUG_VM + printf("ret: %d [%X]\n", ret, ret); +#endif + + return 0; +} +#endif Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-26 23:44:28 UTC (rev 187) +++ trunk/code/unix/Makefile 2005-10-27 21:13:47 UTC (rev 188) @@ -135,6 +135,8 @@ OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -falign-loops=2 \ -falign-jumps=2 -falign-functions=2 -fstrength-reduce \ -fno-strict-aliasing +# experimental! you need as +# BASE_CFLAGS += -DHAVE_VM_COMPILED else ifeq ($(ARCH),i386) OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math \ @@ -404,7 +406,7 @@ DO_CC=$(CC) $(CFLAGS) -o $@ -c $< DO_CXX=$(CXX) $(CFLAGS) -o $@ -c $< DO_SMP_CC=$(CC) $(CFLAGS) -DSMP -o $@ -c $< -DO_BOT_CC=$(CC) $(CFLAGS) -DBOTLIB -o $@ -c $< # $(SHLIBCFLAGS) # bk001212 +DO_BOT_CC=$(CC) $(CFLAGS) -DBOTLIB -o $@ -c $< # $(SHLIBCFLAGS) # bk001212 DO_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) -o $@ -c $< DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $< DO_SHLIB_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(SHLIBCFLAGS) -o $@ -c $< @@ -618,6 +620,9 @@ ifeq ($(ARCH),x86) Q3OBJ += $(B)/client/vm_x86.o endif +ifeq ($(ARCH),x86_64) + Q3OBJ += $(B)/client/vm_x86_64.o +endif ifeq ($(ARCH),ppc) ifneq ($(VM_PPC),) @@ -902,6 +907,7 @@ $(B)/client/win_resource.o : $(W32DIR)/winquake.rc; $(DO_WINDRES) $(B)/client/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_CC) +$(B)/client/vm_x86_64.o : $(CMDIR)/vm_x86_64.c; $(DO_CC) ifneq ($(VM_PPC),) $(B)/client/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_CC) endif @@ -989,6 +995,10 @@ Q3DOBJ += $(B)/ded/vm_x86.o $(B)/ded/ftola.o $(B)/ded/snapvectora.o endif +ifeq ($(ARCH),x86_64) + Q3DOBJ += $(B)/ded/vm_x86_64.o +endif + ifeq ($(ARCH),ppc) ifneq ($(VM_PPC),) Q3DOBJ += $(B)/ded/$(VM_PPC).o @@ -1069,6 +1079,7 @@ $(B)/ded/snapvectora.o : $(UDIR)/snapvectora.s; $(DO_AS) $(B)/ded/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_DED_CC) +$(B)/ded/vm_x86_64.o : $(CMDIR)/vm_x86_64.c; $(DO_DED_CC) ifneq ($(VM_PPC),) $(B)/ded/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_DED_CC) endif Modified: trunk/code/unix/unix_main.c =================================================================== --- trunk/code/unix/unix_main.c 2005-10-26 23:44:28 UTC (rev 187) +++ trunk/code/unix/unix_main.c 2005-10-27 21:13:47 UTC (rev 188) @@ -730,7 +730,6 @@ #3 look in fs_basepath ================= */ -extern char *FS_BuildOSPath( const char *base, const char *game, const char *qpath ); static void* try_dlopen(const char* base, const char* gamedir, const char* fname, char* fqpath ) { From DONOTREPLY at icculus.org Thu Oct 27 17:49:36 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 27 Oct 2005 17:49:36 -0400 Subject: r189 - trunk/code/qcommon Message-ID: <20051027214936.14453.qmail@icculus.org> Author: tma Date: 2005-10-27 17:49:36 -0400 (Thu, 27 Oct 2005) New Revision: 189 Modified: trunk/code/qcommon/q_shared.h Log: * Ignore __attribute__ when not using gcc Modified: trunk/code/qcommon/q_shared.h =================================================================== --- trunk/code/qcommon/q_shared.h 2005-10-27 21:13:47 UTC (rev 188) +++ trunk/code/qcommon/q_shared.h 2005-10-27 21:49:36 UTC (rev 189) @@ -56,6 +56,11 @@ #pragma warning(disable : 4220) // varargs matches remaining parameters #endif +//Ignore __attribute__ on non-gcc platforms +#ifndef __GNUC__ +#define __attribute__(x) +#endif + /********************************************************************** VM Considerations From DONOTREPLY at icculus.org Thu Oct 27 18:05:38 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 27 Oct 2005 18:05:38 -0400 Subject: r190 - trunk/code/qcommon Message-ID: <20051027220538.16207.qmail@icculus.org> Author: tma Date: 2005-10-27 18:05:38 -0400 (Thu, 27 Oct 2005) New Revision: 190 Modified: trunk/code/qcommon/q_shared.h trunk/code/qcommon/qcommon.h trunk/code/qcommon/qfiles.h Log: * ...and the other common headers Modified: trunk/code/qcommon/q_shared.h =================================================================== --- trunk/code/qcommon/q_shared.h 2005-10-27 21:49:36 UTC (rev 189) +++ trunk/code/qcommon/q_shared.h 2005-10-27 22:05:38 UTC (rev 190) @@ -58,8 +58,10 @@ //Ignore __attribute__ on non-gcc platforms #ifndef __GNUC__ +#ifndef __attribute__ #define __attribute__(x) #endif +#endif /********************************************************************** VM Considerations Modified: trunk/code/qcommon/qcommon.h =================================================================== --- trunk/code/qcommon/qcommon.h 2005-10-27 21:49:36 UTC (rev 189) +++ trunk/code/qcommon/qcommon.h 2005-10-27 22:05:38 UTC (rev 190) @@ -25,6 +25,13 @@ #include "../qcommon/cm_public.h" +//Ignore __attribute__ on non-gcc platforms +#ifndef __GNUC__ +#ifndef __attribute__ +#define __attribute__(x) +#endif +#endif + //#define PRE_RELEASE_DEMO //============================================================================ Modified: trunk/code/qcommon/qfiles.h =================================================================== --- trunk/code/qcommon/qfiles.h 2005-10-27 21:49:36 UTC (rev 189) +++ trunk/code/qcommon/qfiles.h 2005-10-27 22:05:38 UTC (rev 190) @@ -27,6 +27,13 @@ // This file must be identical in the quake and utils directories // +//Ignore __attribute__ on non-gcc platforms +#ifndef __GNUC__ +#ifndef __attribute__ +#define __attribute__(x) +#endif +#endif + // surface geometry should not exceed these limits #define SHADER_MAX_VERTEXES 1000 #define SHADER_MAX_INDEXES (6*SHADER_MAX_VERTEXES) From DONOTREPLY at icculus.org Thu Oct 27 18:38:25 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 27 Oct 2005 18:38:25 -0400 Subject: r191 - trunk/code/qcommon Message-ID: <20051027223825.21204.qmail@icculus.org> Author: tma Date: 2005-10-27 18:38:25 -0400 (Thu, 27 Oct 2005) New Revision: 191 Modified: trunk/code/qcommon/vm.c Log: * Fix the x86 vm Modified: trunk/code/qcommon/vm.c =================================================================== --- trunk/code/qcommon/vm.c 2005-10-27 22:05:38 UTC (rev 190) +++ trunk/code/qcommon/vm.c 2005-10-27 22:38:25 UTC (rev 191) @@ -749,10 +749,10 @@ #ifdef __i386__ // i386 calling convention doesn't need conversion #if defined(HAVE_VM_COMPILED) if ( vm->compiled ) - r = VM_CallCompiled( vm, (int*)callnum ); + r = VM_CallCompiled( vm, (int*)&callnum ); else #endif - r = VM_CallInterpreted( vm, (int*)callnum ); + r = VM_CallInterpreted( vm, (int*)&callnum ); #else struct { int callnum; From DONOTREPLY at icculus.org Fri Oct 28 17:09:50 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 28 Oct 2005 17:09:50 -0400 Subject: r192 - trunk/code/server Message-ID: <20051028210950.10689.qmail@icculus.org> Author: tma Date: 2005-10-28 17:09:50 -0400 (Fri, 28 Oct 2005) New Revision: 192 Modified: trunk/code/server/server.h trunk/code/server/sv_client.c trunk/code/server/sv_init.c trunk/code/server/sv_snapshot.c Log: * Fix to https://bugzilla.icculus.org/show_bug.cgi?id=2454 Modified: trunk/code/server/server.h =================================================================== --- trunk/code/server/server.h 2005-10-27 22:38:25 UTC (rev 191) +++ trunk/code/server/server.h 2005-10-28 21:09:50 UTC (rev 192) @@ -166,6 +166,8 @@ // buffer them into this queue, and hand them out to netchan as needed netchan_buffer_t *netchan_start_queue; netchan_buffer_t **netchan_end_queue; + + int oldServerTime; } client_t; //============================================================================= Modified: trunk/code/server/sv_client.c =================================================================== --- trunk/code/server/sv_client.c 2005-10-27 22:38:25 UTC (rev 191) +++ trunk/code/server/sv_client.c 2005-10-28 21:09:50 UTC (rev 192) @@ -1500,6 +1500,13 @@ return; } + // this client has acknowledged the new gamestate so it's + // safe to start sending it the real time again + if( cl->oldServerTime && serverId == sv.serverId ){ + Com_DPrintf( "%s acknowledged gamestate\n", cl->name ); + cl->oldServerTime = 0; + } + // read optional clientCommand strings do { c = MSG_ReadByte( msg ); Modified: trunk/code/server/sv_init.c =================================================================== --- trunk/code/server/sv_init.c 2005-10-27 22:38:25 UTC (rev 191) +++ trunk/code/server/sv_init.c 2005-10-28 21:09:50 UTC (rev 192) @@ -396,6 +396,13 @@ Cvar_Set( "nextmap", "map_restart 0"); // Cvar_Set( "nextmap", va("map %s", server) ); + for (i=0 ; iinteger ; i++) { + // save when the server started for each client already connected + if (svs.clients[i].state >= CS_CONNECTED) { + svs.clients[i].oldServerTime = sv.time; + } + } + // wipe the entire per-level structure SV_ClearServer(); for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) { Modified: trunk/code/server/sv_snapshot.c =================================================================== --- trunk/code/server/sv_snapshot.c 2005-10-27 22:38:25 UTC (rev 191) +++ trunk/code/server/sv_snapshot.c 2005-10-28 21:09:50 UTC (rev 192) @@ -160,7 +160,17 @@ // send over the current server time so the client can drift // its view of time to try to match - MSG_WriteLong (msg, sv.time); + if( client->oldServerTime ) { + // The server has not yet got an acknowledgement of the + // new gamestate from this client, so continue to send it + // a time as if the server has not restarted. Note from + // the client's perspective this time is strictly speaking + // incorrect, but since it'll be busy loading a map at + // the time it doesn't really matter. + MSG_WriteLong (msg, sv.time + client->oldServerTime); + } else { + MSG_WriteLong (msg, sv.time); + } // what we are delta'ing from MSG_WriteByte (msg, lastframe); From DONOTREPLY at icculus.org Fri Oct 28 18:10:39 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 28 Oct 2005 18:10:39 -0400 Subject: r193 - trunk/code/server Message-ID: <20051028221039.17511.qmail@icculus.org> Author: tma Date: 2005-10-28 18:10:39 -0400 (Fri, 28 Oct 2005) New Revision: 193 Modified: trunk/code/server/sv_ccmds.c Log: * Compiler warning fix from ankon Modified: trunk/code/server/sv_ccmds.c =================================================================== --- trunk/code/server/sv_ccmds.c 2005-10-28 21:09:50 UTC (rev 192) +++ trunk/code/server/sv_ccmds.c 2005-10-28 22:10:39 UTC (rev 193) @@ -121,8 +121,6 @@ return NULL; } return cl; - - return NULL; } //========================================================= From DONOTREPLY at icculus.org Fri Oct 28 20:23:10 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 28 Oct 2005 20:23:10 -0400 Subject: r194 - in trunk/code: qcommon server unix Message-ID: <20051029002310.32231.qmail@icculus.org> Author: tma Date: 2005-10-28 20:23:10 -0400 (Fri, 28 Oct 2005) New Revision: 194 Removed: trunk/code/unix/vm_x86.c Modified: trunk/code/qcommon/vm.c trunk/code/qcommon/vm_x86.c trunk/code/server/sv_init.c trunk/code/unix/Makefile Log: * Deleted code/unix/vm_x86.c - wtf was that about anyway? * Removed HAVE_VM_NATIVE * Removed DLL_ONLY * Replace HAVE_VM_COMPILED with NO_VM_COMPILED -- this means the JIT compiler should be enabled on the OS X and VC builds now * Remove the remainder of the freetype building stuff Modified: trunk/code/qcommon/vm.c =================================================================== --- trunk/code/qcommon/vm.c 2005-10-28 22:10:39 UTC (rev 193) +++ trunk/code/qcommon/vm.c 2005-10-29 00:23:10 UTC (rev 194) @@ -543,7 +543,6 @@ Q_strncpyz( vm->name, module, sizeof( vm->name ) ); vm->systemCall = systemCalls; -#if defined(HAVE_VM_NATIVE) // never allow dll loading with a demo if ( interpret == VMI_NATIVE ) { if ( Cvar_VariableValue( "fs_restrict" ) ) { @@ -562,12 +561,6 @@ Com_Printf( "Failed to load dll, looking for qvm.\n" ); interpret = VMI_COMPILED; } -#else - if ( interpret == VMI_NATIVE ) { - Com_Printf("Architecture doesn't support native dll's, using qvm\n"); - interpret = VMI_COMPILED; - } -#endif // load the image if( !( header = VM_LoadQVM( vm, qtrue ) ) ) { @@ -581,7 +574,7 @@ // copy or compile the instructions vm->codeLength = header->codeLength; -#if !defined(HAVE_VM_COMPILED) +#ifdef NO_VM_COMPILED if(interpret >= VMI_COMPILED) { Com_Printf("Architecture doesn't have a bytecode compiler, using interpreter\n"); interpret = VMI_BYTECODE; @@ -747,7 +740,7 @@ args[12], args[13], args[14], args[15]); } else { #ifdef __i386__ // i386 calling convention doesn't need conversion -#if defined(HAVE_VM_COMPILED) +#ifndef NO_VM_COMPILED if ( vm->compiled ) r = VM_CallCompiled( vm, (int*)&callnum ); else @@ -766,7 +759,7 @@ a.args[i] = va_arg(ap, long); } va_end(ap); -#if defined(HAVE_VM_COMPILED) +#ifndef NO_VM_COMPILED if ( vm->compiled ) r = VM_CallCompiled( vm, &a.callnum ); else @@ -894,13 +887,3 @@ fprintf(f, "%i: %li (%i) = %i %i %i %i\n", callnum, (long)(args - (int *)currentVM->dataBase), args[0], args[1], args[2], args[3], args[4] ); } - - - -#ifdef DLL_ONLY // bk010215 - for DLL_ONLY dedicated servers/builds w/o VM -int VM_CallCompiled( vm_t *vm, int *args ) { - return(0); -} - -void VM_Compile( vm_t *vm, vmHeader_t *header ) {} -#endif // DLL_ONLY Modified: trunk/code/qcommon/vm_x86.c =================================================================== --- trunk/code/qcommon/vm_x86.c 2005-10-28 22:10:39 UTC (rev 193) +++ trunk/code/qcommon/vm_x86.c 2005-10-29 00:23:10 UTC (rev 194) @@ -1106,7 +1106,6 @@ This function is called directly by the generated code ============== */ -#ifndef DLL_ONLY // bk010215 - for DLL_ONLY dedicated servers/builds w/o VM int VM_CallCompiled( vm_t *vm, int *args ) { int stack[1024]; int programCounter; @@ -1206,6 +1205,3 @@ return *(int *)opStack; } -#endif // !DLL_ONLY - - Modified: trunk/code/server/sv_init.c =================================================================== --- trunk/code/server/sv_init.c 2005-10-28 22:10:39 UTC (rev 193) +++ trunk/code/server/sv_init.c 2005-10-29 00:23:10 UTC (rev 194) @@ -590,11 +590,7 @@ // systeminfo Cvar_Get ("sv_cheats", "1", CVAR_SYSTEMINFO | CVAR_ROM ); sv_serverid = Cvar_Get ("sv_serverid", "0", CVAR_SYSTEMINFO | CVAR_ROM ); -#ifndef DLL_ONLY // bk010216 - for DLL-only servers sv_pure = Cvar_Get ("sv_pure", "1", CVAR_SYSTEMINFO ); -#else - sv_pure = Cvar_Get ("sv_pure", "0", CVAR_SYSTEMINFO | CVAR_INIT | CVAR_ROM ); -#endif Cvar_Get ("sv_paks", "", CVAR_SYSTEMINFO | CVAR_ROM ); Cvar_Get ("sv_pakNames", "", CVAR_SYSTEMINFO | CVAR_ROM ); Cvar_Get ("sv_referencedPaks", "", CVAR_SYSTEMINFO | CVAR_ROM ); Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-28 22:10:39 UTC (rev 193) +++ trunk/code/unix/Makefile 2005-10-29 00:23:10 UTC (rev 194) @@ -40,10 +40,6 @@ MOUNT_DIR=.. endif -ifndef BUILD_FREETYPE -BUILD_FREETYPE=0 -endif - ifndef GENERATE_DEPENDENCIES GENERATE_DEPENDENCIES=1 endif @@ -70,7 +66,6 @@ NDIR=$(MOUNT_DIR)/null UIDIR=$(MOUNT_DIR)/ui Q3UIDIR=$(MOUNT_DIR)/q3_ui -#FTDIR=$(MOUNT_DIR)/ft2 JPDIR=$(MOUNT_DIR)/jpeg-6 SPLNDIR=$(MOUNT_DIR)/splines @@ -83,7 +78,6 @@ ############################################################################# ## Defaults -DLL_ONLY=false USE_SDL=true VM_PPC= @@ -115,11 +109,6 @@ BASE_CFLAGS = -pipe -Wall -Wimplicit -Wstrict-prototypes - # rcg010216: DLL_ONLY for PPC - ifeq ($(strip $(DLL_ONLY)),true) - BASE_CFLAGS += -DDLL_ONLY - endif - ifeq ($(strip $(USE_SDL)),true) BASE_CFLAGS += -DUSE_SDL=1 $(shell sdl-config --cflags) GL_CFLAGS = @@ -129,30 +118,29 @@ OPTIMIZE = -O3 -ffast-math -funroll-loops -fomit-frame-pointer \ -fno-strict-aliasing - BASE_CFLAGS += -DHAVE_VM_NATIVE ifeq ($(ARCH),x86_64) OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -falign-loops=2 \ -falign-jumps=2 -falign-functions=2 -fstrength-reduce \ -fno-strict-aliasing -# experimental! you need as -# BASE_CFLAGS += -DHAVE_VM_COMPILED + # comment out below line to enable the + # experimental x86_64 jit compiler! you need as + BASE_CFLAGS += -DNO_VM_COMPILED else ifeq ($(ARCH),i386) OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math \ -falign-loops=2 -falign-jumps=2 -falign-functions=2 \ -fno-strict-aliasing -fstrength-reduce - BASE_CFLAGS += -DHAVE_VM_COMPILED else ifeq ($(ARCH),ppc) - ifneq ($(VM_PPC),) - BASE_CFLAGS += -DHAVE_VM_COMPILED + ifeq ($(VM_PPC),) + BASE_CFLAGS += -DNO_VM_COMPILED endif endif endif endif - DEBUG_CFLAGS = $(BASE_CFLAGS) -g -DNO_MOUSEGRAB -O0 + DEBUG_CFLAGS = $(BASE_CFLAGS) -g -O0 RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE) @@ -163,13 +151,6 @@ THREAD_LDFLAGS=-lpthread LDFLAGS=-ldl -lm - DEBUG_CFLAGS += -DHAVE_EXECINFO_H - ifeq ($(BUILD_FREETYPE),1) - RELEASE_CFLAGS += $(shell pkg-config --cflags freetype2) -DBUILD_FREETYPE - DEBUG_CFLAGS += $(shell pkg-config --cflags freetype2) -DBUILD_FREETYPE - LDFLAGS += $(shell pkg-config --libs freetype2) - endif - ifeq ($(strip $(USE_SDL)),true) GLLDFLAGS=$(shell sdl-config --libs) else @@ -224,10 +205,6 @@ BASE_CFLAGS = -pipe -Wall -Wimplicit -Wstrict-prototypes - ifeq ($(strip $(DLL_ONLY)),true) - BASE_CFLAGS += -DDLL_ONLY - endif - DX_CFLAGS = -I$(DXSDK_DIR)/Include GL_CFLAGS = @@ -235,7 +212,6 @@ OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math -falign-loops=2 \ -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fstrength-reduce - BASE_CFLAGS += -DHAVE_VM_NATIVE -DHAVE_VM_COMPILED DEBUG_CFLAGS=$(BASE_CFLAGS) -g -O0 @@ -250,12 +226,6 @@ LDFLAGS= -mwindows -lwsock32 -lgdi32 -lwinmm -lole32 GLLDFLAGS= - ifeq ($(BUILD_FREETYPE),1) - RELEASE_CFLAGS += $(shell pkg-config --cflags freetype2) -DBUILD_FREETYPE - DEBUG_CFLAGS += $(shell pkg-config --cflags freetype2) -DBUILD_FREETYPE - LDFLAGS += $(shell pkg-config --libs freetype2) - endif - ifeq ($(ARCH),x86) # build 32bit BASE_CFLAGS += -m32 @@ -302,6 +272,7 @@ ifeq ($(ARCH),axp) CC=gcc + BASE_CFLAGS += -DNO_VM_COMPILED RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -ffast-math -funroll-loops \ -fomit-frame-pointer -fexpensive-optimizations else @@ -356,7 +327,7 @@ CC=cc BASE_CFLAGS=-Dstricmp=strcasecmp -Xcpluscomm -woff 1185 -mips3 \ - -nostdinc -I. -I$(ROOT)/usr/include + -nostdinc -I. -I$(ROOT)/usr/include -DNO_VM_COMPILED RELEASE_CFLAGS=$(BASE_CFLAGS) -O3 DEBUG_CFLAGS=$(BASE_CFLAGS) -g @@ -377,7 +348,7 @@ ############################################################################# CC=cc - BASE_CFLAGS= + BASE_CFLAGS=-DNO_VM_COMPILED DEBUG_CFLAGS=$(BASE_CFLAGS) -g RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 @@ -441,7 +412,6 @@ @if [ ! -d $(B)/client ];then mkdir $(B)/client;fi @if [ ! -d $(B)/ded ];then mkdir $(B)/ded;fi @if [ ! -d $(B)/ref ];then mkdir $(B)/ref;fi - @if [ ! -d $(B)/ft2 ];then mkdir $(B)/ft2;fi @if [ ! -d $(B)/baseq3 ];then mkdir $(B)/baseq3;fi @if [ ! -d $(B)/baseq3/cgame ];then mkdir $(B)/baseq3/cgame;fi @if [ ! -d $(B)/baseq3/game ];then mkdir $(B)/baseq3/game;fi @@ -1358,7 +1328,7 @@ $(B)/baseq3/cgame/%.o: $(CGDIR)/%.c $(DO_SHLIB_CC) -$(B)/baseq3/cgame/%.asm: $(CGDIR)/%.c $(Q3LCC) +$(B)/baseq3/cgame/%.asm: $(CGDIR)/%.c $(Q3LCC) $(DO_Q3LCC) $(B)/missionpack/cgame/%.o: $(CGDIR)/%.c Deleted: trunk/code/unix/vm_x86.c =================================================================== --- trunk/code/unix/vm_x86.c 2005-10-28 22:10:39 UTC (rev 193) +++ trunk/code/unix/vm_x86.c 2005-10-29 00:23:10 UTC (rev 194) @@ -1,29 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ - -#include "../qcommon/vm_local.h" - -void VM_Compile( vm_t *vm, vmHeader_t *header ) {} -int VM_CallCompiled( vm_t *vm, int *args ) {} - - - From DONOTREPLY at icculus.org Fri Oct 28 21:02:12 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 28 Oct 2005 21:02:12 -0400 Subject: r195 - trunk/code/unix Message-ID: <20051029010212.2827.qmail@icculus.org> Author: tma Date: 2005-10-28 21:02:12 -0400 (Fri, 28 Oct 2005) New Revision: 195 Modified: trunk/code/unix/Makefile Log: * In hindsight this is probably wise too Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-29 00:23:10 UTC (rev 194) +++ trunk/code/unix/Makefile 2005-10-29 01:02:12 UTC (rev 195) @@ -136,6 +136,8 @@ ifeq ($(VM_PPC),) BASE_CFLAGS += -DNO_VM_COMPILED endif + else + BASE_CFLAGS += -DNO_VM_COMPILED endif endif endif @@ -276,12 +278,16 @@ RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -ffast-math -funroll-loops \ -fomit-frame-pointer -fexpensive-optimizations else + ifeq ($(ARCH),i386) CC=gcc RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -mtune=pentiumpro \ -march=pentium -fomit-frame-pointer -pipe -ffast-math \ -falign-loops=2 -falign-jumps=2 -falign-functions=2 \ -fno-strict-aliasing -fstrength-reduce + else + BASE_CFLAGS += -DNO_VM_COMPILED endif + endif SHLIBEXT=so SHLIBCFLAGS=-fPIC From DONOTREPLY at icculus.org Fri Oct 28 21:53:22 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 28 Oct 2005 21:53:22 -0400 Subject: r196 - in trunk: . code/botlib code/bspc code/cgame code/client code/game code/macosx code/null code/q3_ui code/qcommon code/renderer code/server code/splines code/tools/asm code/ui code/unix code/win32 Message-ID: <20051029015322.6579.qmail@icculus.org> Author: tma Date: 2005-10-28 21:53:09 -0400 (Fri, 28 Oct 2005) New Revision: 196 Added: trunk/ChangeLog trunk/STATUS trunk/TODO Removed: trunk/code/unix/ChangeLog trunk/todo Modified: trunk/code/botlib/aasfile.h trunk/code/botlib/be_aas.h trunk/code/botlib/be_aas_bsp.h trunk/code/botlib/be_aas_bspq3.c trunk/code/botlib/be_aas_cluster.c trunk/code/botlib/be_aas_cluster.h trunk/code/botlib/be_aas_debug.c trunk/code/botlib/be_aas_debug.h trunk/code/botlib/be_aas_def.h trunk/code/botlib/be_aas_entity.c trunk/code/botlib/be_aas_entity.h trunk/code/botlib/be_aas_file.c trunk/code/botlib/be_aas_file.h trunk/code/botlib/be_aas_funcs.h trunk/code/botlib/be_aas_main.c trunk/code/botlib/be_aas_main.h trunk/code/botlib/be_aas_move.c trunk/code/botlib/be_aas_move.h trunk/code/botlib/be_aas_optimize.c trunk/code/botlib/be_aas_optimize.h trunk/code/botlib/be_aas_reach.c trunk/code/botlib/be_aas_reach.h trunk/code/botlib/be_aas_route.c trunk/code/botlib/be_aas_route.h trunk/code/botlib/be_aas_routealt.c trunk/code/botlib/be_aas_routealt.h trunk/code/botlib/be_aas_sample.c trunk/code/botlib/be_aas_sample.h trunk/code/botlib/be_ai_char.c trunk/code/botlib/be_ai_char.h trunk/code/botlib/be_ai_chat.c trunk/code/botlib/be_ai_chat.h trunk/code/botlib/be_ai_gen.c trunk/code/botlib/be_ai_gen.h trunk/code/botlib/be_ai_goal.c trunk/code/botlib/be_ai_goal.h trunk/code/botlib/be_ai_move.c trunk/code/botlib/be_ai_move.h trunk/code/botlib/be_ai_weap.c trunk/code/botlib/be_ai_weap.h trunk/code/botlib/be_ai_weight.c trunk/code/botlib/be_ai_weight.h trunk/code/botlib/be_ea.c trunk/code/botlib/be_ea.h trunk/code/botlib/be_interface.c trunk/code/botlib/be_interface.h trunk/code/botlib/botlib.h trunk/code/botlib/l_crc.c trunk/code/botlib/l_crc.h trunk/code/botlib/l_libvar.c trunk/code/botlib/l_libvar.h trunk/code/botlib/l_log.c trunk/code/botlib/l_log.h trunk/code/botlib/l_memory.c trunk/code/botlib/l_memory.h trunk/code/botlib/l_precomp.c trunk/code/botlib/l_precomp.h trunk/code/botlib/l_script.c trunk/code/botlib/l_script.h trunk/code/botlib/l_struct.c trunk/code/botlib/l_struct.h trunk/code/botlib/l_utils.h trunk/code/bspc/aas_areamerging.c trunk/code/bspc/aas_areamerging.h trunk/code/bspc/aas_cfg.c trunk/code/bspc/aas_cfg.h trunk/code/bspc/aas_create.c trunk/code/bspc/aas_create.h trunk/code/bspc/aas_edgemelting.c trunk/code/bspc/aas_edgemelting.h trunk/code/bspc/aas_facemerging.c trunk/code/bspc/aas_facemerging.h trunk/code/bspc/aas_file.c trunk/code/bspc/aas_file.h trunk/code/bspc/aas_gsubdiv.c trunk/code/bspc/aas_gsubdiv.h trunk/code/bspc/aas_map.c trunk/code/bspc/aas_map.h trunk/code/bspc/aas_prunenodes.c trunk/code/bspc/aas_prunenodes.h trunk/code/bspc/aas_store.c trunk/code/bspc/aas_store.h trunk/code/bspc/aasfile.h trunk/code/bspc/be_aas_bspc.c trunk/code/bspc/be_aas_bspc.h trunk/code/bspc/brushbsp.c trunk/code/bspc/bspc.c trunk/code/bspc/cfgq3.c trunk/code/bspc/csg.c trunk/code/bspc/faces.c trunk/code/bspc/gldraw.c trunk/code/bspc/glfile.c trunk/code/bspc/l_bsp_ent.c trunk/code/bspc/l_bsp_ent.h trunk/code/bspc/l_bsp_hl.c trunk/code/bspc/l_bsp_hl.h trunk/code/bspc/l_bsp_q1.c trunk/code/bspc/l_bsp_q1.h trunk/code/bspc/l_bsp_q2.c trunk/code/bspc/l_bsp_q2.h trunk/code/bspc/l_bsp_q3.c trunk/code/bspc/l_bsp_q3.h trunk/code/bspc/l_bsp_sin.c trunk/code/bspc/l_bsp_sin.h trunk/code/bspc/l_cmd.c trunk/code/bspc/l_cmd.h trunk/code/bspc/l_log.c trunk/code/bspc/l_log.h trunk/code/bspc/l_math.c trunk/code/bspc/l_math.h trunk/code/bspc/l_mem.c trunk/code/bspc/l_mem.h trunk/code/bspc/l_poly.c trunk/code/bspc/l_poly.h trunk/code/bspc/l_qfiles.c trunk/code/bspc/l_qfiles.h trunk/code/bspc/l_threads.c trunk/code/bspc/l_threads.h trunk/code/bspc/l_utils.c trunk/code/bspc/l_utils.h trunk/code/bspc/leakfile.c trunk/code/bspc/map.c trunk/code/bspc/map_hl.c trunk/code/bspc/map_q1.c trunk/code/bspc/map_q2.c trunk/code/bspc/map_q3.c trunk/code/bspc/map_sin.c trunk/code/bspc/nodraw.c trunk/code/bspc/portals.c trunk/code/bspc/prtfile.c trunk/code/bspc/q2files.h trunk/code/bspc/q3files.h trunk/code/bspc/qbsp.h trunk/code/bspc/qfiles.h trunk/code/bspc/sinfiles.h trunk/code/bspc/tetrahedron.c trunk/code/bspc/tetrahedron.h trunk/code/bspc/textures.c trunk/code/bspc/tree.c trunk/code/bspc/writebsp.c trunk/code/cgame/cg_consolecmds.c trunk/code/cgame/cg_draw.c trunk/code/cgame/cg_drawtools.c trunk/code/cgame/cg_effects.c trunk/code/cgame/cg_ents.c trunk/code/cgame/cg_event.c trunk/code/cgame/cg_info.c trunk/code/cgame/cg_local.h trunk/code/cgame/cg_localents.c trunk/code/cgame/cg_main.c trunk/code/cgame/cg_marks.c trunk/code/cgame/cg_newdraw.c trunk/code/cgame/cg_particles.c trunk/code/cgame/cg_players.c trunk/code/cgame/cg_playerstate.c trunk/code/cgame/cg_predict.c trunk/code/cgame/cg_public.h trunk/code/cgame/cg_scoreboard.c trunk/code/cgame/cg_servercmds.c trunk/code/cgame/cg_snapshot.c trunk/code/cgame/cg_syscalls.c trunk/code/cgame/cg_view.c trunk/code/cgame/cg_weapons.c trunk/code/client/cl_cgame.c trunk/code/client/cl_cin.c trunk/code/client/cl_console.c trunk/code/client/cl_input.c trunk/code/client/cl_keys.c trunk/code/client/cl_main.c trunk/code/client/cl_net_chan.c trunk/code/client/cl_parse.c trunk/code/client/cl_scrn.c trunk/code/client/cl_ui.c trunk/code/client/client.h trunk/code/client/keycodes.h trunk/code/client/keys.h trunk/code/client/snd_dma.c trunk/code/client/snd_local.h trunk/code/client/snd_mem.c trunk/code/client/snd_mix.c trunk/code/client/snd_public.h trunk/code/client/snd_wavelet.c trunk/code/game/ai_chat.c trunk/code/game/ai_chat.h trunk/code/game/ai_cmd.c trunk/code/game/ai_cmd.h trunk/code/game/ai_dmnet.c trunk/code/game/ai_dmnet.h trunk/code/game/ai_dmq3.c trunk/code/game/ai_dmq3.h trunk/code/game/ai_main.c trunk/code/game/ai_main.h trunk/code/game/ai_team.c trunk/code/game/ai_team.h trunk/code/game/ai_vcmd.c trunk/code/game/ai_vcmd.h trunk/code/game/bg_lib.h trunk/code/game/bg_local.h trunk/code/game/bg_misc.c trunk/code/game/bg_pmove.c trunk/code/game/bg_public.h trunk/code/game/bg_slidemove.c trunk/code/game/chars.h trunk/code/game/g_active.c trunk/code/game/g_arenas.c trunk/code/game/g_bot.c trunk/code/game/g_client.c trunk/code/game/g_cmds.c trunk/code/game/g_combat.c trunk/code/game/g_items.c trunk/code/game/g_local.h trunk/code/game/g_main.c trunk/code/game/g_mem.c trunk/code/game/g_misc.c trunk/code/game/g_missile.c trunk/code/game/g_mover.c trunk/code/game/g_public.h trunk/code/game/g_rankings.c trunk/code/game/g_rankings.h trunk/code/game/g_session.c trunk/code/game/g_spawn.c trunk/code/game/g_svcmds.c trunk/code/game/g_syscalls.c trunk/code/game/g_target.c trunk/code/game/g_team.c trunk/code/game/g_team.h trunk/code/game/g_trigger.c trunk/code/game/g_utils.c trunk/code/game/g_weapon.c trunk/code/game/inv.h trunk/code/game/match.h trunk/code/game/syn.h trunk/code/macosx/CGMouseDeltaFix.h trunk/code/macosx/CGMouseDeltaFix.m trunk/code/macosx/CGPrivateAPI.h trunk/code/macosx/Q3Controller.h trunk/code/macosx/Q3Controller.m trunk/code/macosx/macosx_common.c trunk/code/macosx/macosx_display.h trunk/code/macosx/macosx_display.m trunk/code/macosx/macosx_glimp.h trunk/code/macosx/macosx_glimp.m trunk/code/macosx/macosx_glsmp_mutex.m trunk/code/macosx/macosx_glsmp_null.m trunk/code/macosx/macosx_glsmp_ports.m trunk/code/macosx/macosx_input.m trunk/code/macosx/macosx_local.h trunk/code/macosx/macosx_qgl.h trunk/code/macosx/macosx_sndcore.m trunk/code/macosx/macosx_snddma.m trunk/code/macosx/macosx_sys.m trunk/code/macosx/macosx_timers.h trunk/code/macosx/macosx_timers.m trunk/code/null/mac_net.c trunk/code/null/null_client.c trunk/code/null/null_glimp.c trunk/code/null/null_input.c trunk/code/null/null_main.c trunk/code/null/null_net.c trunk/code/null/null_snddma.c trunk/code/q3_ui/ui_addbots.c trunk/code/q3_ui/ui_atoms.c trunk/code/q3_ui/ui_cdkey.c trunk/code/q3_ui/ui_cinematics.c trunk/code/q3_ui/ui_confirm.c trunk/code/q3_ui/ui_connect.c trunk/code/q3_ui/ui_controls2.c trunk/code/q3_ui/ui_credits.c trunk/code/q3_ui/ui_demo2.c trunk/code/q3_ui/ui_display.c trunk/code/q3_ui/ui_gameinfo.c trunk/code/q3_ui/ui_ingame.c trunk/code/q3_ui/ui_loadconfig.c trunk/code/q3_ui/ui_local.h trunk/code/q3_ui/ui_login.c trunk/code/q3_ui/ui_main.c trunk/code/q3_ui/ui_menu.c trunk/code/q3_ui/ui_mfield.c trunk/code/q3_ui/ui_mods.c trunk/code/q3_ui/ui_network.c trunk/code/q3_ui/ui_options.c trunk/code/q3_ui/ui_playermodel.c trunk/code/q3_ui/ui_players.c trunk/code/q3_ui/ui_playersettings.c trunk/code/q3_ui/ui_preferences.c trunk/code/q3_ui/ui_qmenu.c trunk/code/q3_ui/ui_rankings.c trunk/code/q3_ui/ui_rankstatus.c trunk/code/q3_ui/ui_removebots.c trunk/code/q3_ui/ui_saveconfig.c trunk/code/q3_ui/ui_serverinfo.c trunk/code/q3_ui/ui_servers2.c trunk/code/q3_ui/ui_setup.c trunk/code/q3_ui/ui_signup.c trunk/code/q3_ui/ui_sound.c trunk/code/q3_ui/ui_sparena.c trunk/code/q3_ui/ui_specifyleague.c trunk/code/q3_ui/ui_specifyserver.c trunk/code/q3_ui/ui_splevel.c trunk/code/q3_ui/ui_sppostgame.c trunk/code/q3_ui/ui_spreset.c trunk/code/q3_ui/ui_spskill.c trunk/code/q3_ui/ui_startserver.c trunk/code/q3_ui/ui_team.c trunk/code/q3_ui/ui_teamorders.c trunk/code/q3_ui/ui_video.c trunk/code/qcommon/cm_load.c trunk/code/qcommon/cm_local.h trunk/code/qcommon/cm_patch.c trunk/code/qcommon/cm_patch.h trunk/code/qcommon/cm_polylib.c trunk/code/qcommon/cm_polylib.h trunk/code/qcommon/cm_public.h trunk/code/qcommon/cm_test.c trunk/code/qcommon/cm_trace.c trunk/code/qcommon/cmd.c trunk/code/qcommon/common.c trunk/code/qcommon/cvar.c trunk/code/qcommon/files.c trunk/code/qcommon/huffman.c trunk/code/qcommon/msg.c trunk/code/qcommon/net_chan.c trunk/code/qcommon/q_math.c trunk/code/qcommon/q_shared.c trunk/code/qcommon/q_shared.h trunk/code/qcommon/qcommon.h trunk/code/qcommon/qfiles.h trunk/code/qcommon/surfaceflags.h trunk/code/qcommon/unzip.h trunk/code/qcommon/vm.c trunk/code/qcommon/vm_interpreted.c trunk/code/qcommon/vm_local.h trunk/code/qcommon/vm_ppc.c trunk/code/qcommon/vm_ppc_new.c trunk/code/qcommon/vm_x86.c trunk/code/qcommon/vm_x86_64.c trunk/code/renderer/qgl.h trunk/code/renderer/qgl_linked.h trunk/code/renderer/tr_animation.c trunk/code/renderer/tr_backend.c trunk/code/renderer/tr_bsp.c trunk/code/renderer/tr_cmds.c trunk/code/renderer/tr_curve.c trunk/code/renderer/tr_flares.c trunk/code/renderer/tr_font.c trunk/code/renderer/tr_image.c trunk/code/renderer/tr_init.c trunk/code/renderer/tr_light.c trunk/code/renderer/tr_local.h trunk/code/renderer/tr_main.c trunk/code/renderer/tr_marks.c trunk/code/renderer/tr_mesh.c trunk/code/renderer/tr_model.c trunk/code/renderer/tr_noise.c trunk/code/renderer/tr_public.h trunk/code/renderer/tr_scene.c trunk/code/renderer/tr_shade.c trunk/code/renderer/tr_shade_calc.c trunk/code/renderer/tr_shader.c trunk/code/renderer/tr_shadows.c trunk/code/renderer/tr_sky.c trunk/code/renderer/tr_surface.c trunk/code/renderer/tr_types.h trunk/code/renderer/tr_world.c trunk/code/server/server.h trunk/code/server/sv_bot.c trunk/code/server/sv_ccmds.c trunk/code/server/sv_client.c trunk/code/server/sv_game.c trunk/code/server/sv_init.c trunk/code/server/sv_main.c trunk/code/server/sv_net_chan.c trunk/code/server/sv_rankings.c trunk/code/server/sv_snapshot.c trunk/code/server/sv_world.c trunk/code/splines/math_angles.h trunk/code/splines/math_matrix.h trunk/code/splines/math_quaternion.h trunk/code/splines/math_vector.h trunk/code/splines/q_shared.h trunk/code/splines/splines.h trunk/code/splines/util_list.h trunk/code/splines/util_str.h trunk/code/tools/asm/cmdlib.c trunk/code/tools/asm/cmdlib.h trunk/code/tools/asm/mathlib.h trunk/code/tools/asm/opstrings.h trunk/code/tools/asm/q3asm.c trunk/code/ui/ui_atoms.c trunk/code/ui/ui_gameinfo.c trunk/code/ui/ui_local.h trunk/code/ui/ui_main.c trunk/code/ui/ui_players.c trunk/code/ui/ui_public.h trunk/code/ui/ui_shared.c trunk/code/ui/ui_shared.h trunk/code/ui/ui_syscalls.c trunk/code/unix/linux_common.c trunk/code/unix/linux_glimp.c trunk/code/unix/linux_joystick.c trunk/code/unix/linux_local.h trunk/code/unix/linux_qgl.c trunk/code/unix/linux_signals.c trunk/code/unix/linux_snd.c trunk/code/unix/qasm.h trunk/code/unix/sdl_glimp.c trunk/code/unix/sdl_snd.c trunk/code/unix/unix_glw.h trunk/code/unix/unix_main.c trunk/code/unix/unix_net.c trunk/code/unix/unix_shared.c trunk/code/win32/glw_win.h trunk/code/win32/resource.h trunk/code/win32/win_gamma.c trunk/code/win32/win_glimp.c trunk/code/win32/win_input.c trunk/code/win32/win_local.h trunk/code/win32/win_main.c trunk/code/win32/win_net.c trunk/code/win32/win_qgl.c trunk/code/win32/win_shared.c trunk/code/win32/win_snd.c trunk/code/win32/win_syscon.c trunk/code/win32/win_wndproc.c Log: * Added STATUS * Updated TODO * Moved ChangeLog to root * Updated ChangeLog * s/Foobar/Quake III Arena Source Code/ * Biggest patch EVAR. I wonder how many mail boxes this will fill... Copied: trunk/ChangeLog (from rev 189, trunk/code/unix/ChangeLog) =================================================================== --- trunk/code/unix/ChangeLog 2005-10-27 21:49:36 UTC (rev 189) +++ trunk/ChangeLog 2005-10-29 01:53:09 UTC (rev 196) @@ -0,0 +1,3002 @@ +2005-10-29 Various contributors + + nasm syntax asm ported to gas + + Disabled-by-default MD4 support + + cons build system removed + + Better FreeBSD support + + Makefile generates dependencies + + Some SDL sound tweaks + + qvm build tools and qvms are now built with the rest of the binaries + + q3asm-turbo from Phaethon + + Moved various displaced c and h files into more appropriate places + + A shitload (can I say shit?) of bug fixes -- see the svn log for details + +2005-09-22 Tim Angus + + MinGW port + +2005-09-?? + + SDL Stuff (icculus) + + x86_64 (ludwig von angstenheimer) + + patches from a cast of thousands + +2004-05-22 Timothee Besset + + updated the xcode project from Apple's version + now with the latest vm_ppc code + +2004-05-21 Timothee Besset + + fixed the Linux build to compile again on sid (glext.h and gcc3 warnings) + + 2 weeks ago, hacked up the source to compile on panther / xcode 1.1 + several cleanups were needed, and VM support seems broke (hangs or crashes) + + got altivec optimisations from Apple (Kenneth Dyke) + merged back in + + looks like with the new code merge the VM support is back in and working + +2003-09-15 Timothee Besset + + import Q3 java master code, cleanups on monster + +2003-08-31 Timothee Besset + + loki_setup hell + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=626 + http://zerowing.idsoftware.com/linux/q3a/index.html#glibc + text mode installer in loki_setup image built on Mandrake 7.2 crashes on + some glibc 2.3 systems such as RH9 etc. need to move to a different + version of the installer, and update old installers to keep them still + 'installing' moving to build the setup binaries on Debian Woody systems + (glibc 2.2, text mode installer will no longer work on 2.1 systems) hacked + together a new setup, using setup tree from RTCW. would need a complete + revamp if a new full setup with new binaries is needed + +2003-07-17 Timothee Besset + + new cvsreport, testing per-module config + +2003-01-19 Timothee Besset + + building on both gcc 2.x and 3.x + added conf modules to check gcc version + ccache support + +2003-01-13 Timothee Besset + + tweaking around for gcc 3.x build + edit Conscript to change the compiler + +2002-12-16 Timothee Besset + + added pbEmit class to auth code, emit CD keys to local PB master + +2002-11-14 Timothee Besset + + up to latest makeself.sh + + add both quake3.x86 and quake3-smp.x86 to setup + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=573 + console setup crash / glibc 2.3 (Debian Sid) + investigated, put together a workaround + +2002-11-5 Timothee Besset + + Linux building both smp and non-smp again. Will have to put both in setup + + added in_subframe to toggle X subframe event handling + + reworked the timing code to be more reliable + + cleaned up dgamouse/in_mouse code, removed unnecessary dgamouse var + + made the mouse grabbing an in_nograb cvar, no longer a compile time option + in_nograb 1 force in_dgamouse 0 and r_fullscreen 0 (any of those two will b0rk) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=565 + mouse issues on Suze 8.1 - related to subframe event timing + added code chunk to detect broken X timing and disable subframe + + tweaked the subframe/X bug workaround to be less paranoid + +2002-10-28 Timothee Besset + + no longer blocking demo recording if g_synchronous clients != 0 + only sending out a warning (everyone does g_sync 1 ; record ; g_sync 0) + +2002-10-21 Timothee Besset + + building final mod sdk setups (added lcc bins, added link to q3asm-turbo in readme) + +2002-10-8 Timothee Besset + + quickfix cl_maxpackets > 125 brings back to 100 + +1.32 release --- + +2002-10-7 Timothee Besset + + made the 'demo' command case-insensitive on extension match (it was confused by demo FOUR.DM_68) + + mouse wheel scrolling with in_mouse 1 + window mode was not working, fixed (DI didn't catch) + + removing on-the-fly pk3 build from Linux setup, using the finalized ones now + added 'pk3' option to cons for toggle of pk3 building + +2002-10-5 Timothee Besset + + updated win32 mod sdk (in win32/mod-sdk-setup) + added q3asm and lcc source + updated the .bat to build VMs + +2002-10-3 Timothee Besset + + linux mod sdk, wrote the bulk of the scripts + +2002-9-30 Timothee Besset + + ATVI Quake 3 1.32 Patch #9 + rolling back to the way it was before, leaving 1v1 force vote exploit, the fix was worse than the bug + from comment on bug #9 in tracker: + + actually the fix is worse than the original bug + + after the fix, voting when you are alone on the server was no longer working + it was kinda intended in the fix, that you would have to be at least two to pass a vote .. but + it is an oversight. + + calling a vote in a 1v1 game against a bot fails immediately + (calling a vote in any situation where there's only 1 live player fails) + + Say a server's running some lame custom map that you have but a friend doesn't. You can't go + on the server and change it to the map you want to play, so he ends up having to auto-dl it at + 8K a second just so you can switch from it. + + This particular 2 clients, vote / quit exploit would involve too many changes to fix properly. + I am reverting back to the old version, and leaving as WNF + +2002-9-29 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=50 + added Wheel support to the DirectInput code IN_DIMouse (in_mouse 1) + tweaked the Wheel mouse reading for in_mouse -1 (old win32 input code) + handle correctly when zDelta is > 120 + provide a in_logitechbug cvar to handle buggy Logitech MouseWare driver sending wheel events twice + +2002-9-26 Timothee Besset + + ATVI Quake 3 1.32 Patch #38 + adding trap_SetPbClStatus, reliably checks for PB presence before enabling PB in UI + +2002-9-25 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=551 + SVF_CLIENTMASK, fixed a typo + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=555 + pushed cl_maxpackets upper limit to 125 (from 100) per CPMA Arqon's request + +2002-9-24 Timothee Besset + + ATVI Quake 3 1.32 Patch #33 + PB reporting sv_paused cvar hacked, fixed SV_CheckPaused to use a Cvar_Set + + ATVI Quake 3 1.32 Patch #24 + added [skipnotify] from RTCW, use to display in the console only, but not on client screen + (also fixes pb_msgprefix and pb_sv_msgprefix) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=553 + using correct error message if listen server starting as cl_punkbuster 0 sv_punkbuster 1 + + ATVI Quake 3 1.32 Patch #35 + text auto wrap in UI code was eating the last word if it was wrapping + fixed in Q3 and TA UI (this bug could have affected the server print message also) + + some updates to the win32 cons post-build process + +2002-9-21 Timothee Besset + + adding bspc cons build script + +2002-9-19 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=552 + disconnect reason is transmitted in the disconnect command and processed into com_errorMessage + (similar to RTCW behaviour) + added UI for com_errorMessage cvar in baseq3/, if client is kicked/dropped/disconnected for whatever reason + (this is already functional in TA) + + ATVI Quake 3 1.32 Patch #9 + failing vote if there's only one voting client (fixes exploit on 2-player server where one player votes then disconnects, forcing vote to pass) + + ATVI Quake 3 1.32 Patch #5 + removed the userInfoChanged message (was a debugging leftover) + + ATVI Quake 3 1.32 Patch #18 + rcon was not properly fixed yet, this only showed up for PB commands + changed the rcon parsing again to be more reliable + +2002-9-18 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=549 + the demo command has a list of compatible protocols, it will loop through 66 67 68 + you can do '/demo four' and it will try four.dm_66 four.dm_67 four.dm_68 + or you can explicitely give a '/demo demoname.dm_??' + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=551 + added SVF_CLIENTMASK (0x00000002), works only with <= 32 players + set bitmask of players to which send entity + +2002-9-17 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=550 + rcon bug fix + + some scons updates for win32 (post build) + + 1.32rc2 + +2002-9-06 Timothee Besset + + updated completely the setup system: + fixed cons stuff to build setup with cons -- release setup + working from new setup codebase with some custom patches: + https://bugzilla.icculus.org/show_bug.cgi?id=52 + https://bugzilla.icculus.org/show_bug.cgi?id=53 + checked that BSD support was still in (brandelfing and symlinks) .. will have to get tester feedback + bumped version to 1.32rc1 + TODO: update the windows .VCT (standalone setup and auto-update) + +2002-9-04 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=543 + backport from RTCW 1.4 code + rcon commands where sent after being tokenized and rebuilt + that was breaking any quoting, for instance 'rcon g_motd "hooka pooka"' + added Cmd_Cmd() to retrieve the un-tokenized command and transmit as is on both ends + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=542 + b0rked text wrapping in connect screen + was a missing sizeScale in q3_ui/, and a bad param in ui/ + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=540 + backport fix to pk3 reordering, happens when clearing the references, bad order from connection may break stuff + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=527 + TA ui/, quickfix to netSource (mod stuff, doesn't affect TA) + + cleaned up broken old DO_WIN32 stuff in cons scripts + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=526 + typo in models2.shader + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=443 + Linux client: sub-frame timing of key/mouse events + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=453 + added mousewheel support: wheel to scroll, ctrl+wheel to scroll faster, shift+wheel to scroll history + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=545 + bumped server count to 4096 + + keep around: __asm__ __volatile__ ("int $0x03"); + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=516 + moved screenshots to backend with a new RC_SCREENSHOT render command + fixes the r_smp 1 garbled screenshots + +2002-8-29 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=539 + new VM code from Raven's Sof2 + + cons / qvmtools build system fixes + + had to get a new qe3.ico again (resource compiler error) + http://vasin.hypermart.net/eei.htm + + updated, basic testing on win32, merging back in trunk + + merged bug-539 branch back into trunk, officialize the new VM code + +2002-8-26 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=472 + linux client: handle ctrl+space situations (could leave space locked on + space not working with ctrl on) + + update the build system, build q3lcc and q3asm etc. on demand + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=62 + fixed invisible players/entities + +2002-8-23 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=536 + fixing donedl being ignored after autodl if map_restart'ed (propagate from RTCW) + ignoring multiple map_restart (propagated from RTCW) + + reworked the server 'client text ignored' message to only trigger when there's actually a message that doesn't get to the game VM + +2002-8-18 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=528 + ydnar: reorg bits in the drawsurf sort index, push MAX_SHADERS to 2^12 + + commented out some debug stuff in java auth server + + added FAQ item with Linux & BSD patch to handle broadcast on multiple interfaces + +2002-8-15 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=534 + fixing rcon being broken on NT/XP with > 23 days uptime (or so) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=525 + changed the rcon buffer size to avoid overflows and dropping part of the message + +2002-8-14 Timothee Besset + + hacked in some experimental win32 stuff to the cons files + (win32 recognition and pk3 installs .. very very experimental but I needed it for win32 dev) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=521 + ui/ and q3_ui/ : added text auto wrapping in the connection screen drawing (server message) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=531 + removed the MPlayer stuff from the server browsers + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=505 + enabled back the ignore if protocol is != (fixes Wolf servers showing in browser) + +2002-8-10 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=500 + propagated IP banning fix from RTCW + +2002-8-08 Timothee Besset + + propagate additional sv_lanForceRate fix from RTCW + +2002-8-07 Timothee Besset + + added trap_FS_Seek + +2002-8-05 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=50 + fixed the DI mouse init procedure + +2002-8-05 Timothee Besset + + removed sv_allowanonymous, was dummy and polluting the serverinfo + (sv_allowanonymous was designed to flag wether server was public or not, but that's replaced by g_needpass) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=514 + sv_strictAuth (default 1): server variable to control wether strict CDKEY auth should be performed + this is required if you want reliable cl_guid on the server + extended the getIpAuthorize (server->auth message) syntax + sending the fs_game at all times (default 'baseq3'), dummy sv_allowAnonymous 0, strict auth flag + NOTE: 1.31 server on baseq3 sends a getIpAuthorize packet like: + processing packet: getIpAuthorize -1230824753 217.128.77.195 0 + the auth server will mistakenly read fs_game as '0' + + TAGGED the master / auth source as pre-1_32 + will need to go back to this to comment out all my debugging crap + +2002-8-04 Timothee Besset + + cleaned master server stuff, client was prompting master.quake3arena.com, + server was sending heartbeats to master3.idsoftware.com + both point to 192.246.40.56, unified to master.quake3arena.com + the MPlayer master, master.quake3world.com doesn't exist anymore, switched it to master.quake3arena.com + +2002-8-02 Timothee Besset + + added auth server source, reorganized + + auth server name / master key optionally set on command line for master and auth servers + + auth and master config in build system + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=524 + changed default GL driver from libGL.so to libGL.so.1 + see LSB 1.2 spec: http://www.linuxbase.org/spec/refspecs/LSB_1.2.0/gLSB/libgl.html + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=480 + applying the 'no cp command' experimental fix for beta phase + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=462 + backported from RTCW, fix to packet fragmenting emission + FIXME: there is some verbose code that we have to take out in the final version (grep for #462) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=475 + backported from RTCW, don't get dropped if the server changes map while connecting (ignore outdated cp) + + PROTOCOL BUMPED TO 68 + +2002-8-01 Timothee Besset + + Linux: dedicated build was not setting up signal handler like the full client does + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=522 + SplashDamage bugfix, now clearing client gentity before GAME_INIT call (instead of after) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=498 + fixed NET_AdrToString to print the port as unsigned int (for ports > 1^^15, was showing negative) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=501 + maintain IP in userinfo sent to game + + checking in master server source + +2002-7-31 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=513 + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=506 + porting fix from RTCW codebase. client re-orders it's pk3s to scan in the same order than the server + this eliminates several 'Invalid .PK3 file referenced' situations (caused by client not referencing the same thing as server) + + fixed border remnants in ta ui + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=517 + ERR_DROP if PB client off / server on conflict when starting local server + + quickfix to q3 ui / punkbuster detect in server browser + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=458 + code fix, no more taunt spam + + cons install of PB .so files + + correct MOD_KAMIKAZE and MOD_JUICED in TA games.log + +2002-7-29 Timothee Besset + + q3 ui: completed confirmation prompts and messages (added UI_ConfirmMenu_Style & UI_Message) + + ta ui: backported 'conditionalopen' from RTCW (conditionalopen ) + + ta ui: confirmation prompt for punkbuster enable/disable etc. + + added the win32 DLLs to pb/win32/ + +2002-7-28 Timothee Besset + + ta ui: sv_punkbuster in StartServer menu + + ta ui: added cl_punkbuster in server browser + + view filters are in a modal dialog + + new files: filter.menu menus.txt (pak3.pk3 updated) + + fix broken link in Linux FAQ + +2002-7-27 Timothee Besset + + ta ui: PB display in the browser, in it's additional tab, with sorting + +2002-7-26 Timothee Besset + + PB UI: for baseq3/ AND missionpack/ + q3_ui: Punkbuster: Enable/Disable in server broswer (cl_punkbuster) + q3_ui: PB logo, PB Yes/No in browser (TODO: validate this to be working) + q3_ui: added sv_punkbuster toggle in start server menu + + automated building of the new PK3s, unix/Conscript-pk3 + +2002-7-25 Timothee Besset + + added PB build scripts on Linux, fixed the Linux build + +2002-7-12 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=511 + fixing re.SetColor crash for widescreen displays (q3dm11) + was calling to the renderer while not registered + +2002-6-19 Timothee Besset + + r_roundImagesDown 0 + map q3dm16 -> tr_image.c ResampleTexture crash + buffer overflow because of resample to 2048x.. + xian_q3dm12_leftwall4fin.jpg 1152x384 + bumped one buffer byte p1[1024] -> byte p1[2048], added a safe check + +2002-6-14 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=493 + propagate a renderer fix from RTCW. fixes a one-frame visual glitch when mod code + registers a shader after drawsurfaces are generated but before the frame is rendered + +2002-6-12 Timothee Besset + + added cons and pcons to unix/, updated the build script + +2002-5-24 Timothee Besset + towards a new Q3 release? + some bug fixes require protocol change, or mod code/mod interface change to be fixed properly + this is a biz decision, dunno yet if we are going to want a new protocol (probably not) + -> have to create a branch for the 1.31b, i.e. backwards compatible with 1.31 'Stable-1_31' + and put the 1.32 specific / protocol changes on trunk + no telling what will go in SOS in the end .. probably 1.32 + +2002-5-5 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=491 + adding a sv_lanForceRate (defaults to 1) to turn on/off server forcing rate of LAN clients + (only affects LAN dedicated clients - dedicated 1, default behaviour forces LAN clients to 99999 rate) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=470 + fixing potential overflows with cl_cdkey (propagated from RTCW) + + cons-based build system (imported from Wolf, was partly written for mod tools release already) + building with SMP on by default + + better #ifdef SMP handling ('disabled at compile time' message) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=494 + Q_vsnprintf for vsprintf calls in the core + not putting this in game code as we'd need a vsnprintf implementation in bg_lib.c + +2002-4-5 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=462 + taking out the fix which was found broken and incomplete + +2002-8-4 Timothee Besset + + adding NO_MOUSEGRAB define (select in the Makefile) + +2002-2-4 Timothee Besset + + applying Gareth's SMP patch + + count number of CPUs (Sys_ProcessorCount in unix_shared.c), default r_smp appropriately + + bumping version to 1.32 + + if XInitThreads fails, set r_smp to zero + +2002-28-2 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=462 + send potential remaining fragmented packets before sending a gamestate + +2002-26-2 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=455 + removed old libMesaVoodooGL.so loading code + Voodoo cards should use XF4/DRI, that load code was outdated and confusing people with broken OpenGL + +2002-16-1 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=441 + adding brandelf calls to the setup building process so that our binaries run on BSD + +2002-1-1 Timothee Besset + + updated FAQ with BSD info (bug #441) + + FAQ update on CLIENT_UNKNOWN_TO_AUTH + + FAQ update for proper strace usage + +2001-12-12 Timothee Besset + + Q3 1.31 point release + updating build_setup.sh to new pk3 files + (baseq3/pak7.pk3 missionpack/pak2.pk3) + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=395 + adding quake3.xpm icon, and modified the setup accordingly to put symlinks + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=390 + ignoring SIGTTIN SIGTTOU + +2001-06-12 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=402 + bug with full scene + +2001-04-12 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=398 + cg_bobup cheat protect + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=399 + fixed Setup > System > Driver info crash + + checked in code/spank.sh script, perform checksuming + +2001-18-09 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=371 + propagating sound code fixes from Wolf to Q3 + +2001-11-08 Timothee Besset + + setup script was still broken, damn shell expansion + the exit code for Q3 was always zero instead of $? + propagating the fix to Wolf + +2001-11-04 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=382 + modified challenge code for motd to be truly random + +2001-10-31 Timothee Besset + Moved updated q3asm and lcc source at the toplevel, MissionPack/q3asm + and MissionPack/lcc + +2001-10-29 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=381 + build system is now functional + +2001-10-21 Timothee Besset + + updated Sys_LoadDll code on linux to search in the following order: + #1 current directory + #2 fs_homepath + #3 fs_basepath + this was needed to make mod developement easier + +2001-10-09 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=51 + the code to buffer the redirection was in there but disabled? (Com_Printf) + enabled it back + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=52 + connection issues / userinfo + client side fix, instead of sending 'connect ' packet + we now send 'connect ""' + +2001-10-08 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=371 + added a PROT_READ to the mmap call + this was needed to go around a bug in glibc i586 i686, memset doing read access + since the audio_fd is opened O_RDWD this is harmless to Q3 + +2001-10-07 Timothee Besset + + updating from SOS + S_WriteLinearBlastStereo16 C/asm is back in snd_mix.c (Graeme) + r_showtris r_shownormal cheat protections + + Sys_LoadDll changes: + removing -debug search when loading native dlls + changing the fatal aborts when not finding native from release only to debug only (was a misfeature) + used to search in cd_path which is bogus, now searching in pwd if basepath fails + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=275 + fixed r_fullbright not being cheat protected / was a CVAR_LATCHED|CVAR_CHEAT issue + +2001-09-06 Timothee Besset + + updated from SOS, some changes to qcommon/unzip.c (statics) + +2001-08-27 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=3 + Added some code in CL_InitDownloads to use FS_ComparePaks and print out information about server-referenced paks that are missing on the client. It is a first step, allows to get precise information about what can cause a connection to fail (typically when the user is sent back to the main screen). + +2001-08-22 Timothee Besset + + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=86 + fixed sound bug (with Graeme hints) + +2001-08-20 Timothee Besset + + made sure Sys_Printf doesn't get into an endless loop if logfile is on + fixed qconsole.log issues, +set logfile 1 +set fs_debug 1 was crashing (any OS) + fixed logfile 1 / ttycon 1 issue, didn't exit properly (same endless looping) + also fixes an issue reported by q3f team + + changed rcon commands from Com_DPrintf to Com_Printf so that they show up in the console + (with IP information) + +2001-08-19 Timothee Besset + + fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=91 + (autodownload toggle in q3 ui) + + fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=76 + g_password issue + + fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=93 + cheat protecting r_lodCurveError + + wontfix https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=92 + +2001-08-18 Timothee Besset + + more fixes to the 7-button mouse code (linux only) + + updated faq about gamma slider + + added "servers don't show up in ingame browser" to faq + + added Alt+Enter toggle for fullscreen/windowed (linux) + +2001-08-16 Timothee Besset + reconfiguring CVS repository to give access to Gareth + + testin gareth's access + +2001-08-03 Timothee Besset + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=85 + fixes in the setup code for older bash versions + +2001-08-02 Timothee Besset + * commented out assembly implementation of S_WriteLinearBlastStereo16, using modified C implementation from Zaphod + need to check performance: https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=88 + * finished const declarations in CG_Trace calls, was needed in pmove_t declaration and some other functions + cgame/cg_local.h : CG_trace trap_CM_BoxTrace + game/bg_public.h : using const in pmove_t trace functions prototypes + (fixes gcc warnings: assignment from incompatible pointer type) + +2001-07-26 Timothee Besset + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=78 + mapped K_MOUSE4 K_MOUSE5 + +2001-07-23 Timothee Besset + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=5 + more fixes, handling meta characters and various kinds of backspace + +2001-07-22 Timothee Besset + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=5 + after testing feedback, fixed more stuff: + better backspace, works with putty and potentially more terminals + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=51 + band aid fix to rcon status, incresed MAX_PUSHED_EVENTS from 256 to 1024 + (adds 28kb of mem requirements) + +2001-07-21 Timothee Besset + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=2 + using XF86 Gamma extension to set the gamma in game from the menus + (previous behaviour was to set /r_gamma and restart, renderer relying on s_gammatable) + restoring initial gamma on GLimp_ShutDown + +2001-07-19 Timothee Besset + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=5 + first usable version of dedicated console + added history and completion functionality + ready for some testing + still some TODOs and FIXMEs: + keep the currently edited line when going back from history exploration + edit the current line with cursor, insert mode etc. + +2001-07-18 Timothee Besset + * starting TAB completion and history for the dedicated server (tty console) + removed Sys_ConsoleOutput (unused) + removing bogus nostdout variable + cleanup of a big chunk of code that Bernd commented out and scheduled for deletion + moved completion code from client/cl_keys.c stuff into qcommon/common.c, Field_CompleteCommand(field_t*) + +2001-07-13 Timothee Besset + * fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=8 + screenshots overwrites + * fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=31 + DOUBLE SIGNAL FAULT + +2001-07-11 Timothee Besset + * fix for french keybards / console toggle / bound to XK_twosuperior + +2001-07-10 Timothee Besset + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=19 + cleanup of the keyboard code, adding com_developer message in case XLookupString would fail + +2001-07-10 Timothee Besset + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=33 + using our custom handlers for X errors, should make things more robust + (X docs say some X errors are not fatal, but the default X handler exits the app anyway) + +2001-07-08 Timothee Besset + * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=19 + keyboard state issues, fixed the sticking with ctrl key (thks relnev) + +2001-07-07 Timothee Besset + * closing https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=13 + the fixes to bug #9 solved this one too + * checking in to SOS + +2001-07-05 Timothee Besset + * work on https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=9 + filesystem code changes: + updated the documentation in files.c to the current system + added correct fs_homepath fs_basepath fs_cdpath scanning to FS_SV_FOpenFileRead + (fixes description.txt not found, and probably a few other linux issues) + +2001-06-29 Timothee Besset + * fixed setup issues (graphical/console) + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=6 + +2001-06-26 Timothee Besset + * bug tracker is online at https://zerowing.idsoftware.com/bugzilla + authentication, use login: bugs password: b00gies + for now, using it as the linux bug tracker, possible use for more OSes and programs if anyone is interested. + * tweaked the graphical setup to send to bugs at idsoftware.com on errors instead of support at lokigames.com + +2001-06-19 Timothee Besset + * fixed generated launch script /usr/local/bin/quake3, exit $* should be exit + +2001-06-18 Timothee Besset + * rebuilt 1.29f setups, released as 1.29f-beta1 'Q3 1.29f linux-i386 Jun 19 2001' + +2001-06-10 Timothee Besset + * rebuilt against PR source, packaged 1.29b setups + +2001-05-25 Timothee Besset + * graphical setup, based on Loki's setup tool (GPL) + +2001-05-22 Timothee Besset + * changed fs_basepath to fs_homepath, according to Graeme's changes (probably missed this change?) + this fixes the q3key prompting at each game startup + +2001-05-20 Timothee Besset + * rebuilding 1.28b, various fixes on linux build: + - SetProgramPath was renamed to Sys_SetDefaultCDPath in unix_shared.c + updated unix_main.c accordingly + - some prototypes in qgl.h are guarded by #ifndef GL_VERSION_1_2 (ARB extentions) + those prototypes are needed by linux_glimp for importing functions and casting, added a #ifdef __linux__ + (not a clean solution) + - game/q_shared.h + little endian / big endian functions have been added + gcc generates warnings about functions being unused .. inlined them + - cgame/cg_marks.c + // TTimo + // gcc warning: might be used uninitialized + float sInc = 0.0; + float s = 0.0; + +2001-05-15 Timothee Besset + * fixes to linux Makefile for bspc 2.1h + * various updates to 1.28b on linux + +2001-05-09 Timothee Besset + + * R. Duffy reverted game/bg_pmove.c PM_CheckDuck, was a merging screup on my side + * updated setup to 1.27z, removed the .so from the setup distribution (they were in 1.27g because of issues) + FIXME: gotta get pk3's first + +2001-05-04 Timothee Besset + + * fixes to gcc, building RC for 1.27s + +2001-05-01 Timothee Besset + + * added qcommon/huffman.c to the Makefile + * gcc -Wall: + commenting out + CL_Netchan_Encode CL_Netchan_Decode (cl_net_chan.c) + Netchan_ScramblePacket Netchan_UnScramblePacket (net_chan.c) + SV_Netchan_Encode SV_Netchan_Decode (sv_net_chan.c) + +2001-04-26 Timothee Besset + + * fixed dedicated server crash when entering the VM_COMPILED qagame on a mod (some statics lacked initialization) + +2001-04-25 Timothee Besset + + * added $(Q3POBJ) to clean target (cleanup of platform-dependent objects) + * more make clean improvements + +2001-04-23 Timothee Besset + + * cleanup the mod selection code, remove duplicates + * some issues with release builds, my main developement box doesn't build stable binaries with release settings + removing -fomit-frame-pointer seems to fix (there's probably a performance hit) + see OMIT-FRAME-POINTER.txt + +2001-04-13 Timothee Besset + + * checked in a first set of merged files + +2001-04-06 Timothee Besset + + * merged back the core linux parts to make 1.27g linux build from the Source Safe tree again + +2001-02-27 Bernd Kreimeier + + * CVS: tag with changes as of today + cvs tag id1-27j-loki01027 + + * code/qcommon/msg.c: numFields loop (SOS). + * code/qcommon/files.c: ue Q_stricmp (SOS uses stricmp, was strcmp). + * code/game/q_shared.h (Q3_VERSION): 1.27j. Also + MAX_STRING_TOKENS upped from 256 to 1024 (SOS). + + * code/server/sv_snapshot.c (SV_AddEntitiesVisibleFromPoint): see below. + * code/game/g_public.h (SVF_NOTSINGLECLIENT): added (SOS). + + * code/server/sv_ccmds.c: see below. + * code/game/g_main.c: g_gametype cvar now userinfo (SOS). + + * code/game/g_active.c (SendPendingPredictableEvents): new (SOS). + * code/game/bg_misc.c: new SOS (sos010227) + + * SOS: new update sos010227. + +2001-02-22 Bernd Kreimeier + + * CVS: now in sync with last SOS and cleanup up + cvs tag id1-27i-loki01022 + + * code/ui/ui_shared.c: below. + * code/ui/ui_main.c: leftover code! + * code/server/sv_world.c: below. + * code/server/sv_snapshot.c: below. + * code/server/sv_init.c: below. + * code/server/sv_game.c: below. + * code/server/sv_client.c: below. + * code/server/sv_ccmds.c: below. + * code/server/sv_bot.c: below. + * code/server/server.h: below. + * code/renderer/tr_surface.c: below. + * code/renderer/tr_shader.c: changed assert to early return. + * code/renderer/tr_shade_calc.c: below. + * code/renderer/tr_shade.c: below. + * code/renderer/tr_scene.c: below. + * code/renderer/tr_mesh.c: below. + * code/renderer/tr_local.h: below. + * code/qcommon/vm_x86.c: cleanup. + * code/qcommon/vm.c: below. + * code/qcommon/unzip.c: below. + * code/qcommon/qcommon.h: below. + * code/qcommon/files.c: below. + * code/qcommon/cvar.c: cleanup. + +2001-02-21 Bernd Kreimeier + + * code/qcommon/common.c: cleanup. + * code/qcommon/cm_trace.c: cleanup. + * code/qcommon/cm_patch.c: cleanup. + * code/qcommon/cm_public.h: cleanup. + * code/game/q_shared.h: cleanup. + * code/game/q_shared.c: cleanup. + * code/game/q_math.c: cleanup. + * code/game/g_syscalls.asm: changed (once more) floor,ceil etc. + * code/game/g_spawn.c: cleanup. + * code/game/g_session.c: cleanup. + * code/game/g_cmds.c: cleanup. + * code/game/g_client.c: cleanup. + * code/game/g_arenas.c: cleanup. + * code/game/bg_slidemove.c: cleanup. + * code/game/bg_pmove.c (PM_CheckDuck): old call to trace? + * code/game/bg_misc.c: cleanup. + * code/game/be_aas.h: dead code. + * code/game/ai_dmq3.c: cleanup. One clear/copy switched? + * code/game/ai_dmnet.c: more //*/. Why oh why not DEBUG.... + + * code/client/snd_mix.c: below. + * code/client/snd_dma.c: below. + * code/client/keys.h: cleanup. + TODO: #error in q3_ui/keycodes.h ? + + * code/client/client.h: cleanup. + * code/client/cl_main.c: misplaced bracket. Cleanup. + * code/client/cl_keys.c: below. + * code/client/cl_cin.c: below. + * code/client/cl_cgame.c: cleanup. + TODO: define assert for Win32 or guard my assertions. + + * code/cgame/cg_syscalls.c: below. + * code/cgame/cg_servercmds.c: below. + * code/cgame/cg_players.c: cleanup. + + * code/cgame/cg_newdraw.c: remember to diff against cg_newDraw.c + in SOS (mixed case). + TODO: get id to use cg_newdraw.c, and to remove cg_newDraw.c/cpp. + + * code/cgame/cg_main.c: below. + * code/cgame/cg_local.h: below. + * code/cgame/cg_event.c: below. + * code/cgame/cg_drawtools.c: below. + * code/cgame/cg_draw.c: cleanup. + * code/cgame/cg_consolecmds.c: dead code. + * code/bspc/qbsp.h: below. + * code/bspc/l_poly.c: below. + * code/bspc/l_math.c: cleanup. + * code/bspc/bspc.c: cleanup. + * code/bspc/be_aas_bspc.c: cleanup. + * code/bspc/aas_map.c: kept comments - merge loss at their end? + * code/bspc/aas_file.c: cleanup. + + * code/botlib/be_interface.c: this file is plain impossible. There + are layers of code made dead with /* */ and the resurrected by + //* or // /* or variations of this. I reverted to exact mirror + image of SOS to be sure - short of removing it's too easy to mistake + live code for dead one. + Later: have to change 5 occurences to avoid gcc complaints about + nested comment tokens. + TODO: somebody please get rid of the cruft in here. + + * code/botlib/be_ai_move.c: redundant typedef. + * code/botlib/be_ai_chat.c: assertions on signed string index. + Note: this is not in my ChangeLog - ouch. + TODO: use gcc -fsigned-char on all platsforms to enforce Win32 + TODO behavior (PPC has a default unsigned char, Intel has not). + * code/botlib/be_aas_sample.c (AAS_TraceClientBBox): one code block + was placed in different location, and one FPE hack not used. I would + expect that divide by zero will still occur here. + + * code/botlib/be_aas_reach.c: below. + * code/botlib/be_aas_cluster.c: cleanup. + * CVS: the last tag (below) marks the version with a lot of history + and additional comments. I am now bringing the codebase in sync with + SOS as of yesterday, cleaning out comments, dead code and other + differences to minimize a diff - in a valiant if futile attempt to + roll back changes into the id codebase. + Note: I ignore the $SOS$ - these are unfortunate but will change + in the same awkward way at their end. + Note: I stick to #if 0 instead of C comments around dead code id + kept (nested comments issue). The commentary is changed to sosYYMMDD + and includes the token DEAD. + +2001-02-20 Bernd Kreimeier + + * CVS: update, then tag current version as + cvs tag id1-27i-loki010219 + + * SOS: patched up to sos010219. + + * code/qcommon/cm_trace.c (CM_Trace): fabs on sphere offsets (SOS). + * code/game/bg_slidemove.c (PM_StepSlideMove): stepSize vs. STEPSIZE (SOS). + * code/game/bg_pmove.c (PM_CheckDuck): fix in stand up check (SOS). + * code/bspc/bspc.c (main): -capsule (SOS). + * code/bspc/qbsp.h: below (SOS). + * code/bspc/be_aas_bspc.c (capsule_collision): added (SOS). + * code/bspc/aas_map.c (CapsuleOriginDistanceFromPlane): added and used (SOS). + * code/bspc/aas_file.c (AAS_WriteAASFile): removed diagnostics recently + added. No matter how long you wait, they'll always get you ;-). + * code/botlib/be_aas_cluster.c: enabled LogWrites, different flood (SOS). + + * SOS: patching up to snapshot sos010219. + Note: For brevity, I use as marker sosYYMMDD now instead of bkYYMMDD, to + distinguish from changes not in SOS. + + * CVS: tagged current version before patching up with SOS. + cvs tag id1-27i-loki010216-bsd + +2001-02-16 Bernd Kreimeier + + * code/server/sv_init.c: DLL_ONLY sets sv_pure to 0 and ROM. + TODO: determine good sv_pure policy for DLL-only servers. + + * code/renderer/tr_shade_calc.c: my_ftol implementation (BSD). + + * code/unix/Makefile: FreeBSD sections. + TODO: include target-specific Make-freebsd etc., + include a Make-local not in CVS for build preferences, + and generally clean up this mess. + * code/unix/unix_glw.h: guard #error + * code/unix/linux_snd.c: soundcard.h location (BSD). + * code/unix/linux_glimp.c: guard system headers. + Later: added Joystick stubs. + Note: linux_ etc. prefixes start to loose meaning as we + re-use most of this on UNIXes anyway. I didn't use Raf's + freebsd_joystick.c but instead put generic stubs here. + TODO: introduce generic -DNO_JOYSTICK flag. + * code/renderer/tr_local.h: my_ftol guard. + * code/renderer/qgl.h: FreeBSD guards. + * code/qcommon/vm_x86.c: sys/types include on FreeBSD. + * code/qcommon/md4.c: Win32 pragma guard. + * code/qcommon/common.c: Com_Memcpy/Memset external. + * code/game/q_shared.h: added FreeBSD defines. + * code/game/q_math.c (BoxOnPlaneSide): FreeBSD conditional. + TODO: check whether we have/need the assembly version anyway. + * code/client/snd_mix.c: use C fallback on FreeBSD. + Note: all of the above changes from the original port by Rafael Barrero. + + * CVS: tagged current version before merging FreeBSD related changes. + cvs tag id1-27i-loki010215-ppc + +2001-02-15 Bernd Kreimeier + + * code/unix/Makefile: BSD related changes. + * code/cgame/cg_draw.c: hacked phone jack rendering check for Debug. + TODO: finish Debug, fix CG_DrawDisconnect !!! + + * code/unix/vm_x86.c: error on compile attempts. Fight redundancy! + * code/qcommon/vm_x86.c (VM_CallCompiled): dummy for linkage on PPC. + Note: DLL_ONLY is the global Makefile option for DLL-only builts. + Currently only executed on Linux. + * code/unix/unix_main.c: *ppc postfix for DLLs. Ignored the changes + to redundant code (have to remove the unused Un/LoadDll/API calls). + * code/server/sv_game.c (VMA): changed macro (see below). PPC. + * code/qcommon/vm.c (VM_DllSyscall): see lengthy commentary by Ryan. + The existing VM code makes certain assumptions about the layout of + varargs on the stack, which fall apart with call conventions that + don't even put all parameters on the stack (gcc on PPC, register-rich). + Using a dedicated memory area as our own stack. This should actually + be the default behavior. + Later: make vm_* cvars INIT/ROM for DLL_ONLY target. + + * code/qcommon/common.c: PPC change (from Ryan Gordon). + +2001-02-07 Bernd Kreimeier + + * code/unix/unix_main.c: disabled FPE for debug for the time + being (that is, until I can figure out + Program received signal SIGFPE, Arithmetic exception. + RB_BeginSurface (shader=0x449572e0, fogNum=0) at ..//renderer/tr_shade.c:307 + 307 tess.shaderTime = backEnd.refdef.floatTime - tess.shader->timeOffset; + without any NaN's involved. + TODO: unmask other FPE's selectively (see Mike's Tribes2, no getenv though). + +2001-02-06 Bernd Kreimeier + + * SOS: up to date with todays snapshot. + Note: got the date wrong, comment used was bk010205. Duh. + + * code/server/sv_snapshot.c (SV_UpdateServerCommandsToClient): below. + * code/server/sv_main.c (SV_ReplacePendingServerCommands): new (SOS). + * code/server/server.h: reliableSent (SOS). + + * code/renderer/tr_shade.c (ProjectDlightTexture): see below. + * code/renderer/tr_scene.c: see below. + * code/renderer/tr_public.h: see below (SOS). + * code/renderer/tr_local.h: additive light support (SOS). + + * code/qcommon/cm_trace.c (CM_Trace): new tw.sphere.use branch (SOS). + + * code/game/g_spawn.c: notta, notq3a entities (SOS). + * code/game/ai_dmq3.c: MAX_ACTIVATEAREAS search (SOS). + + * code/client/cl_cgame.c: see below. + * code/cgame/cg_syscalls.c (trap_R_AddAdditiveLightToScene): below. + * code/cgame/cg_syscalls.asm: see below (trap_R_AddAdditiveLightToScene). + * code/cgame/cg_public.h: CG_R_ADDADDITIVELIGHTTOSCENE (SOS). + + * code/bspc/l_math.c: new VectorLengthSquared, removed rotate/matrix (SOS). + * code/bspc/bspc.c (BSPC_VERSION): was 2.1e, now? + * code/bspc/be_aas_bspc.c (BotImport_Trace): CM_BoxTrace sig. (SOS). + * code/bspc/aas_file.c (AAS_WriteAASFile): SOS. + * code/botlib/be_aas_sample.c (AAS_DeAllocAASLink): SOS. + + * code/unix/unix_main.c (Sys_LoadDll): do not load from installdir + in NDEBUG (confusing relic from old Makefile). Postfix -debug.so + for debug binaries to let both builds coexist. + + * code/unix/Makefile: updated install targets and VERSION. + + * Win32: build from SOS snapshot. + Note: Unix CR/LF in *.dsw/*.dsp fucks up MSVC++. + +2001-02-02 Bernd Kreimeier + + * SOS: all changes up to today. + + * code/server/sv_init.c (SV_TouchCGame): added. Also memset + on reallocated client data (SOS). + * code/qcommon/qcommon.h: see below. + * code/qcommon/cvar.c (Cvar_SetLatched): new (SOS). + * code/qcommon/cm_trace.c: more sphere test fixes (SOS). + Note: SOS encryption key expired and updated by MrElusive. + + * code/qcommon/cm_patch.c (CM_TraceThroughPatchCollide): + fix from MrElusive, fall through curved corner floors (q3dm17). + Later: also in SOS (so is shadow FPE fix). + + * Win32: can't get an unadulterated SOS snapshot to build. + First, fix CR/LF back again (Linux client converts all). + find . -name '*.ds*' -print + alias dos2unix='recode ibmpc..lat1' + alias unix2dos='recode lat1..ibmpc' + Next, find a *.dws that works? Nope, no cigar. + +2001-02-01 Bernd Kreimeier + + * Win32: have to update dsp/dsw/etc. files in CVS, too. + + * CVS: tag previous version before update + cvs tag id1-27h-loki010131-beta3 + + * code/game/q_math.c (Q_rsqrt): guard, #ifndef __linux__ + for assert (for Win32 build). + TODO: assert replacement for Win32? + * code/q3_ui/ui_qmenu.c: see below. + * code/q3_ui/ui_players.c: see below. + * code/q3_ui/ui_controls2.c: float const with f postfix + Note: Win32 C4305 warning. Somebody at id has been doing + a lot of these recently as well... + + * code/cgame/cg_players.c (CG_PlayerShadow): applied fix by + MrElusive, removed FPE hack (player shadows on zero mormals). + Prolly in this evenings' CVS. + + * code/server/sv_game.c: new signatures (capsule again). + * code/server/server.h: new signatures (SV_Trace,ClipToEntity). + * code/server/sv_bot.c: new signatures (above). + * code/qcommon/cm_trace.c: a truckload of changes. Math + code added before moved upwards. Capsule traces added all + over the place, old box traces moved in conditional + branches, functions renamed and wrapped. Eliminated some + of the previous' versions deadcode to keep diffs smaller. + TODO: once a point release is out and reasonably bug + TODO free, remove // bkYYMMDD annotations where SOS related. + + * code/qcommon/cm_public.h: new signatures in prototypes. + * code/qcommon/cm_patch.c: dead code re-enabled, new + sections (conditional branches for spheres) added to + several trace functions. + * code/qcommon/cm_local.h (CAPSULE_MODEL_HANDLE): added. + * code/qcommon/cm_load.c (CM_TempBoxModel): capsules. + + * code/game/q_shared.h (Q3_VERSION): 1.27i now (new QVM traps). + + * code/game/g_syscalls.asm: see below. + * code/game/g_public.h (SVF_CAPSULE): added (SOS). Also + G_ entry poiints for capsule traces. + + * code/client/cl_cgame.c: see below. + * code/cgame/cg_syscalls.c: see below. + * code/cgame/cg_syscalls.asm: see below. + * code/cgame/cg_public.h: new capsule trace code (SOS). + +2001-01-31 Bernd Kreimeier + + * Win32: test compile (WinCVS, MSVC++). Have to guard isnan. + Note: too much shit going on.... + +2001-01-30 Bernd Kreimeier + + * CVS: update for patching up (pre-1.27i). + + * SOS: new changes (new collision detection primitives). + Now Version 1.27i. + TODO: start testing using DLL's (QVM code is out of sync). + +2001-01-25 Bernd Kreimeier + + * SOS: caught up till today (below). + * code/qcommon/cm_trace.c: new functions added: RotatePoint, + TransposeMatrix, CreateRotationMatrix (SOS). + (CM_TransformedBoxTrace): new rotation code used here. + + * code/q3_ui/ui_demo2.c: sizeof(extension). SOS. + * code/game/g_cmds.c (G_SayTo): CON_CONNECTED. + * code/game/ai_main.c: HOOK added (SOS). + * code/botlib/be_aas_move.c (AAS_HorizontalVelocityForJump): + correct fix for FPE occuring (SOS). + * code/game/ai_dmq3.c: initmove.viewoffset (SOS). + + * code/game/q_math.c: guard asser/isnan with Q3_VM (q3asm). + TODO: define Com_Error based assert macro? NDEBUG? + +2001-01-24 Bernd Kreimeier + + * code/server/sv_ccmds.c (SV_MapRestart_f): some debug. + TODO: map_restart 0 disconnects external client in 1.27h? + + * code/renderer/tr_image.c (LoadTGA): added some commentary + and dead code based on fixes from GtkRadiant (Leonardo found + flipped TGA's). + +2001-01-23 Bernd Kreimeier + + * BETA3: finished testing, ready to upload to id FTP. + Later: neither the FreeBSD beta not the Linux Beta3 + uloaded. Beta2 not yet released, and clients get + disconnected with Beta2 and Beta3 on SV_MapRestart_f. + +2001-01-22 Bernd Kreimeier + + * code/client/cl_main.c (CL_InitDownloads): undid yesterday (SOS). + * code/botlib/be_aas_sample.c (AAS_DeAllocAASLink): guard print (SOS). + * code/server/sv_client.c (SV_DirectConnect): VM_Call disconnect (SOS). + * code/qcommon/files.c (FS_ListFilteredFiles): trailing slashes (SOS). + * code/game/g_cmds.c (SetTeam): print change (SOS). + Note: the above plus VectorClear(v1) (below) are todays SOS changes. + + * code/cgame/cg_players.c (CG_PlayerShadow): ignore bogus + (all zero) planes. This caused FPE in ProjectPointOnPlane. + TODO: why does trace return zero normal planes? + Note: gdb seems totally at loss with vec3_t arrays.... + + * code/botlib/be_aas_sample.c (AAS_TraceAreas): FPE. + NaN in uninitialized v1 that wasn't supposed to be referred + to in this branch. + + * code/botlib/be_aas_move.c (AAS_HorizontalVelocityForJump): + FPE divide by zero (zero zvel, zero t) for jump estimates. + + * code/client/cl_main.c (CL_Frame):1856. uivm==NULL on + client after server crashed. + TODO: check that uivm always non-NULL for client. + TODO: do setenv(FX_NO_SIGNALS) to avoid exit errors... + + * code/unix/linux_glimp.c (GLW_SetMode): added "Indirect" + Mesa token to software rendering detection. Reworded error + output and added drivername. + TODO: measure framerate instead? + +2001-01-21 Bernd Kreimeier + + * SOS: caught up with changes up until today. + + * code/server/sv_init.c (SV_SetConfigstring): gentity != NULL + + * code/server/sv_client.c: connect to "{all bots" server. + * code/renderer/tr_init.c: JPEG extension on screenshots + * code/qcommon/files.c: modes based on mods, fs_basegame + + * code/q3_ui/ui_demo2.c: dm3 extension (demo names, protocol). + + * code/game/g_client.c: savedEvents[] removed. + * code/game/bg_misc.c: event sequence fixes. + * code/client/snd_dma.c (S_StopBackgroundTrack): different use. + * code/client/cl_main.c: demo file handling changed (names). + Also CL_InitDownloads: always next download. + + * code/cgame/cg_servercmds.c: cg_thirdPerson. + * code/cgame/cg_weapons.c: see below. + Also CG_ShotgunPattern: different call (seed parameter). + + * code/cgame/cg_main.c: see below. + * code/cgame/cg_local.h: new cg_noProjectileTrail Cvar. + * code/cgame/cg_effects.c (CG_BubbleTrail): early out (above). + + * code/bspc/l_poly.c (BOGUS_RANGE): increased. + * code/bspc/bspc.c: applied patch up to "2.1e" + +2001-01-18 Bernd Kreimeier + + * code/ui/ui_main.c: below. + * code/q3_ui/ui_main.c: UI_HASUNIQUECDKEY comment. + Note: mods have to return qfalse. See Bug #2890 in Fenris. + +2001-01-17 Bernd Kreimeier + + * BETA2: finished testing, uploaded to id's FTP for release. + +2001-01-16 Bernd Kreimeier + + * CVS: checking in preparation for Beta2. + cvs tag id1-27h-loki010116-beta2 + + * SOS: new bspc "2.1e". No change on 1.27h. + + * TEST: patch-up seems to work fine. No new files have been added + to the linkage (i.e. the ft2/ files now added), so we might not be + feature complete. + + * code/game/g_active.c (ClientThink_real): id MISSIONPACK + conditional in addition to the ones I added earlier. + * code/qcommon/files.c: REJECT. Linux hack for userdir threw it off. + * code/qcommon/unzip.c: REJECT. CRC-32 section removed. + Later: unused tempB + + * code/q3_ui/ui_syscalls.asm: REJECT. Start/StopBackgroundTrack. + * code/ui/ui_syscalls.asm: REJECT. syscalls ids from 1.27h + as of SOS (floor/ceil - will this ever get straightened out) + * code/win32/win_input.c: REJECT. g_pMouse edit. + * ui/menus.txt: REJECT. Replaced with 1.27h version. + Note: some more due to $SOS$. + + * ui/: new scripts. + cinematicmenu.menu, demo_quit.menu, ingame.txt, serverinfo_old.menu + vid_restart.menu + + * code/ft2/ttconfig.h: below. + * code/ft2/sfconfig.h: below. + * code/ft2/pstables.h: below. + * code/ft2/psnames.c: below. + * code/ft2/psdriver.h/c: below. + * code/ft2/keys.h: below. + * code/ft2/ftbbox.c: new in 1.27h + + * code/cgame/cg_newdraw.c: beware: cg_newDraw.c gets lost in diff easily. + + * code/cgame/cg_rankings.c: file removed from SOS. + +2001-01-15 Bernd Kreimeier + + * Patch-up: patching up from RC4 to 1.27h current. + No changes since 010112 snapshot. + ln -s sos010112/ work + diff -urbB sos001204-rc4/ work > work.diff + ln -s cvs-1.27g/ work + patch -p0 < work.diff > work.patch + find cvs1.27g/ -name '*.rej' -print + + * SOS: adding the remaining SOS snapshots to CVS. + cvs import Quake3_sos sos001211 pr1-27g-win32-001211 + Note: at this point id warned about repository corruption. + Watch out for the syscall stuff in particular. + cvs import Quake3_sos sos010104 pr1-27g-win32-010104 + cvs import Quake3_sos sos010108 pr1-27h-win32-010108 + cvs import Quake3_sos sos010110 pr1-27h-win32-010110 + cvs import Quake3_sos sos010112 pr1-27h-win32-010112 + Note: the first 1.27h might be the public (server only) + beta released, the second one was post release. Beware + of source files added and removed (botlib headers, FT2). + Note: why so late? Don't ask... + +2001-01-08 Bernd Kreimeier + + * SOS: id's working up to 1.27h (server side fix for + Guard exploit seems to force earlier release). Updating + CVS (most of the changes are debug code put in and + then disabled, plus some fixes as below). Next patching + up to current SOS. + +2001-01-07 Bernd Kreimeier + + * Makefile: need to rework this for multiple platforms. + We also need null/null_vm.c for platforms where we don't + have JIT (assembly emit). + +2001-01-04 Bernd Kreimeier + + * code/q3_ui/ui_connect.c (UI_DisplayDownloadInfo): time + information for current (vs. start of download) is wrong, + thus negative 1 "estimated time", as well as transfer + rate just negative downloadSize. Not fixed. + + * code/unix/unix_main.c (Sys_ParseArgs): added. + Note: for support/us, to identify builts. This is only + a skeleton right now - if I ever feel the need to support + more than "-v" and "--version" I'll have to flesh this out. + + * code/unix/linux_glimp.c (signal_handler): see below. + * code/unix/unix_main.c (Sys_Exit): added an abstraction + layer for exit/_exit/assert/raise issues. + Note: need both a better debug/backtrace handling, and + have to find a way to determine why/where the alleged + startup/exit errors happen... + +2001-01-03 Bernd Kreimeier + + * code/game/g_mem.c (G_Alloc): ERR_DROP initiated by + addbot commands for large sv_maxclients, allegedly + caused segfaults in 1.17. Not reproducible. + TODO: recover more gracefully from failure to add bot? + + * code/renderer/tr_light.c (R_LightForPoint): Tim Angus + reports a crashbug with nolight maps. Also assertion in + R_SetupEntityLightingGrid, might want conditional there. + DONE: fixed crash on LightForPoint for nolight maps. + + * code/qcommon/qcommon.h: NUM_SERVER_PORTS. A feature + request to increase this, or make it more flexible + otherwise (Fenris). + TODO: id decision on more flexible NUM_SERVER_PORTS. + +2001-01-02 Bernd Kreimeier + + * code/unix/snapvector.nasm: fixed FPU bit (the current + one had reserved bits off, behavior should not change). + * code/qcommon/vm_x86.c: fixed symbols (below). + * code/unix/ftol.nasm: FPU bits weren't correct (duh). + DONE: shoot-though floor (q3dm5) + DONE: cursor-in-rect off (TA/Player model selection) + Note: in gdb, "disassemble " is your friend. + + * code/cgame/cg_public.h: CG_MEMSET is set to 100. In + cg_syscalls.asm it's 101. If I change it I get Bad trap 100 + from the cgame VM code, so the 1.27g "official" VM code + uses it. + + * code/unix/linux_common.c: have to fall back to C, the + current assembly is buggy... + * code/unix/Makefile (linux_common.o): added. + Later: also for dedicated. Less portable this way. + TODO: C_ONLY for dedicated on non-i386 only? + + * code/qcommon/common.c: do not use memcpy/memset under Linux. + * code/unix/linux_common.c: added Andrew's assembly port. + TODO: C_ONLY for Com_Memset/Memcpy? Conditionals are fubared. + + * code/qcommon/vm.c (VM_Init): use Win32 defaults (do not + use DLL's by default). This exposes DLL rounding errors + (damage through floors), and we don't want DLL's used by + default anyway. + TODO: why vm_ui default of 1? + + * code/botlib/l_precomp.c (SourceWarning): removed assert. + + * code/game/bg_lib.c (acos): defined, but we don't actually + use it except where the cg_syscalls.asm trap is used. + + * code/game/g_public.h: missing lots of trap tokens. + * code/game/g_syscalls.c: missing lots of traps. + * code/game/g_syscalls.asm: more inconsistent hooks, were: + equ floor -111 + equ ceil -112 + equ testPrintInt -113 + equ testPrintFloat -114 + now changed to match cg_syscalls. + Note: fixed this in UI earlier, how did this slip through + the diffs against SOS? + + * code/game/g_syscalls.c: no acos hook. + * code/cgame/cg_syscalls.c: no acos hook. + * code/cgame/cg_syscalls.asm: has acos hook as -112 + Note: report from Tim Angus. The acos function is in bg_lib.c + which is linked only into ui (not q3_ui). That means we are + using libc acos right now? + Note: QVM traps are negative? + + * BSD/Irix: tagged current CVS (not all of the below) as + cvs tag id1-27g-loki010102-bsd1 + for BSD work (Rafael Barrero). Also be used for Irix update. + +2001-01-01 Bernd Kreimeier + + * SOS: adding the remaining SOS snapshots to CVS. + cvs import Quake3_sos sos001201-rc3 pr1-27f-win32-001201-rc3 + cvs import Quake3_sos sos001202 pr1-27f-win32-001202 + cvs import Quake3_sos sos001204 pr1-27g-win32-001204-rc4 + This is the codebase to which the Linux branch has been patched + up. I can't verify whether this is identical to the RC4 codebase + as the tag doesn't work (but can check against the ZIP file..) + cvs import Quake3_sos sos001211 pr1-27g-win32-001211 + The above snapshot contains a (post-release?) fix to ui_syscalls + in ui/ and q3_ui/. This change has been used in Linux (Beta1 and + above). At this point, id discouraged further use of SOS due to + repository corruption on their end. No further snapshots were + taken since. + + * Fenris: since the release of the Beta1 bugs have been + maintained at http://fenris.lokigames.com/. I am going to + list issues here as they get fixed. + +2000-12-21 Bernd Kreimeier + + * code/renderer/tr_font.c: graceful silence with old mods? + * code/botlib/l_precomp.c (SourceWarning): graceful exit if old mod? + +2000-12-20 Bernd Kreimeier + + * code/server/sv_ccmds.c (SV_MapRestart_f): see below. + * code/qcommon/vm.c: currentVM is 0x0 in VM_ArgPtr. + In VM_Call, oldVM was NULL - made conditional the + reset of currentVM to oldVM. + +2000-12-18 Bernd Kreimeier + + * BETA1: closed Linux beta release. Stripped debug + and release binaries, DLL's, and pak4.pk3. CVS checkin, + will be tagged as + cvs tag id1-27g-loki001218-beta1 + Later: id added a pak5.pk3 to the Win32 point release, + added this to the BETA1 best. + + * code/qcommon/vm_x86.c: C37F. + * code/unix/snapvector.nasm: C37F. + Note: short of any real evidence, I gamble and use max. + precision (as well as default Linux precision, but NOT + Win32 precision). It seems that precision change is not + really an issue (despite Graeme's claim that the cursor + in the menu was/is off). I also pick the roundiung behavior + that is seemingly used by ANSI and gcc (but possibly not + Win32 _ftol depending on build). + +2000-12-15 Bernd Kreimeier + + * code/unix/Makefile: added snapvector.o + * code/unix/unix_shared.c: #if 0'ed the old snapvector code. + * code/unix/snapvector.nasm (Sys_SnapVectorCW): two new + assembly functions from AndrewH that explicitely set the + FPU control word to convert vec3_t, to ensure cross-platform + behavior for both DLL and QVM. + + * code/unix/ftol.nasm (Q_ftolC37F): for globals. + + * code/unix/unix_main.c: took out global FPU manipulation. + For clarity this should be VM only. + * code/qcommon/vm_x86.c: added prototypes for the ftol + library. To select a specific behavior for the entire VM, + set ftolPtr accordingly. + Later: the GCC ftol function of course affect the stack + (there is no "declspec naked"). The problem seems to be + that the VM never handles the stack in a way compatible + to regular gcc C functions. For some odd reason _ftol seems + to do the right thing under Win32. All 4 control words + implemented at the moment work just fine with the menus. + + * code/unix/ftol.nasm: added a small library of "safe" qftol + variations that explicitely set the control word to the + relevant (4) possibilities. + +2000-12-13 Bernd Kreimeier + + * code/qcommon/vm_x86.c: an entire day spent trying to nail + the ftol issues. It breaks down like this: id used to use + an unsafe (no setting FPU control word) fistp. That seemingly + caused subtle physics bugs which nobody cared about in 1.17. + They then changed the UI code, and ran into the UI bugs: + menu entries shifted to the right, fonts vanishing. Then + they switched to using _ftol. Then they had to reproduce + the old behavior for the physics code due to public outrage. + My original port used a simple (long)float cast, which gcc + seemingly compiles to code that does OR 0C00 on whatever + current control word (precision unchanged). This breaks the + menus. If I use the unprotected fistp instead, which should + (Linux 037F default) use "nearest/even", then my menus are + correct. That would mean Win32 _ftol in id's compile does + the same, only that would require /qifist or some equivalent + compile flag, which I can't find. Two disassemblies of _ftol + I got from others showed OR 0C00 as part of the default (ANSI) + behavior. + +2000-12-13 Bernd Kreimeier + + * code/game/bg_pmove.c (PmoveSingle): trap_SnapVector. + The one true and single call to snap velocity. + Note: bspc/map.c:void SnapVector(vec3_t normal) + qcommon/cm_patch.c:void CM_SnapVector(vec3_t normal) + game/q_shared.h: #define SnapVector(v) {v[0]=((int)(v[0]));... + + * code/client/cl_cgame.c: CG_SNAPVECTOR. + * code/server/sv_game.c: G_SNAPVECTOR. + Note: these go through trap_SnapVector in syscalls. + + * code/unix/unix_shared.c (Sys_SnapVector): sticking to + old Linux version for now... + * code/win32/win_shared.c (Sys_SnapVector): changed. + Note: Graeme points out this was changed to fix ftol + artifacts? + TODO: calculate errors for various ftol variants... + + * code/qcommon/vm_x86.c: both the old fistp code (1.17) + and the new qftol function apparatently work. Using the + ftol.nasm code for now. + + * code/unix/Makefile: DO_NASM and ftol.o. + + * code/unix/ftol.nasm (qftol): created from Mike's SoF + replacements, with Andrew's help to satify the VM + stack/call requirements. + TODO: use Q_ftol herein to replace myftol elsewhere. + + * code/unix/unix_main.c (Sys_ConfigureFPU): SIGFPE. + TODO: divide by zero in botlib. Disable this for now. + Note: we can't introduce calculation differences between + versions, so fixing these will have to wait. + + * code/qcommon/vm_x86.c: two new lines in Win32 branch + missing from Linux assembly in AsmCall: + mov eax, dword ptr [edi] + and eax, [callMask] + Added, doesn't seem to affect UI etc. bugs. + Later: no FTOL_PTR, use fistp non-IEEE assembly as in old + version. This seems to work for Q3 and TA, while qftol + (simple cast) does not - for Win32 Graeme says the reverse + is true. + + * code/qcommon/vm_x86_old.c: used the old cvs-1.17 version. + Two fixes (Hunk_Alloc, Com_Memcpy), and it works: + +set vm_game 2 +set vm_ui 2 +set vm_cgame 2 + UI, cgame and game w/o apparent problems. + +2000-12-12 Bernd Kreimeier + + * code/unix/Makefile: cleanup of redundant flags. + Removed bogus MALLOC_CHECK (note to self: export MALLOC_CHECK_=2). + Also DO_SHLIB_CC on all UI DLL's. + Added and removed DEBUG_VM flag. + TODO: figure out whether Zoid did UI this way intentionally. + Note: this seemingly fixed the botimport problem, although + most of the changes were just redundant CFLAGS removed. Given + our wanker toolchain, should have been more paranoid. All + DLL's can now be used w/o apparent problems. + + * code/server/sv_main.c: gvm init. + * code/server/sv_game.c: gvm assertions. + * code/unix/unix_main.c (Sys_LoadDll): print vmMain + Note: top no avail. There is some odd ld/gdb problem here + that prevents examining globals and obfuscates part of + the stack between VM_Call and lower level code, through + G_InitGame. This is not just DLL's being loaded and unloaded. + Wromg flags during build? The vmCvar for "bot_developer" + ends up overlapping global botimport in memory, which + thus zero-fills part of the function pointer table. + + * code/server/sv_bot.c (SV_BotInitBotLib): this (by way of + GetBotLibAPI) is responsible for setting botimport, which, + if using the game DLL, is not properly set up. Called in + SV_Init(). + + * code/game/q_shared.c: Q_strncpyz does zero padding (duh). + Note: calls strncpy, which does a zero fill up to destsize. + If destsize exceeds memory size, zero padding will overwrite + adjacent memory. Suspicion was this happend to botimport. + + * code/qcommon/cvar.c: possible problem in Q_strncpyz call. + + * code/botlib/be_ai_weap.c (weaponinfo_fields): made this static. + Note: it seems that the "number" string got replaced by + p def.fields[0] + {name = 0x40000000 "\177ELF\001\001\001", offset = 2, type = 50, .. + Memory corruption? + + * code/game/inv.h (WEAPONINDEX_GAUNTLET): defined here. + * botfiles/weapons.c (Gauntlet): the baseq3/qagamei386.so parser + breaks here: + number WEAPONINDEX_GAUNTLET + * code/botlib/l_precomp.c (SourceWarning): added assertion to + trap botlib parsing problem.. + + * RC1: for beta test. Using my own vm/ui.qvm files in this case. + TODO: Setup with nouninstall. + TODO: fix game DLL/ botlib setup problem (so all DLL's work) + TODO: SIGFPE + TODO: profile? + + * code/unix/Makefile (ai_vcmd.o): added to game DLL linkage. + How the fuck did this happen? + DONE: "qagamei386.so: undefined symbol: BotVoiceChat_Defend" + + * TEST: +set vm_ui 2 (vm_x86, not interpreter). Breaks! + Further: qagame had undefined, but seemingly gets reloaded + second try (I hate the Linux linker). + * TODO: never reload fail DLL, abort engine + + +2000-12-11 Bernd Kreimeier + + * TEST: recompile QVM/DLL and executable to test new UI code. + The UI QVMs from the paks still do not work. + + * SOS: changes in UI code! + * code/q3_ui/ui_public.h: this file is deprecated + Note: e.g. it does not contain the background track calls. + * code/ui/ui_public.h: the uiImport_t enum here determines + the values. + * code/ui/ui_syscalls.asm: same as q3_ui now, were: + equ floor -111 + equ ceil -112 + * code/q3_ui/ui_syscalls.asm: these are now switched, were: + equ trap_S_StartBackgroundTrack -63 + equ trap_S_StopBackgroundTrack -64 + The new values match the ui/ equivalent. Also, floor (-108) + and ceil (-109) are different in ui/. + + * CVS: going to check in this snapshot and tag it as + cvs tag id1-27g-loki001209-rc4 + Presumed equivalent to SOS tag "1.27g RC4" (master). As I can't + obtain the tagged code using SOS (neither Win32 nor Linux client) + I can only guess. + + * TEST: use my own VM code, ion baseq3/vm/*.qvm and missionpack/vm/. + This works - in other words, the menu bug seems in the UI code, and + is fixed in my codebase. + + * TEST: make release. + Note: I can postpone DLL specific problems. Bad performance is not + as important as outright bugs. Thus the UI QVM issue is the only + one that stops me from creating an RC. + TODO: Q3 UI QVM code from pak file does not work (neither does TA). + TODO: sound with video playback still awful. Threaded sound, I guess. + TODO: ERROR: couldn't open demos/DEMO002.dm3.dm_48 (same demo001.dm3.dm_48) + + TODO: do not show Q3 demos in TA menu? + TODO: new demos for Q3? Or at least error message? + + * code/game/bg_lib.c: itrinsics excluded by Q3_VM (another -O + compile). Uninitialized variable. + * code/unix/Makefile: -O for uninit on patched code. Also shortcuts. + TODO: DC_ONLY seems an obsolete flag, used in Makefiles, not source. + + * TEST: +set sv_pure 0 +set vm_game 1 +set vm_cgame 1 +set vm_ui 0 + Turns out that the pak0.pk3 UI QVM code is seemingly broken in TA + and Q3, but my UI DLL is not. In reverse, the QVM game/cgame for + Q3 seems to work quite well (including bots). The TA game/cgame + also works, including botlib init. + TODO: BotLib Init using game DLL gives: + TODO: Error: file weapons.c, line 38: unknown structure field number + TODO: Fatal: couldn't load the weapon config + TODO: Error: BotLoadMap: bot library used before being setup + + * TEST: checked the rc4winstlr.zip CD tree against + my test install. baseq3/pak4.pl3 and missionpack/pak0.pk3 + are identical, but I finally recognized that there was + a missionpack/pak1.pk3 not in the final install - left over + from an earlier update from id. Doesn't seem to affect the + DLL based runs at all. + Note: I still do not have the final CD snapshot Robert + promised me mid last week, they haven't even fixed the + FTP account they took down. Communication with id is as + abyssmal as ever. + +2000-12-08 Bernd Kreimeier + + * TEST: running with RC4 data files. + TODO: "bot library used before setup" (Q3+TA) + TODO: Q3 old mods wreak havoc (graceful bounce) + TODO: supress "FreeType code not available" in renderer + TODO: can't move in Q3 + TODO: items flicker in Q3 + TODO: no decals in Q3 + TODO: VM UI code still broken (Q3+TA) + TODO: sound code is awful + TODO: video playback inferior to earlier builds + + * code/q3_ui/ui_local.h: prototype trap_VerifyCDKey(..) + * code/game/g_active.c ( StuckInOtherClient): TA only. + * code/cgame/cg_draw.c: 4x unbalanced `#endif' - from patch? + * code/null/null_client.c (CL_CDKeyValidate): dummy added. + * code/qcommon/common.c: Q_acos missing, changed conditionals + + * code/qcommon/vm_x86.c: unreacheable _asm instruction that + gcc doesn't quite like... #if 0'ed for now + TODO: understand _asm { mov eax,[ebx] }, fix it for gcc + + * TEST: compile... + + * code/ui/ui_main.c: full REJECT. Manual merge. + Note: preserved debug_protocol lines, who knows what it's good for. + + * code/qcommon/files.c: REJECT. SafeMode, demo server FS_Restart. + + * code/client/snd_mem.c: REJECT: $SOS$. + * code/client/snd_dma.c: REJECT: $SOS$. + * code/client/cl_cin.c: REJECT. com_timescale, $SOS$. + + * code/cgame/cg_draw.c: REJECT. Lots, but virtually all either + float postfix (on some, not all places), or #ifndef MISSIONPACK + that I had already put in during -Werror (conditional unused). + + * code/cgame/cg_consolecmds.c: REJECT. id commented unused code + that I had #if 0'ed earlier. + + * code/game/: three REJECT for $SOS$. + * code/botlib/: lots REJECT for $SOS$. + + * Patch: patching up from demo source. + ln -s sos001204-rc4 work + diff -urbB sos001122-demo/ work > work.diff + ln -s cvs-1.27b/ work + patch -p0 < work.diff > work.patch + find cvs1.27b/ -name '*.rej' -print + + * CVS: going to check in this snapshot and tag it as + cvs tag id1-27b-loki001208-demo + Then patching up to RC4, as of sos001204-rc4 (no changes since, + should be equivalent to SOS tag "1.27g RC4" (raduffy), i.e. master. + + * TEST: installed demota/ from Win32 distribution. Binary + fails claiming "Corrupted pak0.pk3". Abandoned. + Note: a Linux demo for Q3TA has no priority. Most important is + the Q3A point release in time for Q3TA hitting shelves, followed + by testing for Q3TA. The source is in CVS and tagged (see above) + in case a demo matching the released files has to be provided + later. + + +2000-12-07 Bernd Kreimeier + + * TEST: compile and link - succeeds. + + * code/ui/ui_main.c: UI_StopServerRefresh now uaws. + New unused variables. + + * code/unix/unix_main.c: added Sys_LowPhysicalMemory() stub. + TODO: write Linux equivalent to GlobalMemoryStatus. + + * code/qcommon/common.c: Com_Memset/Com_Memcpy. Neither assembly + nor C versions included if not on Win32 i386. + TODO: using/porting assembly? + + * code/qcommon/files.c: unused variable. + TODO: fs_scrambledProductId unused if 0 for now. + Note: -DFS_MISSING for id's pak cleanup, not used. + + * TEST: compile and link - fails. + + * code/macosx/Client/Makefile.postamble: empty ORIG. + * code/macosx/Client/Makefile.preamble: ORIG. $(BOTLIB_OBJS) added. + + * code/server/sv_client.c: ORIG. Com_Memset. + * code/renderer/tr_shader.c: ORIG. Com_Memset, CIN_Shader. + * code/qcommon/vm_x86.c: ORIG. Com_Memcpy. + * code/qcommon/unzip.c: REJECT. Com_Memcpy, $SOS$. + * code/qcommon/qcommon.h: ORIG. PROTOCOL 47, plus Sys_LowPhysicalMemory. + * code/qcommon/md4.c: Com_Memset,Com_Memcpy (ORIG). + * code/qcommon/files.c (Sys_ConcatenateFileList): REJECT. + Our additons threw it off, plus $SOS$. + * code/qcommon/common.c: they fixed same unused variables (REJECT). + + * code/ui/ui_shared.c: additions (ORIG). + * code/ui/ui_gameinfo.c: COM_Compress added (ORIG). + * code/ui/ui_atoms.c: print statements removed (ORIG). + * code/ui/ui_main.c (UI_DoServerRefresh): REJECT on comment edit... + + * code/game/g_cmds.c (Cmd_VoiceTaunt_f): logic changed heavily. ORIG. + * code/game/q_shared.h: Q3_VERSION "Q3 Team Arena Demo 1.27b" + plus Com_Memset, Com_Memcpy, CIN_shader, COM_Compress. + * code/game/g_main.c: Cvar change only + * code/game/ai_dmq3.c: $SOS$. + + * code/client/snd_mix.c: Com_Memset + * code/client/client.h: additions (ORIG). + * code/client/snd_mem.c: see below. + * code/client/snd_dma.c: $SOS$ (CVS keyword). + + * code/client/cl_cin.c: they removed unused (REJECT). + * code/cgame/cg_servercmds.c: ORIG. compress, noTaunt etc. + * code/cgame/cg_main.c: ORIG. Conditonal branch, COM_Compress. + * code/cgame/cg_consolecmds.c: ORIG. Cvar values changed. + * code/cgame/cg_draw.c (CG_DrawTeamBackground): ORIG. + no reject but *.orig file created. I just mark spots were + code changed after verifying the patch succeeded. + + * code/cgame/cg_event.c: fixed reject (REJECT). + * code/botlib/: all *.rej here due to SOS/CVS $Keyword$. + TODO: preserve SOS comments/rev history somehow. + + * Patch: patching up to demo source. + ln -s sos001122-demo work + diff -urbB sos001119/ work > work.diff + ln -s cvs-1.26/ work + patch -p0 < work.diff > work.patch + find cvs1.26/ -name '*.rej' -print + + * CVS: going to check in this snapshot and tag it as + cvs tag id1-26w-loki001207 + to prepare for upgrading to RC4. I have already made + many more changes than I wanted to w/o getting any + closer to pinpointing the problem, I might as well + patch up to id's more current sources. + + * code/botlib/be_interface.c: initialize by memset. Turns + out that this fails in Export_BotLibSetup on BotSetupWeaponAI + loading "weapons.c" (from the pak, presumably) with an unknown + structure field number. Mismatch of datafiles vs. source again. + + TODO: id replaced memsets in later source. + TODO: have memsets on all exports and imports. + + * SOS: RC4 source should be tagged "1.27g RC4" (raduffy). + Unfortunately the Linux client doesn't care a bit. Show + History does work if from/to date differ by at least a + day, and it shows the tag on code/ (only that subtree), + but recursive get aborts halfway. + Manual: http://www.sourcegear.com/SOS/Doc/ + +2000-12-06 Bernd Kreimeier + + * TEST: accepting missing shaders now. No bots, but I can + actually enter the game and play (more than can be said for + classic Q3 right now). + TODO: Error: BotStartFrame: bot library used before being setup + + * code/renderer/tr_shader.c: took out assertion for now... + * TEST: now missiopack/cgame loads + TODO: tr_shader.c:2275: R_FindShaderByName: failed + TODO: searches ui/assets/3_cursor2.TGA, has ui/assets/3_cursor3.tga + + * code/unix/Makefile (MPCGOBJ): ui_shared.o (duh). + DONE: /cgamei386.so: undefined symbol: PC_Float_Parse + + * code/botlib/be_ai_goal.c: initialize campspots etc. This + might or might not fix this one (didn't get back to gdb due + to mouse-only navigation). + DONE: 0x80d1d5b in BotFreeInfoEntities () at be_ai_goal.c:447 + + * TEST: this time with missionpack/cgame loading... noy + TODO: TA menu blocked after end of intro movie + TODO: console in_mouse 1 doesn't grap pointer even on vid_start? + + * code/cgame/cg_newdraw.c: -Werror. + * code/unix/Makefile (MPCGOBJ): cg_newdraw.o was missing (duh). + DONE: missionpack/cgamei386.so: undefined symbol: CG_OwnerDrawVisible" + + * code/ui/ui_shared.c:1309 assign after bail on NULL. + DONE: segfault in Item_SetFocus (item=0x0, x=0, y=0) + + * TEST: new set of DLL's (this time hopefully correct). + All baseq3/ DLL's load, as does the missionpack/ UI DLL. + The menus now work in both (TA seems mouse-only on everything + but "Quit"). Segfault on delayed TA "Quit" (stack fubared): + #5 0x809fc28 in VM_Call (vm=0x88408a0, callnum=3) at ..//qcommon/vm.c:617 + #6 0x805aafc in CL_KeyEvent (key=9, down=qtrue, time=128644) cl_keys.c:1194 + TODO: TA menu's w/o mouse? + TODO: Win32 goes submenus but does not unfold + TODO: Linux does not go submenus + + * code/ui/ui_main.c: see below. + TODO: LCC gets fits - operands of = have illegal types + TODO: 'pointer to const unsigned char' and 'pointer to const char' + * code/ui/ui_shared.c: see below. + * code/ui/ui_gameinfo.c: see below. + * code/ui/ui_atoms.c: see below. + * code/game/g_bot.c: more cruft. + * code/cgame/cg_draw.c: loads of functions modified for + MISSIONPACK that aren't used at all for MISSIONPACK anymore. + Development relics. + + * code/cgame/cg_consolecmds.c: -Werror. + Note: due to Makefile error never ever compiled... + + * code/unix/Makefile: fixed various dependency errors + for game and ui library. + TODO: create a new Makefile with patsubst and rules. + TODO: why C_ONLY in the i386 dedicated server? + + * code/unix/unix_main.c: use dlerror() excessively. + Littered more unused DLL related functions with assert(0). + TODO: clean up Sys_Load/UnloadDll (a real mess) + TODO: remove Zoid code cruft (unused per-DLL functions) + + * code/game/bg_misc.c: changed G_Printf for Com_Printf. + This was undefined in baseq3/uii386.so preventing loading. + + * TEST: +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0 + Note: so far I used only the game DLL.. duh. + UI DLL fails to load: missing G_Printf. + + * code/unix/Makefile: -DMALLOC_CHECK in addition to + the -DZONE_DEBUG I have used since switching to calloc. + Using MALLOC_CHECK=1 for now, might use 2 if something + comes up. + + * code/renderer/tr_init.c (GL_SetDefaultState): it does get + called, but does not show up in the log. + + * TEST: tried executing a script - get bounced. + TODO: is there any way to jump into a map? + TODO: cl_cinematics 0 (supress all fullscreen RoQ) + Next: used r_logfile 200 in Win32 (RC4) and Linux. + There is a buckload of setup code seemingly not done + at all in Linux? Either that, or logging is enabled + with a delay in Linux. + + * code/unix/linux_glimp.c: fixed autorepeat (H2/Fakk2 way). + +2000-12-05 Bernd Kreimeier + + * code/renderer/tr_mesh.c: added assert there. + * TEST: menus and in-game drawing are just as they were with + the initial SOS001119 port. In addition: + R_AddMD3Surfaces: no such frame 0 to -2147483477 + for 'models/players/xaero/upper.md3' + R_AddMD3Surfaces: no such frame -2147483477 to 171 + R_AddMD3Surfaces: no such frame 171 to -2147483498 + ad nauseam (used as my player model). + Triggered: haveing a trRefEntity_t *) 0x41dbbd00 with + frame = -2147483477. Might be a red herring (PRINT_DEVELOPER), + ignore for now. + + * code/ui/ui_main.c: missing return. + * code/ui/ui_shared.c: excess byte in initializer (which gcc + did not caught, but LCC did). Also LCC complains about + missing returns, but gcc doesn't (neither says unreacheable + code though). If necessary (MsVC?) guard with Q3_VM. + + * code/q3_ui/ui_ingame.c: see below. + * code/q3_ui/ui_atoms.c: voidfunc_f. LCC warns about conversion + from `pointer to void' to `pointer to void function(void)' + being compiler dependent. Casting NULL. Guess what, doesn't fix + it either. + TODO: do not use these cursed scripts to generate VM code, + we do not have proper rules for LCC/q3asm, thus the files never + get updated. + + * code/unix/Makefile: for paranoia's sake recreated the 1.17 + compile for the UI DLL (where only q_shared/math were actually + compiled as DO_SHLIB_CC. + Later: switched to different gcc. + + * STATIC: remaining problems are vmMain (same entry point for all + DLL's), could use cgMain, uiMain and gMain here for HARD_LINKED. + Note: I don't think id has used this in ages. + Plus all the collisions in *_syscalls.c, which simply can't be + fixed cheaply. None is the superset of 2 others, neither seems + w/o overlap to others. Full stop. + + * code/botlib/be_aas_move.c: see below. + * code/game/ai_dmq3.c: VEC_UP/DOWN, MOVEDIR_UP/DOWN now static. + See also game/g_utils.c for existing static duplicates. + + * code/game/q_shared.h: #define stricmp strcasecmp + * code/unix/Makefile: no mo' -Dstricmp=strcasecmp, see q_shared.h + Also: no mo' -I/usr/include/glide, no FX + TODO: are we building against system GL headers? ../Mesa/? + + * code/q3_ui/ui_atoms.c: comment on duplication + * code/cgame/cg_drawtools.c: use UI/CGAME_HARD_LINKED on UI duplicates + TODO: does this UI_ code in cg_drawtools/ui_atoms belong into ui_shared? + + * code/unix/Makefile: use -DQ3_STATIC + * code/game/q_shared.h (*_HARD_LINKED): trigger on Q3_STATIC + Later: collision between UI and CGAME is still there. This fixed + the Com_Error, Com_Printf issues though + + * code/unix/Makefile ($(B)/q3static/ai_vcmd.o): this file was + missing, hence undefined symbol. + ($(B)/baseq3/game/ai_vcmd.o): same here. + ($(B)/missionpack/game/ai_vcmd.o): same here. + + * STATIC: cg_syscalls.c, g_syscalls.c and ui_syscalls.c alias. + Multiply defined symbols: + Com_Error, Com_Printf + VEC_UP, VEC_DOWN + MOVEDIR_UP, MOVEDIR_DOWN + vmMain + dllEntry + PASSFLOAT + trap_Error + trap_Milliseconds + trap_Argc + trap_Argv + trap_FS_FOpenFile + trap_FS_Read + trap_FS_Write + trap_FS_FCloseFile + trap_FS_GetFileList + trap_R_RegisterModel + trap_R_RegisterSkin + trap_R_RegisterFont + trap_R_RegisterShaderNoMip + trap_R_ClearScene + trap_R_AddRefEntityToScene + trap_R_AddPolyToScene + trap_R_AddLightToScene + trap_R_RenderScene + trap_R_SetColor + trap_R_DrawStretchPic + trap_R_ModelBounds + trap_UpdateScree + trap_S_StartLocalSound + trap_S_RegisterSound + trap_Key_IsDown + trap_Key_GetCatcher + trap_Key_SetCatcher + trap_GetGlconfig + trap_PC_AddGlobalDefine + trap_PC_LoadSource + trap_PC_FreeSource + trap_PC_FreeSource + trap_PC_ReadToken + trap_PC_SourceFileAndLine + trap_S_StopBackgroundTrack + trap_S_StartBackgroundTrack + trap_RealTime + trap_CIN_PlayCinematic + trap_CIN_StopCinematic + trap_CIN_RunCinematic + trap_CIN_DrawCinematic + trap_CIN_SetExtents + trap_MemoryRemaining + trap_SendConsoleCommand + trap_Cvar_Register + trap_Cvar_Update + trap_Cvar_Set + trap_Cvar_VariableValue + trap_Cvar_VariableStringBuffer + trap_RealTime + trap_SnapVector // used in game/bg_*.c, needs conditional + More aliasing between ui_atoms.c and cg_drawtools.c: + UI_DrawBannerString + UI_ProportionalStringWidth + UI_ProportionalSizeScale + Undefined symbol: ai_team.o: In function `FindHumanTeamLeader': + ai_team.c:1899: undefined reference to `BotVoiceChat_Defend' + Note: + + * code/game/g_main.c: unused. + * code/game/g_arenas.c: unused. + * code/game/ai_team.c: init. + * code/game/ai_dmnet.c: /* in comment (odd). + Note: why do these come up now but not earlier? + TODO: the make dependencies might target wrong files. + + * code/unix/Makefile (TARGETS): added q3static. + Note: this is baseq3/ + + * TEST: +set r_logfile 100. It seems that the addition of + code (add an assertion etc.) changes the behavio of the binary. + The intro cinematics code seems to suffer first - didn't play, + then played, then (another assert added) doesn't play. Watch + out for (missionpack): + UI_CIN_PlayCinematic + SCR_PlayCinematic( mpintro.roq ) + trFMV::play(), playing mpintro.roq + Also fails to exit cleanly: break gives + #0 0x401919ee in __select () + #1 0x400bbcb8 in __DTOR_END__ () + #2 0x4004baa1 in _XSend () + #3 0x452b009f in GLXRenderFlush () + #4 0x804ce0c in _XRead () + #5 0x40680813 in ?? () + Stack is corrupted. + Note: ~/.q3a/gl.log + TODO: write per-frame files (see Heretic2) + TODO: add Heretic2 QGL (more detail) + + * code/unix/linux_qgl.c (QGL_EnableLogging): fixed countdown + (i.e. propagated changes from win32/, see Fakk2). + + * code/unix/linux_glimp.c: fixed QGL_EnableLogging argument + to avoid cast error (always qfalse). + + * code/unix/Makefile (DEBUG_CFLAGS): use ZONE_DEBUG. + + * code/qcommon/common.c: replaced malloc with calloc calls. + + * code/q3_ui/ui_local.h: have to use ui/ui_public.h + * code/cgame/cg_servercmds.c: requires ../ui/menudef.h + + * code/cgame/cg_consolecmds.c: ui/ui_shared.h is unique. + * code/q3_ui/ui_public.h: make sure this won't be compiled. + * code/client/client.h: we have to include ui/ui_public.h. + Note: id is obviously maintaing only the ui/ headers, so the + headers in q3_ui/ are deprecated. + + * code/renderer/tr_shader.c: added assertions (see Ryan's Fakk2 + problems with missing shaders). + + * code/game/g_cmds.c: below. + * code/game/ai_vcmd.c: below. + * code/game/ai_team.c: below. + * code/game/ai_dmnet.c: below. + * code/game/ai_dmq3.c: below. + * code/game/ai_chat.c: below. + * code/game/ai_cmd.c: ../../ui/menudef.h (new Q3TA script directory). + + * code/cgame/cg_newdraw.c: make sure it won't compile w/o MISSIONPACK. + + * code/cgame/cg_servercmds.c: below. + * code/cgame/cg_event.c: below. + * code/cgame/cg_consolecmds.c: below. + * code/client/keys.h: below. + * code/client/client.h: below. + * code/q3_ui/ui_local.h: include from ../q3_ui/ not ../ui/. + Note: id seems to intentionally use the header from the new ui/. + + * Makefile: checked -I$(UIDIR), there is no such. That means all + files include directly, which means all (including Q3) are using + the new ui/ headers. + +2000-12-04 Bernd Kreimeier + + * RC4: released as 362101115 Dec 4 11:40 TA_Q3A_RC4.zip + + * TEST: the corrupted menu problem is back :-(. Looks like I am in + for a static link next. + + * code/unix/Makefile (clean2): fixed (not all new OBJ covered). + * code/q3_ui/ui_teamorders.c: -Werror. + * code/q3_ui/ui_team.c: -Werror. + * code/q3_ui/ui_qmenu.c (Bitmap_Draw): -Werror. + * code/q3_ui/ui_mods.c (UI_Mods_LoadModsFromFile): unused. -Werror. + * code/q3_ui/ui_controls2.c: -Werror. + * code/q3_ui/ui_atoms.c: -Werror + * code/null/null_client.c: -Werror. + * code/unix/linux_joystick.c: -Werror. + * code/unix/linux_glimp.c: -Werror. + * code/unix/linux_qgl.c: -Werror. + * code/unix/unix_shared.c: -Werror. + * code/unix/unix_net.c: -Werror. + * code/unix/linux_local.h: added missing prototypes. + * code/unix/unix_main.c: -Werror. Includes linux_local.h + * code/jpeg-6/jdmainct.c: see below. + * code/jpeg-6/jcmainct.c: variables called "main" (*moan*) + * code/jpeg-6/jcdctmgr.c (forward_DCT): -Werror. + * code/botlib/l_script.c (PS_ReadLiteral): -Werror + * code/botlib/l_precomp.c (PC_AddBuiltinDefines): -Werror. + * code/botlib/be_interface.c: -Werror. + * code/botlib/be_aas_reach.c: -Werror + * code/botlib/be_aas_cluster.c: -Werror + * code/game/be_aas.h: -Werror. + Note: MrElusive accumulates a lot of code history in nested comments, + which gcc doesn't like at all. #if 0'ed to avoid. + * code/qcommon/vm_interpreted.c: -Werror. + * code/qcommon/unzip.c: -Werror. + * code/cgame/cg_servercmds.c: -Werror. + * code/cgame/cg_main.c: -Werror. + * code/cgame/cg_drawtools.c: -Werror. + * code/game/bg_misc.c: -Werror. + * code/game/be_ai_move.h (bot_avoidspot_s): added. + * code/botlib/be_ai_move.c: removed typedef struct bot_avoidspot_s + * code/client/snd_mix.c: -Werror. + * code/qcommon/md4.c: -Werror. + * code/qcommon/common.c: -Werror. + * code/client/cl_keys.c: -Werror. + * code/client/cl_cin.c: -Werror, init local variables. + * code/unix/Makefile: -Werror. need -O for -Wall for uninitialized + Note: the above is the list of files that got touched during a pass + with -g -O -Werror -Wall flags (in the hope of finding uninitialized + memory and ambiguous statements). Most of the above are simply + unused variables (or even code). + + TEST: RC3 data files, but DLL's. + TODO: TA gets stuck in initial sound, doesn't play cinematics (sometimes) + TODO: Q3 intro movie looses sound after Sarge gets teleported + TODO: Q3 ingame renders world, weapon, muzzleflash, hud, can shoot, + TODO: but no movement, hud background is fubared. + + * code/cgame/cg_main.c: cg_singlePlayerActive + + * code/q3_ui/ui_login.c: doesn't seem to be used? + * code/game/g_rankings.c (G_RankRunFrame): doesn't seem to be used. + * code/q3_ui/ui.sh: disabled this. + * code/q3_ui/q3_ui.sh: changed include path to ../q3_ui/ (duh). + + * code/game/game.sh: changed include path to ../q3_ui/ which + is not in the Win32 batch file. + * code/cgame/cg_rankings.c: this does not seem to be included. + * code/cgame/cgame_ta.sh: added -DCGAME. Also added cg_syscalls.c + to build (also missing in Win32). + + * code/cgame/cgame.sh: added -DCGAME (see cgame.bat). Also + changed include path to ../q3_ui/ which is not in the Win32 + batch file. Also added cg_syscalls.c to build (missing in + Win32). + +2000-12-01 Bernd Kreimeier + + * RC3: released as of sos001201 / Q3 1.27f + + * code/unix/Makefile: more fixes with clean build. The + changes made fix the menu rendering for Q3 but not TA. + Ingame graphics still broken. + + * code/game/game_ta.sh: created. Use game_ta.q3asm here. + * code/game/game.sh: no -DMISSIONPACK + * code/game/game_ta.q3asm: CR/LF, /. + + * code/cgame/cgame_ta.sh: created. Use cgame_ta.q3asm here. + * code/cgame/cgame.sh: no -DMISSIONPACK. No cg_newdraw, ui_shared. + * code/cgame/cgame.q3asm: No cg_newdraw, ui_shared. + CR/LF, /, cg_newDraw, and the output path/name. + + * code/q3_ui/q3_ui.q3asm: output to ui not q3_ui... + + * code/cgame/cg_event.c: cg_singlePlayerActive used here. + TODO: guard by MISSIONPACK + * code/cgame/cg_local.h: named q3print_t enum. Cvar + cg_singlePlayerActive for both Q3 and TA. + + + * code/unix/Makefile: cleanly separate B/baseq3/ and + B/missionpack/ subtrees during build. While new and old + UI are in separate directories, the cgame/ and game/ + are shared, with conditional -DMISSIONPACK compile + and different files includeds (cd_draw, cg_newdraw). + That means twice the number of targets (3 DLL's, 3 QVM's, + times two), and different build rules. + TODO: carefully check Win32 build for (other) conditionals + TODO: carefully check Win32 build for link lists + + * CVS: ui/, code/ui, botfiles/ and subdirectories are added. + The code/macosx/ directory turned out to be a real pain that + had to be edited manually, throwing out CVS/ directories in + the tree that had been created by SOS as they are in id's + repository: + code/macosx/Client/CVS + code/macosx/Client/PBUserInfo/CVS + code/macosx/Client/Quake3.nib/CVS + code/macosx/Common/CVS + code/macosx/DedicatedServer/CVS + code/macosx/DedicatedServer/PBUserInfo/CVS + Now tagged + cvs tag id1-26y-loki001119 + TODO: there are several new files not yet linked? + + * ChangeLog: merged the Changelog from the bk00119 working + branch (initial Q3TA port) based on sos001119 snapshot. Also + merged the source tree with cvs-1.17. + In the ChangeLog below *** MISSIONPACK *** indicates work + that was done on the branch (code-sos/ prefix in files). + The cvs update of this will be tagged with + cvs tag id1-26y-loki001119 + Use this tag to hunt for possible Linux fixes that got lost + (i.e. got dropped by id since id000516 and were thus not in + sos001119, but did not show in diff id000516 cvs1-17). + New directories in CVS: botfiles/, ui/. + Missing from SOS/Missionpack: SDK directories. + common, lcc, libs, q3asm, q3data, q3map, q3radiant. + + + * ssreport.txt: below. + Note: watch for files called "ssreport.txt", that's id ChangeLog. + * ui/ui_syscalls.asm: below. + * q3_ui/ui_syscalls.asm: below. + * game/g_syscalls.asm: below. + * cgame/cg_syscalls.asm: below. + * bspc/linux-i386.mak: below. + * bspc/lcc.mak: below. + * botlib/linux-i386.mak: below. + * botlib/lcc.mak: below. + * A3D/a3d_console_variables.txt: CR/LF issue (minimize diffs). + + * CVS: the checked bk001119 work copy of the sos001119 initial + checkout (completed with everything in the SOS "Missionpack" + tree, i.e. botfiles/ and botfiles.* added), copied over the + cvs-1.17 checkout. + Note: in these cases, BEWARE ui -> q3_ui/ links, and different + ChangeLogs. Also "make clean" helps. + + * unix/unix_net.c: below. + * unix/unix_main.c: below. + * unix/matha.s: below. + * unix/linux_qgl.c: below. + * unix/linux_glimp.c: see also linux_joystick.c. + * server/sv_client.c: below. + * renderer/tr_surface.c: below. + * renderer/qgl.h: below. + * qcommon/qcommon.h: below. + * qcommon/files.c: below. + * qcommon/common.c: below. + * q3_ui/ui_demo2.c: below. + * mac/mac_net.c: below. + * mac/mac_glimp2.c: below. + * game/surfaceflags.h: below. + * game/bg_lib.c: checked against id00516/cvs-1.17a diff. + * bspc/bspc.c: TH_AASToTetrahedrons call removed since id000516. + Note: our final compare of id000516 against cvs-1.17a, making sure + that all these differences are in bk001119 (initial Q3TA port). + If id branched the Q3TA base off before id000516 we might be screwed. + Note: I do not diff against bk000520, which had some minor changes + against id000516 (check VectorArrayNormalize, OTConfiguration), which + seem consistent with me taking a pre-id000516 source snapshot for that + working branch. + +2000-11-30 Bernd Kreimeier + + * TEST: compiled using the symbolic link ui/ -> q3_ui/. + Had to undo one CVS change, regarding + code/cgame/cg_syscalls.asm + code/game/g_syscalls.asm + code/q3_ui/ui_syscalls.asm + These files are neither generated by Win32 cgame.bat + nor cgame.sh (etc.), thus seemingly maintained by hand. + cvs tag pr1-17-loki001130b + should be used if somebody needs this 1.17 snapshot + (which, remember, is post-release, with additional fixes). + Later: + cvs tag pr1-17-loki001130c + includes the full ChangeLog (duh). + + * CVS: up until cvs-1.17-001130, code/ui/ contained the + Q3 code for the UI QVM/DLL. In Q3TA, this code has been + moved to code/q3_ui/, while at the same time the new + (scripting driven) UI code for Q3TA was maintained in + code/ui/. To preserve the history of code/ui/, it has been + renamed to q3/ui/ in the CVSROOT. + Note: this will BREAK all cvs-1.17 and before checkouts. + To compile earlier versions, move or link q3_ui/ to ui/. + The code has been tagged + cvs tag pr1-17-loki001130 + after the change. + DONE: remove code/*/vm/*.asm from CVSROOT + Note: this includes code/*/*.asm files (from *_syscalls.c). + These were originally tracked in CVS, but if we need + comparison of q3asm output or QVM files we can rely + on the Win32 and Linux SDK now. These files have been + physically removed from CVS now, followed by + cvs tag pr1-17-loki001130a + +2000-11-30 Bernd Kreimeier *** MISSIONPACK *** + + * RC2: new ZIP file (another 360M for convenience). + + * SOS: new CVS module, Quake3_sos. This will be used to track + the unchanged SOS checkouts from id. As their repository + is read-only, and there is no estimate on when changes might + be backpropagated there, I will track their changes in a + separate module, and update our local Quake3 module + accordingly. This is effectively "tracking 3rd party" + w/o import and half-automated, forced mergers - in other + words, we now branch starting with our post-1.17 changes, + for the benefit of moving at all. + Baseline is a slightly changed PR-1.17 id000516 source dump + (essentially ui/ moved to q3_ui for continuity, and CR/LF etc.). + cvs import Quake3_sos id000516 pr1-17-win32 + cvs import Quake3_sos sos001119 pr1-26-win32 + cvs import Quake3_sos sos001120 pr1-26-win32-001120 + cvs import Quake3_sos sos001121 pr1-26-win32-001121 + cvs import Quake3_sos sos001122 pr1-26-win32-001122 + cvs import Quake3_sos sos001122-demo pr1-26-win32-demo + This is about the 1.26w Team Arena Win32 demo release, give or + take a couple of lines. Has Q3_VERSION "Q3 Team Arena Demo 1.27b". + cvs import Quake3_sos sos001123 pr1-26-win32-001123 + cvs import Quake3_sos sos001126 pr1-26-win32-001126 + Now track id versions (see code/game/q_shared.h:Q3_VERSION) + cvs import Quake3_sos sos001128 pr1-27c-win32-001128 + With 1.27d they switched from Demo to full version (RC1). + cvs import Quake3_sos sos001129 pr1-27d-win32-001129 + cvs import Quake3_sos sos001130a pr1-27d-win32-001130a + Now switched to 1.27e. This import is done from the SOS + working directory. + cvs import Quake3_sos sos001130b pr1-27e-win32-001130b + Note: SoS created rwx attributes which are luckily fixed + automagically during import. It is also seemingly incapable + to compare files, and leave files that have not changed the + hell alone. I can't do cvs update due to the $..$ tags in + the original files (which CVS can't be told to ignore), + so I have to do import (creating a load of vendor tagged + branches), but at least cvsweb and cvs get the revisions + right. + + * code-sos/unix/Makefile: added linux_joystick + * code-sos/unix/linux_local.h: match mac/ and win32/, for prototypes. + + * code-sos/unix/linux_joystick.c: new file, code from linux_glimp.c + Note: decided to separate this, as (a) we might edit/extend + a lot, (b), it's not in the id tree, (c) it's not GL, (d) + there might be even more oddball devices. Anything that + cuts down on diffs. + + * code-sos/unix/linux_glimp.c (Q_stristr): const return (cvs1.17). + Also (XLateKey): added more keyboard mappings (ASCII on + upper row digits) (cvs1.17). Added in the minimal joystick + hooks (cvars, function calls). Fixed joystick cvar naming + to match win32 (kept joystick_threshold). + TODO: joystick stubs for dedicated? + + * CVS: I have to move up to 1.27d (data, Win32 networking). + With exception of linux_glimp.c (mostly joystick code), + all cvs1.17 changes should now be in the work snapshot + based on the first sos001119 we got from id. There are + also some additional changes in there already, thus I'll + move the (buggy) 1.26 snapshot into CVS before adding even + more differences. + + +2000-11-29 Bernd Kreimeier *** MISSIONPACK *** + + * RC1: TeamArena_Q3A_RC1.zip. Source has moved from + Q3VERSION "Q3 Team Arena Demo 1.27c" to "Q3 1.27d" now. + + * code-sos/qcommon/common.c: added Com_InitPushEvent(). Also + increased MAX_PUSHED_EVENTS to 256. + Note: this is another case of buffer memory not zero'ed. + Com_EventLoop, fixed evTime to evType in debug print. + + * TEST: baseq3/ + +set sv_pure 0 +set vm_game 0 +set in_mouse 0 +set developer 2 + TODO: Team Arena in menu leads to RE_Shutdown(1) and locks + TODO: can't play game + TODO: shaders can't load *.tga, *.jpg files are there + TODO: DO_CC linking for DLL's, DO_SHLIB_CC only for export? + TODO: ERROR: Bad player movement angle + TODO: Warning: cvar "..." given initial values: "..." and "..." + TODO: TA demo ERROR: CL_ParseServerMessage: Illegible server message + TODO: WARNING: Com_PushEvent overflow + + * code-sos/qcommon/files.c: add NULL filter for our Sys_ListFiles calls. + * unix/unix_shared.c (Sys_ListFiles): signature has changed, + additional Sys_ListFiles argument now. + + * code-sos/unix/unix_net.c (Sys_GetPacket): see below (readcount=0). + * code-sos/unix/unix_main.c: see below (Mike's and my changes to DLL + loading, my event buffer clear fixes). + * code-sos/unix/linux_qgl.c (QGL_Init): see below (__FX__ guards). + TODO: abstract WGL/GLX and end unfortunate QGL duplication. + TODO: spice up QGL with Linux H2 full version. + * code-sos/q3_ui/ui_demo2.c: fix on demo names - no Q_strupr(demoname). + Note: in CVS this fix is in ui/ui_demo2.c. CVS is screwed by + id choosing the old name for new directory... + TODO: manual intervention on "ui goes q3_ui" in CVSROOT? + * renderer/qgl.h: see below (__FX__ guards). + * qcommon/files.c: migrated in the 1.17cvs changes against the + id000516 code dump, i.e. the (not marked - boo hiss) mkv changes. + Note: all the above is based on a diff of the last id code dump + pre-1.17 against our CVS, with those fixes now migrated into the + sos1.26 snapshot. + TODO: move in joystick code. + TODO: replace XAutoRepeatOn/Off with filter (focus). + TODO: DGA 2.0 and such. + + * code-sos/game/q_shared.c: valid compare for NULL strings + * code-sos/unix/unix_main.c: QRTLD, and now using RTLD_NOW. + Note: it is a bad idea to load game DLL's that are missing symbols. + + * code-sos/ui/ui_main.c: see below. + * code-sos/game/g_main.c: see below. + * code-sos/q3_ui/ui_main.c: see below. + * code-sos/cgame/cg_main.c: made cvarTable and cvarTableSize static. This resolved + a segfault related to traversing the UI table during Init. + Note: there is a segfault related to this variable being out of bounds. + Different struct size in global variables possible aliasing between the + DLL's. + + * code-sos/unix/unix_main.c (Sys_Error): assert(0), no exit in debug. + * code-sos/game/q_shared.c: now aborts on NULL destination. Also DPrintf's + on bogus excess copies. + TODO: make all those string functions safe, at least assert. + * code-sos/server/sv_init.c: comment in SV_Init + // init the botlib here because we need the pre-compiler in the UI + Called in qcommon/common.c:Com_Init, were CL_Init is called afterwards... + * code-sos/server/sv_bot.c: the botlib_import is filled here. + * code-sos/unix/unix_main.c (Sys_GetBotLibAPI): RTLD_NOW. Which is for naught, + as this code is not used and has never been used. assert(0) + + * code-sos/botlib/be_interface.c: botimport supposed to be set here. + * code-sos/botlib/l_memory.c: segfault with q3_ui/ DLL. + #1 0x80e23ec in GetMemory (size=35) at ..//botlib/l_memory.c:331 + 331 ptr = botimport.GetMemory(size + sizeof(unsigned long int)); + as botimport is completely NULL'ed. + + * code-sos/q3_ui/q3_ui.sh: created from ui/ui.sh 1.17 + + * code-sos/q3_ui/q3_ui.q3asm: unfubared (CR/LF, / path). + + * code-sos/unix/Makefile: added q3_ui/ make targets (basically + ui/ targets from CVS 1.17 Makefile for starters). + + * code-sos/q3_ui/: this is the old UI code, which does not use + ../ui/menus.txt (see ui/ui_main.c). In other words, + the code in ui/ now has to be compiled or qvm'ed + for missionpack/, but to create the necessary DLL or + QVM modules for baseq3/ we need to use q3_ui/. + + +2000-11-27 Bernd Kreimeier *** MISSIONPACK *** + + * code-sos/game/bg_lib.c: ld problem with a custom "tan(..)" + TODO: loooking forward to SIGFPE on this code base. + + * code-sos/ui/ui_util.c: this file is empty. + + * code-sos/ui/ui.sh: new files: + ui_shared.c + ui_util.c + Replaced by the /ui/*.menu files: + q3lcc: can't find `../ui_cdkey.c' + q3lcc: can't find `../ui_ingame.c' + etc. + + * code-sos/cgame/cgame.q3asm: added cg_newdraw entry. + Also added ui_shared entry. + * cgame/cgame.sh: added cg_newdraw.c entry. + Also added ../ui/ui_shared.c entry. + + * code-sos/cgame/cg_newdraw.c: renamed (was cg_newDraw.c mixed case). + Note: the infidels have taken over. + + * cgame/cgame.sh: added -DMISSIONPACK. + Note: w/o, q3lcc complains + ../cg_event.c:204: undeclared identifier `cg_singlePlayerActive' + ../cg_event.c:204: left operand of . has incompatible type `int' + which indicates that this source does not compile w/o MISSIONPACK + anymore. The baseq3/pak4.pk3 file in the Q3TA snapshot archives + are dated + 284464 11-10-00 14:02 vm/cgame.qvm + 463940 11-14-00 14:47 vm/qagame.qvm + 271596 11-14-00 14:48 vm/ui.qvm + the code dump is from 11-19. + Note: Make does not abort on q3lcc complains + + * code-sos/game/game.sh: also added ai_vcmd.c entry. + + * code-sos/ui/ui.q3asm: fubared (below). In addition, this is + the only one to have a + -o "/tmp/quake3/missionpack/vm/ui" + line in it. Given that the other 2 QVM modules are + also dependend on -DMISSIONPACK, this seems a real mess. + For now using the same path as the other 3. + * code-sos/cgame/cgame.q3asm: below. + * code-sos/game/game.q3asm: fubared. Fixed CR/LF and \ in paths + again (read by q3asm called by game.sh called by make). + * unix/Makefile: updated fpor DLL/QVM. + Note: also shell scripts to use q3lcc not lcc. + + +2000-11-27 Bernd Kreimeier + + * code/unix/Makefile: now expects a run/ directory + relative (between this, the Loki standards, and the + utility code in the same repository, it's ever so + slightly less dorky). + TODO: fix broken copyfiles target etc.pp. + + * code/game/bg_lib.c: turns out the changes I + undid 001120 were affecting original Zoid + Linux port related defines, which break VM + compile. Mike fixed those (which I unfixed + when referring to the latest id code that does + not contain these patches). However, they + duplicate ANSI libc symbols, so the guards might + be wrong. The symbols are missing when compiling + for VM, so I now use the existing lcc -DQ3_VM + flag: + //#if !defined ( _MSC_VER ) && ! defined ( __linux__ ) + #if defined ( Q3_VM ) + This will break DLL compile on non-ANSI platforms, + which will have to be added to the conditional then. + + * code/ui/ui.sh: below. + * code/game/game.sh: below. + * code/cgame/cgame.sh: Linux SDK installs q3lcc to + avoid collisions with regular lcc pre-installs. The + scripts fail with "lcc not found", but do not abort + the Makefile. + Note: now that VM code gets actually built, there + are errors: + g_main:648 ERROR: symbol vsprintf undefined + bg_pmove:1221 ERROR: symbol abs undefined + q_math:4309 ERROR: symbol fabs undefined + q_shared:2801 ERROR: symbol tolower undefined + q_shared:2862 ERROR: symbol toupper undefined + ai_dmq3:208 ERROR: symbol atoi undefined + ai_cmd:4951 ERROR: symbol sscanf undefined + + +2000-11-20 Bernd Kreimeier + + * TEST: test compile of pr-1.17+cvs fixes segfaults due + to new baseq3/pak4.pk3 + Note: to self ... 1.17 is not compatible with new files. + Checking into CVS next. + + * code/: changes applied by us that are not in id's code base + affect q_shared.c (NULL in Q_stricmp), files.c (FIXME fs_cdpath, + Sys_ConcatenateFileList, ui_demo2.c (demo no tolower on linux). + In unix/ linux_glimp.c (joystick code), qgl.h, linux_qgl.c (__FX__), + unix_main.c (dlopen bug and event buffers), unix_net.c (readcount), + matha.s (assembly warning). + + * code/server/sv_client.c (SV_WriteDownloadToClient): + No effective change on FS_SV_FOpenFileRead call, they reworked + autodownload some more seemingly. + + * code/renderer/tr_surface.c: VectorArrayNormalize + + * code/qcommon/qcommon.h: see below. + * code/qcommon/files.c: Com_ReadConfigs removed. + * code/qcommon/common.c: removed Com_ReadConfigs, + textual replacement of body in Com_Init. + + * code/mac/mac_net.c: not applied (undone by id) + OTConfiguration *config <> OTConfigurationRef config + + * code/mac/mac_glimp2.c: r_colorbits->integer > 16 + * code/game/surfaceflags.h (CONTENTS_BOTCLIP): added. + + * code/game/q_shared.h: not applied (undone by id) + #if defined(ppc) || defined(__ppc) || defined(__ppc__) + #define idppc 1 + #else + #define idppc 0 + #endif + + * code/game/q_math.c: added another CPP line to guard + BoxOnPlaneSide, removed WIN32 guard. + TODO: this could be broken code guarded in all current + compiles... + + * code/game/bg_lib.c: left Q#_VM guard for typedef cmp_t + Added !defined( __linux__ ) for tolower and atoi. + Note: the changes above relate to the very last code update + from id prior to the 6 month blackout, which were not in + CVS when Michael made his updates. Needed to establish the + baseline for the new patch. Source dump 1.17.00520, against + SOS 1.26w-001119 version. + +2000-11-20 Bernd Kreimeier *** MISSIONPACK *** + + * TEST: running against the data up to TeamArena_Q3A_001109.zip + Hunk_Clear: reset the hunk ok + Program received signal SIGBUS, Bus error. + "q3dm2", killBots==qtrue + #0 CM_ClearMap () at ..//qcommon/cm_load.c:644 + #1 0x80884a7 in SV_Map_f () at ..//server/sv_ccmds.c:159 + #2 0x8072579 in Cmd_ExecuteString (text=0xbffff4b0 "spmap q3dm2") at ..//qcommon/cmd.c:591 + #3 0x8071dfe in Cbuf_Execute () at ..//qcommon/cmd.c:190 + #4 0x80763f7 in Com_Frame () at ..//qcommon/common.c:2547 + #5 0x8130d6b in main (argc=13, argv=0xbffff984) at ..//unix/unix_main.c:953 + #6 0x40100cb3 in __libc_start_main (main=0x8130bc4
+ Not reproducible (screen stayed black). + + * TEST: +set developer 1, same for Win32 and Linux: + Can't find gfx/misc/flare.tga + Can't find gfx/misc/sun.tga + Can't find gfx/misc/console02.tga + Can't find vm/ui.map + Can't find textures/sfx/logo512.tga + Can't find gfx/colors/black.tga + Can't find models/mapobjects/banner/banner5_2.md3 + Can't find models/mapobjects/banner/banner5_1.md3 + Can't find textures/sfx/firegorre2.tga + Can't find textures/sfx/bolts.tga + Can't find menu/art/unknownmap.tga + + * Q3TA: after nearly 6 months, a code update from id. SOS access + even. Got it to compile, link and start, but its currently broken + (menu doesn't render in full, can't get into game etc.). Need + a baseline 1.17 to diff against. Last code dump was May 16, with + bspc code updated May 19. Checking working directory of bk000520 + against CVS next (Mike's fixes never made it into id's codebase + or a post 1.17 release, neither did my fixes as released in the + point release version 1.17). + +2000-11-19 Bernd Kreimeier *** MISSIONPACK *** + + * TEST: Win32 install as tested with 1.26w. quake3.x86 (Q3A game) + Warning: cvar "r_uifullscreen" given initial values: "1" and "0" + Warning: cvar "r_inGameVideo" given initial values: "1" and "0" + ^3WARNING: sound/feedback/hit.wav is a 8 bit wav file + (on windows, sound/weapons/weapon_hover.wav is missing...) + Menu only partially displayed in TA and baseq3 play, menu itself + seems to work. Freetype? + WARNING: Com_PushEvent overflow + + * code-sos/game/game.sh: not in SOS, moved in from CVS snapshot. + + * code-sos/qcommon/common.c: conditional DEDICATED to get rid off + CL_ShutdownCGame/CL_ShutdownUI/CIN_CloseAllVideos. + Same for UI_usesUniqueCDKey: dedicated server does not + write CD key file. + TODO: check whether there is an unneeded "read CD key" + for dedicated server. + + * code-sos/null/null_client.c (CL_ShutdownAll): added dummy. + + * code-sos/unix/Makefile: server/sv_net_chan.o for dedicated server. + + * code-sos/null/null_snddma.c: fixed S_RegisterSound signature. + + * code-sos/client/snd_mix.c: snd_p, snd_linear_count, snd_out + can't be static, as used by unix/snd_mixa.s. + + * code-sos/unix/Makefile: added to the executable target: + renderer/tr_font.c + client/cl_net_chan.c + server/sv_net_chan.c + Also added a lot of jc*.c files to build, to fix unresolved + symbol errors. + TODO: is there unused jpeg-6/jd*.o code linked in now? + + * code-sos/ft2/smooth.c: includes ftgrays.c, ftsmooth.c + + * code-sos/ft2/truetype.c: ttdriver.c, ttpload.c, ttgload.c, ttobjs.c. + Also (see ftoption.h) TT_CONFIG_OPTION_BYTECODE_INTERPRETER ttinterp.c + + * code-sos/ft2/sfnt.c: includes ttload.c, ttcmap.c, sfobjs.c, + sfdriver.c. lso (see ftoption.h) + TT_CONFIG_OPTION_EMBEDDED_BITMAPS ttsbit.c + TT_CONFIG_OPTION_POSTSCRIPT_NAMES ttpost.c + + * code-sos/ft2/ftbase.c: includes ftcalc.c, ftobjs.c, ftstream.c, + ftlist.c, ftoutln.c, ftextend.c, ftnames.c. + + * code-sos/ft2/autohint.c: includes ahangles.c, ahglyph.c, ahglobal.c, + ahhint.c, ahmodule.c. + + * code-sos/unix/Makefile: added ft2/ to client objects, took out + ftraster.c/ftrend1.c (see below), added -DFT_FLAT_COMPILE. + * ft2/ftsmooth.c: -DFT_FLAT_COMPILE required. + * ft2/raster1.c: -DFT_FLAT_COMPILE required. + Note: this includes ftraster.c/ftrend1.c. + + * code-sos/qcommon/vm_x86.c: _ftol is missing, ftolPtr only defined + for Win32, but used in generic code. Workaround for now. + TODO: find good Linux ftol, or use old solution. + + * SoS checkout. chown -R a+w * recode ibmpc:lat1 */*.h */*.c + +2000-06-30 Michael Vance + + * misc: Spoke with Leonardo about qvm mess. + + * ui/ui.sh: Created to build much like the ui.bat script. + + * ui/ui.q3asm: Use linux style paths. + + * game/game.sh: Created to build much like the game.bat script. + + * game/game.q3asm: Use linux style paths. + + * cgame/cgame.sh: Created to build much like the cgame.bat script. + + * cgame/cgame.q3asm: Use linux systel paths. + + * unix/Makefile: Use the new .sh scripts to build the QVM files. + + * lcc/etc/linux.c: Build .asm files instead of .s files. + + * misc: QVMs now load properly, with minor glitches that should + hopefully be solvable. The new build scripts conflict with the + .asm files already in CVS, as the generated byte code is slightly + different in some cases. + +2000-06-29 Michael Vance + + * lcc/makefile: Tweaked to automatically include the system + compiler's header location. Added an install directory. + + * lcc/custom.mk: Added a build directory. + + * lcc/etc/linux.c: Numerous small tweaks to make compiling the VM + code a much simpler task. + + * q3asm/Makefile: Created. + + * q3asm/q3asm.c: Fixed uninitialized variable in + HashString(). Fixed off by one in argument parsing. + + * misc: Had Brian remove the Xmd.h include from glx.h so that we can + build Quake3 on XFree86 4.0 systems. + + * wine: Attempted to build with lcc.exe and q3asm.exe using wine, + also did not work. This is in contrast to MikeP's .qvms, which + seem to work. + +2000-06-28 Michael Vance + + * common/files.c: Fixed Mods menu behaviour. + + * unix/linux_qgl.c: Guarded references to fxMesa. + + * renderer/qgl.h: Guarded references to fxMesa. + + * ui/ui_demo2.c: Don't convert filename to uppercase. + +2000-05-07 Bernd Kreimeier + + * common/cmdlib.c: windowism, not guarded. Added WIN32 around "ATOM a". + + * q3map/Makefile: Linux Makefile. + + * q3map/Makefile.irix: "makefile" in original code, Irix-only Makefile. + Just fixed some redundant TAB that GNU make despises about as much as I + despise GNU Make, and changed to a relative path. + +2000-05-01 Bernd Kreimeier + + * q3radiant/: updated with Q3Radiant198b3-src.zip. + Tagged (globally) as q3radiant-198b3. + Kept the old files + 3DFXCamWnd.h + 3DFXCamWnd.cpp + MainFrm2.cpp + New files + Shaders.h + misc/ (contributed special TGA resources, don't relly belong) + Removed: + pName + Changed filenames to previous case: + UNNAMED.MAP -> unnamed.map + RES/BMP0002.BMP -> RES/bmp00002.bmp + Changed: + changelog.txt -> ChangeLog + +2000-04-28 Bernd Kreimeier + + * CVS: bk000425 modified sources. This replaces the unix/ directory + which is not yet in id's SourceSafe. Two check-ins, due to minor + changes in an attempt to nail the Voodoo3 related crashes (driver + problems, not a Q3 issue). Undid some of the QFL changes for PI + and the log bug fix - put back in (TODO). Also includes: + * Quake3/code/botlib/be_aas_sample.c: single file update from Robert. + + * CVS: id000423 code dumps (two of them). Applying Loki patches. + Tagged for the final version (all patches). + + * CVS: id000422 code dump. This did not include the 1.16n fixes + used for Linux, and was the first dump for the 1.17 security fix + release. + Note: forgot to check in the ft2/ headers themselves, but they + are not used in the current codebase anyway. Are added in next + dump. Also there is use of CVS/CVS-like $Keyword$ patterns in + some files, and between their revisions and ours we fuck this up. + Also, id ZIP files create write protected sources, have to do + chmod -R a+w Quake3/ to work and overwrite files. + + * CVS: bk000315 modified source. This version was the 1.16n release. + Note: the changes applied here are not in the subsequent code dumps + of id. If you want to compile the Linux version as released you + have to use bk-tagged versions until the patches are merged in by + Robert Duffy. + + * CVS: id000314 engine code dump, same procedure as below, tag. + Note: this version added vm/ sudirectories with assembly files + for cgame, game, ui. CVS tag id000314. + + * CVS: id000304 engine code dump. Now there is a problem, as CVS + was used in the Mac sources. Do + find . -name 'CVS' -exec rm -r {} \; + before cvs update, then tagged: + cvs -d /loki/cvsroot/ tag id000304 Quake3/ + + * CVS: checked in a source snapshot of the id00303 engine code + and the id0003029 tools code. The tool sources are not fully in + sync, and we have only partial source from earlier engine revisions. + The engine source marks where Loki took over from Dave Kirsch. + This snapshot (with all temporary and bogus files) is imported + and tagged using: + cvs -d /loki/cvsroot import Quake3 id000303 initial + + Modules: + code: the Q3 engine code, including a jpeg-6/ copy + common: code shared by tools + libs: code shared by tools, inlcuding a jpeg6/ copy + q3asm: VM bytecode assembly + q3data: misc. Q3 data conversions + q3map: BSP builder + q3radiant: Win32 editor, as is + lcc: C compiler for q3asm + + The sources have not been cleaned up, and binary files have not been + removed. The Q3Radiant code base might exhibit mixed case asmbiguities + in the future, and future source dumps might come from SourceForge + instead. + +2000-04-25 Bernd Kreimeier + + * q3code.id000425/unix/Makefile: relative path, relocatable. + Note: first code merge with id, finally :-). + +2000-04-24 Bernd Kreimeier + + * q3code.bk000422/unix/matha.s: in C(BoxOnPlaneSide) + the following line triggers assembler warning: + "missing prefix `*' in absolute indirect address, maybe misassembled!" + jmp Ljmptab(,%eax,4) + + + * q3code.bk000422/unix/Makefile (MOUNT_DIR): rember to change. + TODO: fix this bloody Makefile to be relocatable, damnit. + + * q3code.bk000422/cgame/cg_event.c: applied JCash fix again + (see EV_EVENT_BITS below). Send e-mail to verify. + + * q3code.bk000422/renderer/tr_image.c: "../jpeg-6/jpeglib.h" again. + + * q3code.bk000422/: created from the id dump of today, lacking + all but one of my changes (sigh). Swapped unix/ competely, takes + care of 90%. Submitted all changes again to Robert... + +2000-04-19 Bernd Kreimeier + + * q3code.bk000315/unix/linux_glimp.c (GLimp_EndFrame): + QGL_EnableLogging( r_logFile->value ) doesn't work? + + * q3code.bk000315/unix/linux_qgl.c: GLimp_LogNewFrame() is + obsolete. QGL_EnableLogging was out of sync with Win32 and + did not support the new framecounter decrement logic. + +2000-04-03 Bernd Kreimeier + + * q3code.bk000315/server/sv_snapshot.c: svs.nextSnapshotEntities + is a signed integer unconditionally incremented, which gets + negative and causes a segfaulting indexing an array. Added reset + to counter. Might fail if snapshot numbers are supposed to + monotonically increase. + +2000-04-02 Bernd Kreimeier + + * q3code.bk000315/client/cl_parse.c (CL_ParseServerMessage): + assert(0) on Illegible message (remember to +set in_mouse 0). + TODO: have to add a dump message function, it's unreadable. + + * botlib/be_ai_goal.c (InitLevelItemHeap): loop counter -2 + left -2 with uninitialized next, and -1 disconnected. Removed + redundant memset. There is an item alloc leak I suspect, as + max_levelitems 1024 merely delayed the overflow error. + +2000-04-01 Bernd Kreimeier + + * botlib/be_ai_goal.c (InitLevelItemHeap): still segfaults. + Not memsetting the entire item heap. As items are cleared + on return, that leaves only memory corruption? + Later: upped max_levelitems from 256 to 1024 + Later: client dies on connect: + Error: CL_ParseServerMessage: Illegible server message 255 + + +2000-03-31 Bernd Kreimeier + + * botlib/be_ai_goal.c: initializing global vars. + Segfault in AllocLevelItem () + at /home/bk/Games/Quake3/q3code/botlib/be_ai_goal.c:364 + I suspect that the initial freelevelitems setting is at + the end of the list and eventually exposed. + + * cgame/cg_event.c: according to Johmn Cash: + itemNum = (es->event & ~EV_EVENT_BITS) - EV_USE_ITEM0 + Quote: "This causes itemNum to be invalid about half the time, + preventing any client side effect tied to the item from occurring." + +2000-03-06 Bernd Kreimeier + + * qcommon/common.c: set pushEvent buffer and indices + to zero in Com_Init(). + + * q3code/qcommon/qcommon.h: made SE_NONE (and for paranoia + also NA_BOT) explicitely set to zero. + +2000-02-27 Bernd Kreimeier + + * unix/Makefile: added dmalloc in an attempt to get on + the Z_Free bug. Futile. Despite stripping dmalloc debug + token down to essentials, I get a (seemingly bogus or + unrelated): + debug-malloc library: dumping program, fatal error + Error: possibly bad .c filename pointer (err 24) + + +2000-02-26 Bernd Kreimeier + + * qcommon/common.c: various debug builts to isolate the + Z_Free bug. It reproducibly happens on some machines + with SE_PACKET, but the packets themselves look + thoroughly corrupted. + +2000-02-21 Bernd Kreimeier + + * qcommon/common.c (Com_EventLoop): possible problem + here, pointer does not get cleared. + + * unix/linux_glimp.c (InitSig): no signal handler. + * common/common.c: dump in Com_Error for debug. + +2000-02-17 Bernd Kreimeier + + * q3code: new dump from Zoid. Repeat tr_image.c fix. + + * unix/Makefile: added client/snd_adpcm.c (linkage errors). + Later: added entire JPDIR and rules, for tr_image.c. + Later: had to fix fules for game/ai_*.c files. + Later: removed ui/ui_quit.o (n/a) + Later: took out -mpentiumpro -march=pentiumpro + + * renderer/tr_image.c: windowism in #include path (see below). + #include "..\jpeg-6\jpeglib.h" + +1999-12-27 Bernd Kreimeier + + * Alpha: tried a dedicated server compile. Segfaults in + ../qcommon/files.c:1682, a paksort function doing pointer + fiddling. + + * Makefile.alpha: created. + Note: want to take the SDL/Setup autoconf ASAP. + + * unix/unix_main.c: fixed __axp__ to __alpha__, guarded + _FPU_SETCW. + + * qcommon/vm_alpha.c: dummy, created. + * qcommon/vm_null.c: dummy, created. + +1999-12-04 Bernd Kreimeier + + * renderer/tr_image.c: windowism in #include path. + #include "..\jpeg-6\jpeglib.h" + + * Revision 1.11: from Zoid by e-mail. + Note: threw away my playground copy, starting with the + ZIP file. Zoid's using CVS now, but we can't remote + access it. Thus did the + "find . -name 'CVS' -exec rm -rf {} \;" + and then track it as 3rd party source by + + + * ChangeLog: created. Now starting to track Q3A source. + +--------- q3code log --------------------------------------------- Added: trunk/STATUS =================================================================== --- trunk/STATUS 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/STATUS 2005-10-29 01:53:09 UTC (rev 196) @@ -0,0 +1,19 @@ +Things to bear in mind when reading/updating this file: + * The status column refers only to the latest information we are given, so it may be out of date + * "working" doesn't necessarily mean "usable", see the notes column + * Status is one of "working", "broken" or "unknown" + * In the case of "broken" or "unknown" LKWR refers to the last known working revision + +Platform | Arch | Status | LKWR | Notes +---------+------------+---------+---------+------ +Linux | gcc-x86 | working | | + | gcc-x86_64 | working | | x86_64 JIT bytecode compiler disabled by default + | gcc-ppc | working | | Dedicated server crashes in VM interpreter +---------+------------+---------+---------+------ +Windows | mingw-x86 | working | | + | MSVC-x86 | unknown | 180ish? | +---------+------------+---------+---------+------ +Mac OSX | xcode-G3 | working | | + | xcode-G4 | working | | Client has severe graphical glitches +---------+------------+---------+---------+------ +FreeBSD | gcc-x86 | working | | Copied: trunk/TODO (from rev 189, trunk/todo) =================================================================== --- trunk/todo 2005-10-27 21:49:36 UTC (rev 189) +++ trunk/TODO 2005-10-29 01:53:09 UTC (rev 196) @@ -0,0 +1,5 @@ +* OpenAL patch +* IPV6 support? +* Clean platform specific stuff from lcc +* Merge exotic ports from various kind contributors +* Try and find a way to remove the DirectX SDK dependancy from the mingw build Modified: trunk/code/botlib/aasfile.h =================================================================== --- trunk/code/botlib/aasfile.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/aasfile.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas.h =================================================================== --- trunk/code/botlib/be_aas.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_bsp.h =================================================================== --- trunk/code/botlib/be_aas_bsp.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_bsp.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_bspq3.c =================================================================== --- trunk/code/botlib/be_aas_bspq3.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_bspq3.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_cluster.c =================================================================== --- trunk/code/botlib/be_aas_cluster.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_cluster.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_cluster.h =================================================================== --- trunk/code/botlib/be_aas_cluster.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_cluster.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_debug.c =================================================================== --- trunk/code/botlib/be_aas_debug.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_debug.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_debug.h =================================================================== --- trunk/code/botlib/be_aas_debug.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_debug.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_def.h =================================================================== --- trunk/code/botlib/be_aas_def.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_def.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_entity.c =================================================================== --- trunk/code/botlib/be_aas_entity.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_entity.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_entity.h =================================================================== --- trunk/code/botlib/be_aas_entity.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_entity.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_file.c =================================================================== --- trunk/code/botlib/be_aas_file.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_file.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_file.h =================================================================== --- trunk/code/botlib/be_aas_file.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_file.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_funcs.h =================================================================== --- trunk/code/botlib/be_aas_funcs.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_funcs.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_main.c =================================================================== --- trunk/code/botlib/be_aas_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_main.h =================================================================== --- trunk/code/botlib/be_aas_main.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_main.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_move.c =================================================================== --- trunk/code/botlib/be_aas_move.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_move.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_move.h =================================================================== --- trunk/code/botlib/be_aas_move.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_move.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_optimize.c =================================================================== --- trunk/code/botlib/be_aas_optimize.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_optimize.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_optimize.h =================================================================== --- trunk/code/botlib/be_aas_optimize.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_optimize.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_reach.c =================================================================== --- trunk/code/botlib/be_aas_reach.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_reach.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_reach.h =================================================================== --- trunk/code/botlib/be_aas_reach.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_reach.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_route.c =================================================================== --- trunk/code/botlib/be_aas_route.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_route.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_route.h =================================================================== --- trunk/code/botlib/be_aas_route.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_route.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_routealt.c =================================================================== --- trunk/code/botlib/be_aas_routealt.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_routealt.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_routealt.h =================================================================== --- trunk/code/botlib/be_aas_routealt.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_routealt.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_sample.c =================================================================== --- trunk/code/botlib/be_aas_sample.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_sample.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_aas_sample.h =================================================================== --- trunk/code/botlib/be_aas_sample.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_aas_sample.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_char.c =================================================================== --- trunk/code/botlib/be_ai_char.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_char.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_char.h =================================================================== --- trunk/code/botlib/be_ai_char.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_char.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_chat.c =================================================================== --- trunk/code/botlib/be_ai_chat.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_chat.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_chat.h =================================================================== --- trunk/code/botlib/be_ai_chat.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_chat.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_gen.c =================================================================== --- trunk/code/botlib/be_ai_gen.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_gen.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_gen.h =================================================================== --- trunk/code/botlib/be_ai_gen.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_gen.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_goal.c =================================================================== --- trunk/code/botlib/be_ai_goal.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_goal.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_goal.h =================================================================== --- trunk/code/botlib/be_ai_goal.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_goal.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_move.c =================================================================== --- trunk/code/botlib/be_ai_move.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_move.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_move.h =================================================================== --- trunk/code/botlib/be_ai_move.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_move.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_weap.c =================================================================== --- trunk/code/botlib/be_ai_weap.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_weap.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_weap.h =================================================================== --- trunk/code/botlib/be_ai_weap.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_weap.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_weight.c =================================================================== --- trunk/code/botlib/be_ai_weight.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_weight.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ai_weight.h =================================================================== --- trunk/code/botlib/be_ai_weight.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ai_weight.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ea.c =================================================================== --- trunk/code/botlib/be_ea.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ea.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_ea.h =================================================================== --- trunk/code/botlib/be_ea.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_ea.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_interface.c =================================================================== --- trunk/code/botlib/be_interface.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_interface.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/be_interface.h =================================================================== --- trunk/code/botlib/be_interface.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/be_interface.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/botlib.h =================================================================== --- trunk/code/botlib/botlib.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/botlib.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_crc.c =================================================================== --- trunk/code/botlib/l_crc.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_crc.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_crc.h =================================================================== --- trunk/code/botlib/l_crc.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_crc.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_libvar.c =================================================================== --- trunk/code/botlib/l_libvar.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_libvar.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_libvar.h =================================================================== --- trunk/code/botlib/l_libvar.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_libvar.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_log.c =================================================================== --- trunk/code/botlib/l_log.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_log.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_log.h =================================================================== --- trunk/code/botlib/l_log.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_log.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_memory.c =================================================================== --- trunk/code/botlib/l_memory.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_memory.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_memory.h =================================================================== --- trunk/code/botlib/l_memory.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_memory.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_precomp.c =================================================================== --- trunk/code/botlib/l_precomp.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_precomp.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_precomp.h =================================================================== --- trunk/code/botlib/l_precomp.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_precomp.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_script.c =================================================================== --- trunk/code/botlib/l_script.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_script.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_script.h =================================================================== --- trunk/code/botlib/l_script.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_script.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_struct.c =================================================================== --- trunk/code/botlib/l_struct.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_struct.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_struct.h =================================================================== --- trunk/code/botlib/l_struct.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_struct.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/botlib/l_utils.h =================================================================== --- trunk/code/botlib/l_utils.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/botlib/l_utils.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_areamerging.c =================================================================== --- trunk/code/bspc/aas_areamerging.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_areamerging.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_areamerging.h =================================================================== --- trunk/code/bspc/aas_areamerging.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_areamerging.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_cfg.c =================================================================== --- trunk/code/bspc/aas_cfg.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_cfg.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_cfg.h =================================================================== --- trunk/code/bspc/aas_cfg.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_cfg.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_create.c =================================================================== --- trunk/code/bspc/aas_create.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_create.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_create.h =================================================================== --- trunk/code/bspc/aas_create.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_create.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_edgemelting.c =================================================================== --- trunk/code/bspc/aas_edgemelting.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_edgemelting.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_edgemelting.h =================================================================== --- trunk/code/bspc/aas_edgemelting.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_edgemelting.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_facemerging.c =================================================================== --- trunk/code/bspc/aas_facemerging.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_facemerging.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_facemerging.h =================================================================== --- trunk/code/bspc/aas_facemerging.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_facemerging.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_file.c =================================================================== --- trunk/code/bspc/aas_file.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_file.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_file.h =================================================================== --- trunk/code/bspc/aas_file.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_file.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_gsubdiv.c =================================================================== --- trunk/code/bspc/aas_gsubdiv.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_gsubdiv.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_gsubdiv.h =================================================================== --- trunk/code/bspc/aas_gsubdiv.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_gsubdiv.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_map.c =================================================================== --- trunk/code/bspc/aas_map.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_map.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_map.h =================================================================== --- trunk/code/bspc/aas_map.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_map.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_prunenodes.c =================================================================== --- trunk/code/bspc/aas_prunenodes.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_prunenodes.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_prunenodes.h =================================================================== --- trunk/code/bspc/aas_prunenodes.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_prunenodes.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_store.c =================================================================== --- trunk/code/bspc/aas_store.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_store.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aas_store.h =================================================================== --- trunk/code/bspc/aas_store.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aas_store.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/aasfile.h =================================================================== --- trunk/code/bspc/aasfile.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/aasfile.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/be_aas_bspc.c =================================================================== --- trunk/code/bspc/be_aas_bspc.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/be_aas_bspc.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/be_aas_bspc.h =================================================================== --- trunk/code/bspc/be_aas_bspc.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/be_aas_bspc.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/brushbsp.c =================================================================== --- trunk/code/bspc/brushbsp.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/brushbsp.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/bspc.c =================================================================== --- trunk/code/bspc/bspc.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/bspc.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/cfgq3.c =================================================================== --- trunk/code/bspc/cfgq3.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/cfgq3.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/csg.c =================================================================== --- trunk/code/bspc/csg.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/csg.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/faces.c =================================================================== --- trunk/code/bspc/faces.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/faces.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/gldraw.c =================================================================== --- trunk/code/bspc/gldraw.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/gldraw.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/glfile.c =================================================================== --- trunk/code/bspc/glfile.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/glfile.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_ent.c =================================================================== --- trunk/code/bspc/l_bsp_ent.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_ent.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_ent.h =================================================================== --- trunk/code/bspc/l_bsp_ent.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_ent.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_hl.c =================================================================== --- trunk/code/bspc/l_bsp_hl.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_hl.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_hl.h =================================================================== --- trunk/code/bspc/l_bsp_hl.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_hl.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_q1.c =================================================================== --- trunk/code/bspc/l_bsp_q1.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_q1.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_q1.h =================================================================== --- trunk/code/bspc/l_bsp_q1.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_q1.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_q2.c =================================================================== --- trunk/code/bspc/l_bsp_q2.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_q2.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_q2.h =================================================================== --- trunk/code/bspc/l_bsp_q2.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_q2.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_q3.c =================================================================== --- trunk/code/bspc/l_bsp_q3.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_q3.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_q3.h =================================================================== --- trunk/code/bspc/l_bsp_q3.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_q3.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_sin.c =================================================================== --- trunk/code/bspc/l_bsp_sin.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_sin.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_bsp_sin.h =================================================================== --- trunk/code/bspc/l_bsp_sin.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_bsp_sin.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_cmd.c =================================================================== --- trunk/code/bspc/l_cmd.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_cmd.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_cmd.h =================================================================== --- trunk/code/bspc/l_cmd.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_cmd.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_log.c =================================================================== --- trunk/code/bspc/l_log.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_log.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_log.h =================================================================== --- trunk/code/bspc/l_log.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_log.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_math.c =================================================================== --- trunk/code/bspc/l_math.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_math.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_math.h =================================================================== --- trunk/code/bspc/l_math.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_math.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_mem.c =================================================================== --- trunk/code/bspc/l_mem.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_mem.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_mem.h =================================================================== --- trunk/code/bspc/l_mem.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_mem.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_poly.c =================================================================== --- trunk/code/bspc/l_poly.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_poly.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_poly.h =================================================================== --- trunk/code/bspc/l_poly.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_poly.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_qfiles.c =================================================================== --- trunk/code/bspc/l_qfiles.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_qfiles.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_qfiles.h =================================================================== --- trunk/code/bspc/l_qfiles.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_qfiles.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_threads.c =================================================================== --- trunk/code/bspc/l_threads.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_threads.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_threads.h =================================================================== --- trunk/code/bspc/l_threads.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_threads.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_utils.c =================================================================== --- trunk/code/bspc/l_utils.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_utils.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/l_utils.h =================================================================== --- trunk/code/bspc/l_utils.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/l_utils.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/leakfile.c =================================================================== --- trunk/code/bspc/leakfile.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/leakfile.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/map.c =================================================================== --- trunk/code/bspc/map.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/map.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/map_hl.c =================================================================== --- trunk/code/bspc/map_hl.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/map_hl.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/map_q1.c =================================================================== --- trunk/code/bspc/map_q1.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/map_q1.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/map_q2.c =================================================================== --- trunk/code/bspc/map_q2.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/map_q2.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/map_q3.c =================================================================== --- trunk/code/bspc/map_q3.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/map_q3.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/map_sin.c =================================================================== --- trunk/code/bspc/map_sin.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/map_sin.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/nodraw.c =================================================================== --- trunk/code/bspc/nodraw.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/nodraw.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/portals.c =================================================================== --- trunk/code/bspc/portals.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/portals.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/prtfile.c =================================================================== --- trunk/code/bspc/prtfile.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/prtfile.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/q2files.h =================================================================== --- trunk/code/bspc/q2files.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/q2files.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/q3files.h =================================================================== --- trunk/code/bspc/q3files.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/q3files.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/qbsp.h =================================================================== --- trunk/code/bspc/qbsp.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/qbsp.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/qfiles.h =================================================================== --- trunk/code/bspc/qfiles.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/qfiles.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/sinfiles.h =================================================================== --- trunk/code/bspc/sinfiles.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/sinfiles.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/tetrahedron.c =================================================================== --- trunk/code/bspc/tetrahedron.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/tetrahedron.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/tetrahedron.h =================================================================== --- trunk/code/bspc/tetrahedron.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/tetrahedron.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/textures.c =================================================================== --- trunk/code/bspc/textures.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/textures.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/tree.c =================================================================== --- trunk/code/bspc/tree.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/tree.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/bspc/writebsp.c =================================================================== --- trunk/code/bspc/writebsp.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/bspc/writebsp.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_consolecmds.c =================================================================== --- trunk/code/cgame/cg_consolecmds.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_consolecmds.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_draw.c =================================================================== --- trunk/code/cgame/cg_draw.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_draw.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_drawtools.c =================================================================== --- trunk/code/cgame/cg_drawtools.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_drawtools.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_effects.c =================================================================== --- trunk/code/cgame/cg_effects.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_effects.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_ents.c =================================================================== --- trunk/code/cgame/cg_ents.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_ents.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_event.c =================================================================== --- trunk/code/cgame/cg_event.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_event.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_info.c =================================================================== --- trunk/code/cgame/cg_info.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_info.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_local.h =================================================================== --- trunk/code/cgame/cg_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_localents.c =================================================================== --- trunk/code/cgame/cg_localents.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_localents.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_main.c =================================================================== --- trunk/code/cgame/cg_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_marks.c =================================================================== --- trunk/code/cgame/cg_marks.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_marks.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_newdraw.c =================================================================== --- trunk/code/cgame/cg_newdraw.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_newdraw.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_particles.c =================================================================== --- trunk/code/cgame/cg_particles.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_particles.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_players.c =================================================================== --- trunk/code/cgame/cg_players.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_players.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_playerstate.c =================================================================== --- trunk/code/cgame/cg_playerstate.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_playerstate.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_predict.c =================================================================== --- trunk/code/cgame/cg_predict.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_predict.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_public.h =================================================================== --- trunk/code/cgame/cg_public.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_public.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_scoreboard.c =================================================================== --- trunk/code/cgame/cg_scoreboard.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_scoreboard.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_servercmds.c =================================================================== --- trunk/code/cgame/cg_servercmds.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_servercmds.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_snapshot.c =================================================================== --- trunk/code/cgame/cg_snapshot.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_snapshot.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_syscalls.c =================================================================== --- trunk/code/cgame/cg_syscalls.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_syscalls.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_view.c =================================================================== --- trunk/code/cgame/cg_view.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_view.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/cgame/cg_weapons.c =================================================================== --- trunk/code/cgame/cg_weapons.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/cgame/cg_weapons.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_cgame.c =================================================================== --- trunk/code/client/cl_cgame.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_cgame.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_cin.c =================================================================== --- trunk/code/client/cl_cin.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_cin.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_console.c =================================================================== --- trunk/code/client/cl_console.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_console.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_input.c =================================================================== --- trunk/code/client/cl_input.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_input.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_keys.c =================================================================== --- trunk/code/client/cl_keys.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_keys.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_main.c =================================================================== --- trunk/code/client/cl_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_net_chan.c =================================================================== --- trunk/code/client/cl_net_chan.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_net_chan.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_parse.c =================================================================== --- trunk/code/client/cl_parse.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_parse.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_scrn.c =================================================================== --- trunk/code/client/cl_scrn.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_scrn.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/cl_ui.c =================================================================== --- trunk/code/client/cl_ui.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/cl_ui.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/client.h =================================================================== --- trunk/code/client/client.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/client.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/keycodes.h =================================================================== --- trunk/code/client/keycodes.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/keycodes.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/keys.h =================================================================== --- trunk/code/client/keys.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/keys.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/snd_dma.c =================================================================== --- trunk/code/client/snd_dma.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/snd_dma.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/snd_local.h =================================================================== --- trunk/code/client/snd_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/snd_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/snd_mem.c =================================================================== --- trunk/code/client/snd_mem.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/snd_mem.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/snd_mix.c =================================================================== --- trunk/code/client/snd_mix.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/snd_mix.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/snd_public.h =================================================================== --- trunk/code/client/snd_public.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/snd_public.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/client/snd_wavelet.c =================================================================== --- trunk/code/client/snd_wavelet.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/client/snd_wavelet.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_chat.c =================================================================== --- trunk/code/game/ai_chat.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_chat.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_chat.h =================================================================== --- trunk/code/game/ai_chat.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_chat.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_cmd.c =================================================================== --- trunk/code/game/ai_cmd.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_cmd.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_cmd.h =================================================================== --- trunk/code/game/ai_cmd.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_cmd.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_dmnet.c =================================================================== --- trunk/code/game/ai_dmnet.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_dmnet.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_dmnet.h =================================================================== --- trunk/code/game/ai_dmnet.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_dmnet.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_dmq3.c =================================================================== --- trunk/code/game/ai_dmq3.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_dmq3.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_dmq3.h =================================================================== --- trunk/code/game/ai_dmq3.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_dmq3.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_main.c =================================================================== --- trunk/code/game/ai_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_main.h =================================================================== --- trunk/code/game/ai_main.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_main.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_team.c =================================================================== --- trunk/code/game/ai_team.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_team.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_team.h =================================================================== --- trunk/code/game/ai_team.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_team.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_vcmd.c =================================================================== --- trunk/code/game/ai_vcmd.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_vcmd.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/ai_vcmd.h =================================================================== --- trunk/code/game/ai_vcmd.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/ai_vcmd.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/bg_lib.h =================================================================== --- trunk/code/game/bg_lib.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/bg_lib.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/bg_local.h =================================================================== --- trunk/code/game/bg_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/bg_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/bg_misc.c =================================================================== --- trunk/code/game/bg_misc.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/bg_misc.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/bg_pmove.c =================================================================== --- trunk/code/game/bg_pmove.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/bg_pmove.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/bg_public.h =================================================================== --- trunk/code/game/bg_public.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/bg_public.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/bg_slidemove.c =================================================================== --- trunk/code/game/bg_slidemove.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/bg_slidemove.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/chars.h =================================================================== --- trunk/code/game/chars.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/chars.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_active.c =================================================================== --- trunk/code/game/g_active.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_active.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_arenas.c =================================================================== --- trunk/code/game/g_arenas.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_arenas.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_bot.c =================================================================== --- trunk/code/game/g_bot.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_bot.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_client.c =================================================================== --- trunk/code/game/g_client.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_client.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_cmds.c =================================================================== --- trunk/code/game/g_cmds.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_cmds.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_combat.c =================================================================== --- trunk/code/game/g_combat.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_combat.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_items.c =================================================================== --- trunk/code/game/g_items.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_items.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_local.h =================================================================== --- trunk/code/game/g_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_main.c =================================================================== --- trunk/code/game/g_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_mem.c =================================================================== --- trunk/code/game/g_mem.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_mem.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_misc.c =================================================================== --- trunk/code/game/g_misc.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_misc.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_missile.c =================================================================== --- trunk/code/game/g_missile.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_missile.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_mover.c =================================================================== --- trunk/code/game/g_mover.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_mover.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_public.h =================================================================== --- trunk/code/game/g_public.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_public.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_rankings.c =================================================================== --- trunk/code/game/g_rankings.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_rankings.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_rankings.h =================================================================== --- trunk/code/game/g_rankings.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_rankings.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_session.c =================================================================== --- trunk/code/game/g_session.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_session.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_spawn.c =================================================================== --- trunk/code/game/g_spawn.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_spawn.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_svcmds.c =================================================================== --- trunk/code/game/g_svcmds.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_svcmds.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_syscalls.c =================================================================== --- trunk/code/game/g_syscalls.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_syscalls.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_target.c =================================================================== --- trunk/code/game/g_target.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_target.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_team.c =================================================================== --- trunk/code/game/g_team.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_team.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_team.h =================================================================== --- trunk/code/game/g_team.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_team.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_trigger.c =================================================================== --- trunk/code/game/g_trigger.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_trigger.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_utils.c =================================================================== --- trunk/code/game/g_utils.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_utils.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/g_weapon.c =================================================================== --- trunk/code/game/g_weapon.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/g_weapon.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/inv.h =================================================================== --- trunk/code/game/inv.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/inv.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/match.h =================================================================== --- trunk/code/game/match.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/match.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/game/syn.h =================================================================== --- trunk/code/game/syn.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/game/syn.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/CGMouseDeltaFix.h =================================================================== --- trunk/code/macosx/CGMouseDeltaFix.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/CGMouseDeltaFix.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/CGMouseDeltaFix.m =================================================================== --- trunk/code/macosx/CGMouseDeltaFix.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/CGMouseDeltaFix.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/CGPrivateAPI.h =================================================================== --- trunk/code/macosx/CGPrivateAPI.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/CGPrivateAPI.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/Q3Controller.h =================================================================== --- trunk/code/macosx/Q3Controller.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/Q3Controller.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/Q3Controller.m =================================================================== --- trunk/code/macosx/Q3Controller.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/Q3Controller.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_common.c =================================================================== --- trunk/code/macosx/macosx_common.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_common.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_display.h =================================================================== --- trunk/code/macosx/macosx_display.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_display.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_display.m =================================================================== --- trunk/code/macosx/macosx_display.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_display.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_glimp.h =================================================================== --- trunk/code/macosx/macosx_glimp.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_glimp.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_glimp.m =================================================================== --- trunk/code/macosx/macosx_glimp.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_glimp.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_glsmp_mutex.m =================================================================== --- trunk/code/macosx/macosx_glsmp_mutex.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_glsmp_mutex.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_glsmp_null.m =================================================================== --- trunk/code/macosx/macosx_glsmp_null.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_glsmp_null.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_glsmp_ports.m =================================================================== --- trunk/code/macosx/macosx_glsmp_ports.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_glsmp_ports.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_input.m =================================================================== --- trunk/code/macosx/macosx_input.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_input.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_local.h =================================================================== --- trunk/code/macosx/macosx_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_qgl.h =================================================================== --- trunk/code/macosx/macosx_qgl.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_qgl.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_sndcore.m =================================================================== --- trunk/code/macosx/macosx_sndcore.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_sndcore.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_snddma.m =================================================================== --- trunk/code/macosx/macosx_snddma.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_snddma.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_sys.m =================================================================== --- trunk/code/macosx/macosx_sys.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_sys.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_timers.h =================================================================== --- trunk/code/macosx/macosx_timers.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_timers.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/macosx/macosx_timers.m =================================================================== --- trunk/code/macosx/macosx_timers.m 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/macosx/macosx_timers.m 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/null/mac_net.c =================================================================== --- trunk/code/null/mac_net.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/null/mac_net.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/null/null_client.c =================================================================== --- trunk/code/null/null_client.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/null/null_client.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/null/null_glimp.c =================================================================== --- trunk/code/null/null_glimp.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/null/null_glimp.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/null/null_input.c =================================================================== --- trunk/code/null/null_input.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/null/null_input.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/null/null_main.c =================================================================== --- trunk/code/null/null_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/null/null_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/null/null_net.c =================================================================== --- trunk/code/null/null_net.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/null/null_net.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/null/null_snddma.c =================================================================== --- trunk/code/null/null_snddma.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/null/null_snddma.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_addbots.c =================================================================== --- trunk/code/q3_ui/ui_addbots.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_addbots.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_atoms.c =================================================================== --- trunk/code/q3_ui/ui_atoms.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_atoms.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_cdkey.c =================================================================== --- trunk/code/q3_ui/ui_cdkey.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_cdkey.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_cinematics.c =================================================================== --- trunk/code/q3_ui/ui_cinematics.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_cinematics.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_confirm.c =================================================================== --- trunk/code/q3_ui/ui_confirm.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_confirm.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_connect.c =================================================================== --- trunk/code/q3_ui/ui_connect.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_connect.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_controls2.c =================================================================== --- trunk/code/q3_ui/ui_controls2.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_controls2.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_credits.c =================================================================== --- trunk/code/q3_ui/ui_credits.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_credits.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_demo2.c =================================================================== --- trunk/code/q3_ui/ui_demo2.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_demo2.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_display.c =================================================================== --- trunk/code/q3_ui/ui_display.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_display.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_gameinfo.c =================================================================== --- trunk/code/q3_ui/ui_gameinfo.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_gameinfo.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_ingame.c =================================================================== --- trunk/code/q3_ui/ui_ingame.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_ingame.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_loadconfig.c =================================================================== --- trunk/code/q3_ui/ui_loadconfig.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_loadconfig.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_local.h =================================================================== --- trunk/code/q3_ui/ui_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_login.c =================================================================== --- trunk/code/q3_ui/ui_login.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_login.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_main.c =================================================================== --- trunk/code/q3_ui/ui_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_menu.c =================================================================== --- trunk/code/q3_ui/ui_menu.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_menu.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_mfield.c =================================================================== --- trunk/code/q3_ui/ui_mfield.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_mfield.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_mods.c =================================================================== --- trunk/code/q3_ui/ui_mods.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_mods.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_network.c =================================================================== --- trunk/code/q3_ui/ui_network.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_network.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_options.c =================================================================== --- trunk/code/q3_ui/ui_options.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_options.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_playermodel.c =================================================================== --- trunk/code/q3_ui/ui_playermodel.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_playermodel.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_players.c =================================================================== --- trunk/code/q3_ui/ui_players.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_players.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_playersettings.c =================================================================== --- trunk/code/q3_ui/ui_playersettings.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_playersettings.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_preferences.c =================================================================== --- trunk/code/q3_ui/ui_preferences.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_preferences.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_qmenu.c =================================================================== --- trunk/code/q3_ui/ui_qmenu.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_qmenu.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_rankings.c =================================================================== --- trunk/code/q3_ui/ui_rankings.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_rankings.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_rankstatus.c =================================================================== --- trunk/code/q3_ui/ui_rankstatus.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_rankstatus.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_removebots.c =================================================================== --- trunk/code/q3_ui/ui_removebots.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_removebots.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_saveconfig.c =================================================================== --- trunk/code/q3_ui/ui_saveconfig.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_saveconfig.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_serverinfo.c =================================================================== --- trunk/code/q3_ui/ui_serverinfo.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_serverinfo.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_servers2.c =================================================================== --- trunk/code/q3_ui/ui_servers2.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_servers2.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_setup.c =================================================================== --- trunk/code/q3_ui/ui_setup.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_setup.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_signup.c =================================================================== --- trunk/code/q3_ui/ui_signup.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_signup.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_sound.c =================================================================== --- trunk/code/q3_ui/ui_sound.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_sound.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_sparena.c =================================================================== --- trunk/code/q3_ui/ui_sparena.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_sparena.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_specifyleague.c =================================================================== --- trunk/code/q3_ui/ui_specifyleague.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_specifyleague.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_specifyserver.c =================================================================== --- trunk/code/q3_ui/ui_specifyserver.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_specifyserver.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_splevel.c =================================================================== --- trunk/code/q3_ui/ui_splevel.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_splevel.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_sppostgame.c =================================================================== --- trunk/code/q3_ui/ui_sppostgame.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_sppostgame.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_spreset.c =================================================================== --- trunk/code/q3_ui/ui_spreset.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_spreset.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_spskill.c =================================================================== --- trunk/code/q3_ui/ui_spskill.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_spskill.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_startserver.c =================================================================== --- trunk/code/q3_ui/ui_startserver.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_startserver.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_team.c =================================================================== --- trunk/code/q3_ui/ui_team.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_team.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_teamorders.c =================================================================== --- trunk/code/q3_ui/ui_teamorders.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_teamorders.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/q3_ui/ui_video.c =================================================================== --- trunk/code/q3_ui/ui_video.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/q3_ui/ui_video.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cm_load.c =================================================================== --- trunk/code/qcommon/cm_load.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cm_load.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cm_local.h =================================================================== --- trunk/code/qcommon/cm_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cm_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cm_patch.c =================================================================== --- trunk/code/qcommon/cm_patch.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cm_patch.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cm_patch.h =================================================================== --- trunk/code/qcommon/cm_patch.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cm_patch.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cm_polylib.c =================================================================== --- trunk/code/qcommon/cm_polylib.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cm_polylib.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cm_polylib.h =================================================================== --- trunk/code/qcommon/cm_polylib.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cm_polylib.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cm_public.h =================================================================== --- trunk/code/qcommon/cm_public.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cm_public.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cm_test.c =================================================================== --- trunk/code/qcommon/cm_test.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cm_test.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cm_trace.c =================================================================== --- trunk/code/qcommon/cm_trace.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cm_trace.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cmd.c =================================================================== --- trunk/code/qcommon/cmd.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cmd.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/common.c =================================================================== --- trunk/code/qcommon/common.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/common.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/cvar.c =================================================================== --- trunk/code/qcommon/cvar.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/cvar.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/files.c =================================================================== --- trunk/code/qcommon/files.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/files.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/huffman.c =================================================================== --- trunk/code/qcommon/huffman.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/huffman.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/msg.c =================================================================== --- trunk/code/qcommon/msg.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/msg.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/net_chan.c =================================================================== --- trunk/code/qcommon/net_chan.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/net_chan.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/q_math.c =================================================================== --- trunk/code/qcommon/q_math.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/q_math.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/q_shared.c =================================================================== --- trunk/code/qcommon/q_shared.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/q_shared.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/q_shared.h =================================================================== --- trunk/code/qcommon/q_shared.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/q_shared.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/qcommon.h =================================================================== --- trunk/code/qcommon/qcommon.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/qcommon.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/qfiles.h =================================================================== --- trunk/code/qcommon/qfiles.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/qfiles.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/surfaceflags.h =================================================================== --- trunk/code/qcommon/surfaceflags.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/surfaceflags.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/unzip.h =================================================================== --- trunk/code/qcommon/unzip.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/unzip.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/vm.c =================================================================== --- trunk/code/qcommon/vm.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/vm.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/vm_interpreted.c =================================================================== --- trunk/code/qcommon/vm_interpreted.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/vm_interpreted.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/vm_local.h =================================================================== --- trunk/code/qcommon/vm_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/vm_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/vm_ppc.c =================================================================== --- trunk/code/qcommon/vm_ppc.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/vm_ppc.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/vm_ppc_new.c =================================================================== --- trunk/code/qcommon/vm_ppc_new.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/vm_ppc_new.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/vm_x86.c =================================================================== --- trunk/code/qcommon/vm_x86.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/vm_x86.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/qcommon/vm_x86_64.c =================================================================== --- trunk/code/qcommon/vm_x86_64.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/qcommon/vm_x86_64.c 2005-10-29 01:53:09 UTC (rev 196) @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/qgl.h =================================================================== --- trunk/code/renderer/qgl.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/qgl.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/qgl_linked.h =================================================================== --- trunk/code/renderer/qgl_linked.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/qgl_linked.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_animation.c =================================================================== --- trunk/code/renderer/tr_animation.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_animation.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_backend.c =================================================================== --- trunk/code/renderer/tr_backend.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_backend.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_bsp.c =================================================================== --- trunk/code/renderer/tr_bsp.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_bsp.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_cmds.c =================================================================== --- trunk/code/renderer/tr_cmds.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_cmds.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_curve.c =================================================================== --- trunk/code/renderer/tr_curve.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_curve.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_flares.c =================================================================== --- trunk/code/renderer/tr_flares.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_flares.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_font.c =================================================================== --- trunk/code/renderer/tr_font.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_font.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_image.c =================================================================== --- trunk/code/renderer/tr_image.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_image.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_init.c =================================================================== --- trunk/code/renderer/tr_init.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_init.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_light.c =================================================================== --- trunk/code/renderer/tr_light.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_light.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_local.h =================================================================== --- trunk/code/renderer/tr_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_main.c =================================================================== --- trunk/code/renderer/tr_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_marks.c =================================================================== --- trunk/code/renderer/tr_marks.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_marks.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_mesh.c =================================================================== --- trunk/code/renderer/tr_mesh.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_mesh.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_model.c =================================================================== --- trunk/code/renderer/tr_model.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_model.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_noise.c =================================================================== --- trunk/code/renderer/tr_noise.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_noise.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_public.h =================================================================== --- trunk/code/renderer/tr_public.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_public.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_scene.c =================================================================== --- trunk/code/renderer/tr_scene.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_scene.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_shade.c =================================================================== --- trunk/code/renderer/tr_shade.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_shade.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_shade_calc.c =================================================================== --- trunk/code/renderer/tr_shade_calc.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_shade_calc.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_shader.c =================================================================== --- trunk/code/renderer/tr_shader.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_shader.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_shadows.c =================================================================== --- trunk/code/renderer/tr_shadows.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_shadows.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_sky.c =================================================================== --- trunk/code/renderer/tr_sky.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_sky.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_surface.c =================================================================== --- trunk/code/renderer/tr_surface.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_surface.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_types.h =================================================================== --- trunk/code/renderer/tr_types.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_types.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/renderer/tr_world.c =================================================================== --- trunk/code/renderer/tr_world.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/renderer/tr_world.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/server.h =================================================================== --- trunk/code/server/server.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/server.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_bot.c =================================================================== --- trunk/code/server/sv_bot.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_bot.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_ccmds.c =================================================================== --- trunk/code/server/sv_ccmds.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_ccmds.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_client.c =================================================================== --- trunk/code/server/sv_client.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_client.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_game.c =================================================================== --- trunk/code/server/sv_game.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_game.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_init.c =================================================================== --- trunk/code/server/sv_init.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_init.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_main.c =================================================================== --- trunk/code/server/sv_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_net_chan.c =================================================================== --- trunk/code/server/sv_net_chan.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_net_chan.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_rankings.c =================================================================== --- trunk/code/server/sv_rankings.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_rankings.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_snapshot.c =================================================================== --- trunk/code/server/sv_snapshot.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_snapshot.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/server/sv_world.c =================================================================== --- trunk/code/server/sv_world.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/server/sv_world.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/splines/math_angles.h =================================================================== --- trunk/code/splines/math_angles.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/splines/math_angles.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/splines/math_matrix.h =================================================================== --- trunk/code/splines/math_matrix.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/splines/math_matrix.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/splines/math_quaternion.h =================================================================== --- trunk/code/splines/math_quaternion.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/splines/math_quaternion.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/splines/math_vector.h =================================================================== --- trunk/code/splines/math_vector.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/splines/math_vector.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/splines/q_shared.h =================================================================== --- trunk/code/splines/q_shared.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/splines/q_shared.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/splines/splines.h =================================================================== --- trunk/code/splines/splines.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/splines/splines.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/splines/util_list.h =================================================================== --- trunk/code/splines/util_list.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/splines/util_list.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/splines/util_str.h =================================================================== --- trunk/code/splines/util_str.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/splines/util_str.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/tools/asm/cmdlib.c =================================================================== --- trunk/code/tools/asm/cmdlib.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/tools/asm/cmdlib.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/tools/asm/cmdlib.h =================================================================== --- trunk/code/tools/asm/cmdlib.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/tools/asm/cmdlib.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/tools/asm/mathlib.h =================================================================== --- trunk/code/tools/asm/mathlib.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/tools/asm/mathlib.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/tools/asm/opstrings.h =================================================================== --- trunk/code/tools/asm/opstrings.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/tools/asm/opstrings.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/tools/asm/q3asm.c =================================================================== --- trunk/code/tools/asm/q3asm.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/tools/asm/q3asm.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/ui/ui_atoms.c =================================================================== --- trunk/code/ui/ui_atoms.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/ui/ui_atoms.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/ui/ui_gameinfo.c =================================================================== --- trunk/code/ui/ui_gameinfo.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/ui/ui_gameinfo.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/ui/ui_local.h =================================================================== --- trunk/code/ui/ui_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/ui/ui_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/ui/ui_main.c =================================================================== --- trunk/code/ui/ui_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/ui/ui_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/ui/ui_players.c =================================================================== --- trunk/code/ui/ui_players.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/ui/ui_players.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/ui/ui_public.h =================================================================== --- trunk/code/ui/ui_public.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/ui/ui_public.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/ui/ui_shared.c =================================================================== --- trunk/code/ui/ui_shared.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/ui/ui_shared.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/ui/ui_shared.h =================================================================== --- trunk/code/ui/ui_shared.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/ui/ui_shared.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/ui/ui_syscalls.c =================================================================== --- trunk/code/ui/ui_syscalls.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/ui/ui_syscalls.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Deleted: trunk/code/unix/ChangeLog =================================================================== --- trunk/code/unix/ChangeLog 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/ChangeLog 2005-10-29 01:53:09 UTC (rev 196) @@ -1,2991 +0,0 @@ -TODO: the Mac port seems stable, but outputs a bunch of warnings.. -2005-09-22 Tim Angus - + MinGW port - -2005-09-?? - + SDL Stuff (icculus) - + x86_64 (ludwig von angstenheimer) - + patches from a cast of thousands - -2004-05-22 Timothee Besset - + updated the xcode project from Apple's version - now with the latest vm_ppc code - -2004-05-21 Timothee Besset - + fixed the Linux build to compile again on sid (glext.h and gcc3 warnings) - + 2 weeks ago, hacked up the source to compile on panther / xcode 1.1 - several cleanups were needed, and VM support seems broke (hangs or crashes) - + got altivec optimisations from Apple (Kenneth Dyke) - merged back in - + looks like with the new code merge the VM support is back in and working - -2003-09-15 Timothee Besset - + import Q3 java master code, cleanups on monster - -2003-08-31 Timothee Besset - + loki_setup hell - https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=626 - http://zerowing.idsoftware.com/linux/q3a/index.html#glibc - text mode installer in loki_setup image built on Mandrake 7.2 crashes on - some glibc 2.3 systems such as RH9 etc. need to move to a different - version of the installer, and update old installers to keep them still - 'installing' moving to build the setup binaries on Debian Woody systems - (glibc 2.2, text mode installer will no longer work on 2.1 systems) hacked - together a new setup, using setup tree from RTCW. would need a complete - revamp if a new full setup with new binaries is needed - -2003-07-17 Timothee Besset - + new cvsreport, testing per-module config - -2003-01-19 Timothee Besset - + building on both gcc 2.x and 3.x - added conf modules to check gcc version - ccache support - -2003-01-13 Timothee Besset - + tweaking around for gcc 3.x build - edit Conscript to change the compiler - -2002-12-16 Timothee Besset - + added pbEmit class to auth code, emit CD keys to local PB master - -2002-11-14 Timothee Besset - + up to latest makeself.sh - + add both quake3.x86 and quake3-smp.x86 to setup - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=573 - console setup crash / glibc 2.3 (Debian Sid) - investigated, put together a workaround - -2002-11-5 Timothee Besset - + Linux building both smp and non-smp again. Will have to put both in setup - + added in_subframe to toggle X subframe event handling - + reworked the timing code to be more reliable - + cleaned up dgamouse/in_mouse code, removed unnecessary dgamouse var - + made the mouse grabbing an in_nograb cvar, no longer a compile time option - in_nograb 1 force in_dgamouse 0 and r_fullscreen 0 (any of those two will b0rk) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=565 - mouse issues on Suze 8.1 - related to subframe event timing - added code chunk to detect broken X timing and disable subframe - + tweaked the subframe/X bug workaround to be less paranoid - -2002-10-28 Timothee Besset - + no longer blocking demo recording if g_synchronous clients != 0 - only sending out a warning (everyone does g_sync 1 ; record ; g_sync 0) - -2002-10-21 Timothee Besset - + building final mod sdk setups (added lcc bins, added link to q3asm-turbo in readme) - -2002-10-8 Timothee Besset - + quickfix cl_maxpackets > 125 brings back to 100 - -1.32 release --- - -2002-10-7 Timothee Besset - + made the 'demo' command case-insensitive on extension match (it was confused by demo FOUR.DM_68) - + mouse wheel scrolling with in_mouse 1 + window mode was not working, fixed (DI didn't catch) - + removing on-the-fly pk3 build from Linux setup, using the finalized ones now - added 'pk3' option to cons for toggle of pk3 building - -2002-10-5 Timothee Besset - + updated win32 mod sdk (in win32/mod-sdk-setup) - added q3asm and lcc source - updated the .bat to build VMs - -2002-10-3 Timothee Besset - + linux mod sdk, wrote the bulk of the scripts - -2002-9-30 Timothee Besset - + ATVI Quake 3 1.32 Patch #9 - rolling back to the way it was before, leaving 1v1 force vote exploit, the fix was worse than the bug - from comment on bug #9 in tracker: - - actually the fix is worse than the original bug - - after the fix, voting when you are alone on the server was no longer working - it was kinda intended in the fix, that you would have to be at least two to pass a vote .. but - it is an oversight. - - calling a vote in a 1v1 game against a bot fails immediately - (calling a vote in any situation where there's only 1 live player fails) - - Say a server's running some lame custom map that you have but a friend doesn't. You can't go - on the server and change it to the map you want to play, so he ends up having to auto-dl it at - 8K a second just so you can switch from it. - - This particular 2 clients, vote / quit exploit would involve too many changes to fix properly. - I am reverting back to the old version, and leaving as WNF - -2002-9-29 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=50 - added Wheel support to the DirectInput code IN_DIMouse (in_mouse 1) - tweaked the Wheel mouse reading for in_mouse -1 (old win32 input code) - handle correctly when zDelta is > 120 - provide a in_logitechbug cvar to handle buggy Logitech MouseWare driver sending wheel events twice - -2002-9-26 Timothee Besset - + ATVI Quake 3 1.32 Patch #38 - adding trap_SetPbClStatus, reliably checks for PB presence before enabling PB in UI - -2002-9-25 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=551 - SVF_CLIENTMASK, fixed a typo - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=555 - pushed cl_maxpackets upper limit to 125 (from 100) per CPMA Arqon's request - -2002-9-24 Timothee Besset - + ATVI Quake 3 1.32 Patch #33 - PB reporting sv_paused cvar hacked, fixed SV_CheckPaused to use a Cvar_Set - + ATVI Quake 3 1.32 Patch #24 - added [skipnotify] from RTCW, use to display in the console only, but not on client screen - (also fixes pb_msgprefix and pb_sv_msgprefix) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=553 - using correct error message if listen server starting as cl_punkbuster 0 sv_punkbuster 1 - + ATVI Quake 3 1.32 Patch #35 - text auto wrap in UI code was eating the last word if it was wrapping - fixed in Q3 and TA UI (this bug could have affected the server print message also) - + some updates to the win32 cons post-build process - -2002-9-21 Timothee Besset - + adding bspc cons build script - -2002-9-19 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=552 - disconnect reason is transmitted in the disconnect command and processed into com_errorMessage - (similar to RTCW behaviour) - added UI for com_errorMessage cvar in baseq3/, if client is kicked/dropped/disconnected for whatever reason - (this is already functional in TA) - + ATVI Quake 3 1.32 Patch #9 - failing vote if there's only one voting client (fixes exploit on 2-player server where one player votes then disconnects, forcing vote to pass) - + ATVI Quake 3 1.32 Patch #5 - removed the userInfoChanged message (was a debugging leftover) - + ATVI Quake 3 1.32 Patch #18 - rcon was not properly fixed yet, this only showed up for PB commands - changed the rcon parsing again to be more reliable - -2002-9-18 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=549 - the demo command has a list of compatible protocols, it will loop through 66 67 68 - you can do '/demo four' and it will try four.dm_66 four.dm_67 four.dm_68 - or you can explicitely give a '/demo demoname.dm_??' - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=551 - added SVF_CLIENTMASK (0x00000002), works only with <= 32 players - set bitmask of players to which send entity - -2002-9-17 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=550 - rcon bug fix - + some scons updates for win32 (post build) - + 1.32rc2 - -2002-9-06 Timothee Besset - + updated completely the setup system: - fixed cons stuff to build setup with cons -- release setup - working from new setup codebase with some custom patches: - https://bugzilla.icculus.org/show_bug.cgi?id=52 - https://bugzilla.icculus.org/show_bug.cgi?id=53 - checked that BSD support was still in (brandelfing and symlinks) .. will have to get tester feedback - bumped version to 1.32rc1 - TODO: update the windows .VCT (standalone setup and auto-update) - -2002-9-04 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=543 - backport from RTCW 1.4 code - rcon commands where sent after being tokenized and rebuilt - that was breaking any quoting, for instance 'rcon g_motd "hooka pooka"' - added Cmd_Cmd() to retrieve the un-tokenized command and transmit as is on both ends - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=542 - b0rked text wrapping in connect screen - was a missing sizeScale in q3_ui/, and a bad param in ui/ - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=540 - backport fix to pk3 reordering, happens when clearing the references, bad order from connection may break stuff - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=527 - TA ui/, quickfix to netSource (mod stuff, doesn't affect TA) - + cleaned up broken old DO_WIN32 stuff in cons scripts - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=526 - typo in models2.shader - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=443 - Linux client: sub-frame timing of key/mouse events - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=453 - added mousewheel support: wheel to scroll, ctrl+wheel to scroll faster, shift+wheel to scroll history - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=545 - bumped server count to 4096 - + keep around: __asm__ __volatile__ ("int $0x03"); - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=516 - moved screenshots to backend with a new RC_SCREENSHOT render command - fixes the r_smp 1 garbled screenshots - -2002-8-29 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=539 - new VM code from Raven's Sof2 - + cons / qvmtools build system fixes - + had to get a new qe3.ico again (resource compiler error) - http://vasin.hypermart.net/eei.htm - + updated, basic testing on win32, merging back in trunk - + merged bug-539 branch back into trunk, officialize the new VM code - -2002-8-26 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=472 - linux client: handle ctrl+space situations (could leave space locked on + space not working with ctrl on) - + update the build system, build q3lcc and q3asm etc. on demand - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=62 - fixed invisible players/entities - -2002-8-23 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=536 - fixing donedl being ignored after autodl if map_restart'ed (propagate from RTCW) - ignoring multiple map_restart (propagated from RTCW) - + reworked the server 'client text ignored' message to only trigger when there's actually a message that doesn't get to the game VM - -2002-8-18 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=528 - ydnar: reorg bits in the drawsurf sort index, push MAX_SHADERS to 2^12 - + commented out some debug stuff in java auth server - + added FAQ item with Linux & BSD patch to handle broadcast on multiple interfaces - -2002-8-15 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=534 - fixing rcon being broken on NT/XP with > 23 days uptime (or so) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=525 - changed the rcon buffer size to avoid overflows and dropping part of the message - -2002-8-14 Timothee Besset - + hacked in some experimental win32 stuff to the cons files - (win32 recognition and pk3 installs .. very very experimental but I needed it for win32 dev) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=521 - ui/ and q3_ui/ : added text auto wrapping in the connection screen drawing (server message) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=531 - removed the MPlayer stuff from the server browsers - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=505 - enabled back the ignore if protocol is != (fixes Wolf servers showing in browser) - -2002-8-10 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=500 - propagated IP banning fix from RTCW - -2002-8-08 Timothee Besset - + propagate additional sv_lanForceRate fix from RTCW - -2002-8-07 Timothee Besset - + added trap_FS_Seek - -2002-8-05 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=50 - fixed the DI mouse init procedure - -2002-8-05 Timothee Besset - + removed sv_allowanonymous, was dummy and polluting the serverinfo - (sv_allowanonymous was designed to flag wether server was public or not, but that's replaced by g_needpass) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=514 - sv_strictAuth (default 1): server variable to control wether strict CDKEY auth should be performed - this is required if you want reliable cl_guid on the server - extended the getIpAuthorize (server->auth message) syntax - sending the fs_game at all times (default 'baseq3'), dummy sv_allowAnonymous 0, strict auth flag - NOTE: 1.31 server on baseq3 sends a getIpAuthorize packet like: - processing packet: getIpAuthorize -1230824753 217.128.77.195 0 - the auth server will mistakenly read fs_game as '0' - + TAGGED the master / auth source as pre-1_32 - will need to go back to this to comment out all my debugging crap - -2002-8-04 Timothee Besset - + cleaned master server stuff, client was prompting master.quake3arena.com, - server was sending heartbeats to master3.idsoftware.com - both point to 192.246.40.56, unified to master.quake3arena.com - the MPlayer master, master.quake3world.com doesn't exist anymore, switched it to master.quake3arena.com - -2002-8-02 Timothee Besset - + added auth server source, reorganized - + auth server name / master key optionally set on command line for master and auth servers - + auth and master config in build system - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=524 - changed default GL driver from libGL.so to libGL.so.1 - see LSB 1.2 spec: http://www.linuxbase.org/spec/refspecs/LSB_1.2.0/gLSB/libgl.html - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=480 - applying the 'no cp command' experimental fix for beta phase - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=462 - backported from RTCW, fix to packet fragmenting emission - FIXME: there is some verbose code that we have to take out in the final version (grep for #462) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=475 - backported from RTCW, don't get dropped if the server changes map while connecting (ignore outdated cp) - + PROTOCOL BUMPED TO 68 - -2002-8-01 Timothee Besset - + Linux: dedicated build was not setting up signal handler like the full client does - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=522 - SplashDamage bugfix, now clearing client gentity before GAME_INIT call (instead of after) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=498 - fixed NET_AdrToString to print the port as unsigned int (for ports > 1^^15, was showing negative) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=501 - maintain IP in userinfo sent to game - + checking in master server source - -2002-7-31 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=513 - https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=506 - porting fix from RTCW codebase. client re-orders it's pk3s to scan in the same order than the server - this eliminates several 'Invalid .PK3 file referenced' situations (caused by client not referencing the same thing as server) - + fixed border remnants in ta ui - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=517 - ERR_DROP if PB client off / server on conflict when starting local server - + quickfix to q3 ui / punkbuster detect in server browser - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=458 - code fix, no more taunt spam - + cons install of PB .so files - + correct MOD_KAMIKAZE and MOD_JUICED in TA games.log - -2002-7-29 Timothee Besset - + q3 ui: completed confirmation prompts and messages (added UI_ConfirmMenu_Style & UI_Message) - + ta ui: backported 'conditionalopen' from RTCW (conditionalopen ) - + ta ui: confirmation prompt for punkbuster enable/disable etc. - + added the win32 DLLs to pb/win32/ - -2002-7-28 Timothee Besset - + ta ui: sv_punkbuster in StartServer menu - + ta ui: added cl_punkbuster in server browser - + view filters are in a modal dialog - + new files: filter.menu menus.txt (pak3.pk3 updated) - + fix broken link in Linux FAQ - -2002-7-27 Timothee Besset - + ta ui: PB display in the browser, in it's additional tab, with sorting - -2002-7-26 Timothee Besset - + PB UI: for baseq3/ AND missionpack/ - q3_ui: Punkbuster: Enable/Disable in server broswer (cl_punkbuster) - q3_ui: PB logo, PB Yes/No in browser (TODO: validate this to be working) - q3_ui: added sv_punkbuster toggle in start server menu - + automated building of the new PK3s, unix/Conscript-pk3 - -2002-7-25 Timothee Besset - + added PB build scripts on Linux, fixed the Linux build - -2002-7-12 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=511 - fixing re.SetColor crash for widescreen displays (q3dm11) - was calling to the renderer while not registered - -2002-6-19 Timothee Besset - + r_roundImagesDown 0 + map q3dm16 -> tr_image.c ResampleTexture crash - buffer overflow because of resample to 2048x.. - xian_q3dm12_leftwall4fin.jpg 1152x384 - bumped one buffer byte p1[1024] -> byte p1[2048], added a safe check - -2002-6-14 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=493 - propagate a renderer fix from RTCW. fixes a one-frame visual glitch when mod code - registers a shader after drawsurfaces are generated but before the frame is rendered - -2002-6-12 Timothee Besset - + added cons and pcons to unix/, updated the build script - -2002-5-24 Timothee Besset - towards a new Q3 release? - some bug fixes require protocol change, or mod code/mod interface change to be fixed properly - this is a biz decision, dunno yet if we are going to want a new protocol (probably not) - -> have to create a branch for the 1.31b, i.e. backwards compatible with 1.31 'Stable-1_31' - and put the 1.32 specific / protocol changes on trunk - no telling what will go in SOS in the end .. probably 1.32 - -2002-5-5 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=491 - adding a sv_lanForceRate (defaults to 1) to turn on/off server forcing rate of LAN clients - (only affects LAN dedicated clients - dedicated 1, default behaviour forces LAN clients to 99999 rate) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=470 - fixing potential overflows with cl_cdkey (propagated from RTCW) - + cons-based build system (imported from Wolf, was partly written for mod tools release already) - building with SMP on by default - + better #ifdef SMP handling ('disabled at compile time' message) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=494 - Q_vsnprintf for vsprintf calls in the core - not putting this in game code as we'd need a vsnprintf implementation in bg_lib.c - -2002-4-5 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=462 - taking out the fix which was found broken and incomplete - -2002-8-4 Timothee Besset - + adding NO_MOUSEGRAB define (select in the Makefile) - -2002-2-4 Timothee Besset - + applying Gareth's SMP patch - + count number of CPUs (Sys_ProcessorCount in unix_shared.c), default r_smp appropriately - + bumping version to 1.32 - + if XInitThreads fails, set r_smp to zero - -2002-28-2 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=462 - send potential remaining fragmented packets before sending a gamestate - -2002-26-2 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=455 - removed old libMesaVoodooGL.so loading code - Voodoo cards should use XF4/DRI, that load code was outdated and confusing people with broken OpenGL - -2002-16-1 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=441 - adding brandelf calls to the setup building process so that our binaries run on BSD - -2002-1-1 Timothee Besset - + updated FAQ with BSD info (bug #441) - + FAQ update on CLIENT_UNKNOWN_TO_AUTH - + FAQ update for proper strace usage - -2001-12-12 Timothee Besset - + Q3 1.31 point release - updating build_setup.sh to new pk3 files - (baseq3/pak7.pk3 missionpack/pak2.pk3) - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=395 - adding quake3.xpm icon, and modified the setup accordingly to put symlinks - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=390 - ignoring SIGTTIN SIGTTOU - -2001-06-12 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=402 - bug with full scene - -2001-04-12 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=398 - cg_bobup cheat protect - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=399 - fixed Setup > System > Driver info crash - + checked in code/spank.sh script, perform checksuming - -2001-18-09 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=371 - propagating sound code fixes from Wolf to Q3 - -2001-11-08 Timothee Besset - + setup script was still broken, damn shell expansion - the exit code for Q3 was always zero instead of $? - propagating the fix to Wolf - -2001-11-04 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=382 - modified challenge code for motd to be truly random - -2001-10-31 Timothee Besset - Moved updated q3asm and lcc source at the toplevel, MissionPack/q3asm - and MissionPack/lcc - -2001-10-29 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=381 - build system is now functional - -2001-10-21 Timothee Besset - + updated Sys_LoadDll code on linux to search in the following order: - #1 current directory - #2 fs_homepath - #3 fs_basepath - this was needed to make mod developement easier - -2001-10-09 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=51 - the code to buffer the redirection was in there but disabled? (Com_Printf) - enabled it back - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=52 - connection issues / userinfo - client side fix, instead of sending 'connect ' packet - we now send 'connect ""' - -2001-10-08 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=371 - added a PROT_READ to the mmap call - this was needed to go around a bug in glibc i586 i686, memset doing read access - since the audio_fd is opened O_RDWD this is harmless to Q3 - -2001-10-07 Timothee Besset - + updating from SOS - S_WriteLinearBlastStereo16 C/asm is back in snd_mix.c (Graeme) - r_showtris r_shownormal cheat protections - + Sys_LoadDll changes: - removing -debug search when loading native dlls - changing the fatal aborts when not finding native from release only to debug only (was a misfeature) - used to search in cd_path which is bogus, now searching in pwd if basepath fails - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=275 - fixed r_fullbright not being cheat protected / was a CVAR_LATCHED|CVAR_CHEAT issue - -2001-09-06 Timothee Besset - + updated from SOS, some changes to qcommon/unzip.c (statics) - -2001-08-27 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=3 - Added some code in CL_InitDownloads to use FS_ComparePaks and print out information about server-referenced paks that are missing on the client. It is a first step, allows to get precise information about what can cause a connection to fail (typically when the user is sent back to the main screen). - -2001-08-22 Timothee Besset - + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=86 - fixed sound bug (with Graeme hints) - -2001-08-20 Timothee Besset - + made sure Sys_Printf doesn't get into an endless loop if logfile is on - fixed qconsole.log issues, +set logfile 1 +set fs_debug 1 was crashing (any OS) - fixed logfile 1 / ttycon 1 issue, didn't exit properly (same endless looping) - also fixes an issue reported by q3f team - + changed rcon commands from Com_DPrintf to Com_Printf so that they show up in the console - (with IP information) - -2001-08-19 Timothee Besset - + fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=91 - (autodownload toggle in q3 ui) - + fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=76 - g_password issue - + fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=93 - cheat protecting r_lodCurveError - + wontfix https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=92 - -2001-08-18 Timothee Besset - + more fixes to the 7-button mouse code (linux only) - + updated faq about gamma slider - + added "servers don't show up in ingame browser" to faq - + added Alt+Enter toggle for fullscreen/windowed (linux) - -2001-08-16 Timothee Besset - reconfiguring CVS repository to give access to Gareth - + testin gareth's access - -2001-08-03 Timothee Besset - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=85 - fixes in the setup code for older bash versions - -2001-08-02 Timothee Besset - * commented out assembly implementation of S_WriteLinearBlastStereo16, using modified C implementation from Zaphod - need to check performance: https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=88 - * finished const declarations in CG_Trace calls, was needed in pmove_t declaration and some other functions - cgame/cg_local.h : CG_trace trap_CM_BoxTrace - game/bg_public.h : using const in pmove_t trace functions prototypes - (fixes gcc warnings: assignment from incompatible pointer type) - -2001-07-26 Timothee Besset - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=78 - mapped K_MOUSE4 K_MOUSE5 - -2001-07-23 Timothee Besset - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=5 - more fixes, handling meta characters and various kinds of backspace - -2001-07-22 Timothee Besset - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=5 - after testing feedback, fixed more stuff: - better backspace, works with putty and potentially more terminals - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=51 - band aid fix to rcon status, incresed MAX_PUSHED_EVENTS from 256 to 1024 - (adds 28kb of mem requirements) - -2001-07-21 Timothee Besset - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=2 - using XF86 Gamma extension to set the gamma in game from the menus - (previous behaviour was to set /r_gamma and restart, renderer relying on s_gammatable) - restoring initial gamma on GLimp_ShutDown - -2001-07-19 Timothee Besset - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=5 - first usable version of dedicated console - added history and completion functionality - ready for some testing - still some TODOs and FIXMEs: - keep the currently edited line when going back from history exploration - edit the current line with cursor, insert mode etc. - -2001-07-18 Timothee Besset - * starting TAB completion and history for the dedicated server (tty console) - removed Sys_ConsoleOutput (unused) - removing bogus nostdout variable - cleanup of a big chunk of code that Bernd commented out and scheduled for deletion - moved completion code from client/cl_keys.c stuff into qcommon/common.c, Field_CompleteCommand(field_t*) - -2001-07-13 Timothee Besset - * fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=8 - screenshots overwrites - * fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=31 - DOUBLE SIGNAL FAULT - -2001-07-11 Timothee Besset - * fix for french keybards / console toggle / bound to XK_twosuperior - -2001-07-10 Timothee Besset - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=19 - cleanup of the keyboard code, adding com_developer message in case XLookupString would fail - -2001-07-10 Timothee Besset - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=33 - using our custom handlers for X errors, should make things more robust - (X docs say some X errors are not fatal, but the default X handler exits the app anyway) - -2001-07-08 Timothee Besset - * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=19 - keyboard state issues, fixed the sticking with ctrl key (thks relnev) - -2001-07-07 Timothee Besset - * closing https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=13 - the fixes to bug #9 solved this one too - * checking in to SOS - -2001-07-05 Timothee Besset - * work on https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=9 - filesystem code changes: - updated the documentation in files.c to the current system - added correct fs_homepath fs_basepath fs_cdpath scanning to FS_SV_FOpenFileRead - (fixes description.txt not found, and probably a few other linux issues) - -2001-06-29 Timothee Besset - * fixed setup issues (graphical/console) - https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=6 - -2001-06-26 Timothee Besset - * bug tracker is online at https://zerowing.idsoftware.com/bugzilla - authentication, use login: bugs password: b00gies - for now, using it as the linux bug tracker, possible use for more OSes and programs if anyone is interested. - * tweaked the graphical setup to send to bugs at idsoftware.com on errors instead of support at lokigames.com - -2001-06-19 Timothee Besset - * fixed generated launch script /usr/local/bin/quake3, exit $* should be exit - -2001-06-18 Timothee Besset - * rebuilt 1.29f setups, released as 1.29f-beta1 'Q3 1.29f linux-i386 Jun 19 2001' - -2001-06-10 Timothee Besset - * rebuilt against PR source, packaged 1.29b setups - -2001-05-25 Timothee Besset - * graphical setup, based on Loki's setup tool (GPL) - -2001-05-22 Timothee Besset - * changed fs_basepath to fs_homepath, according to Graeme's changes (probably missed this change?) - this fixes the q3key prompting at each game startup - -2001-05-20 Timothee Besset - * rebuilding 1.28b, various fixes on linux build: - - SetProgramPath was renamed to Sys_SetDefaultCDPath in unix_shared.c - updated unix_main.c accordingly - - some prototypes in qgl.h are guarded by #ifndef GL_VERSION_1_2 (ARB extentions) - those prototypes are needed by linux_glimp for importing functions and casting, added a #ifdef __linux__ - (not a clean solution) - - game/q_shared.h - little endian / big endian functions have been added - gcc generates warnings about functions being unused .. inlined them - - cgame/cg_marks.c - // TTimo - // gcc warning: might be used uninitialized - float sInc = 0.0; - float s = 0.0; - -2001-05-15 Timothee Besset - * fixes to linux Makefile for bspc 2.1h - * various updates to 1.28b on linux - -2001-05-09 Timothee Besset - - * R. Duffy reverted game/bg_pmove.c PM_CheckDuck, was a merging screup on my side - * updated setup to 1.27z, removed the .so from the setup distribution (they were in 1.27g because of issues) - FIXME: gotta get pk3's first - -2001-05-04 Timothee Besset - - * fixes to gcc, building RC for 1.27s - -2001-05-01 Timothee Besset - - * added qcommon/huffman.c to the Makefile - * gcc -Wall: - commenting out - CL_Netchan_Encode CL_Netchan_Decode (cl_net_chan.c) - Netchan_ScramblePacket Netchan_UnScramblePacket (net_chan.c) - SV_Netchan_Encode SV_Netchan_Decode (sv_net_chan.c) - -2001-04-26 Timothee Besset - - * fixed dedicated server crash when entering the VM_COMPILED qagame on a mod (some statics lacked initialization) - -2001-04-25 Timothee Besset - - * added $(Q3POBJ) to clean target (cleanup of platform-dependent objects) - * more make clean improvements - -2001-04-23 Timothee Besset - - * cleanup the mod selection code, remove duplicates - * some issues with release builds, my main developement box doesn't build stable binaries with release settings - removing -fomit-frame-pointer seems to fix (there's probably a performance hit) - see OMIT-FRAME-POINTER.txt - -2001-04-13 Timothee Besset - - * checked in a first set of merged files - -2001-04-06 Timothee Besset - - * merged back the core linux parts to make 1.27g linux build from the Source Safe tree again - -2001-02-27 Bernd Kreimeier - - * CVS: tag with changes as of today - cvs tag id1-27j-loki01027 - - * code/qcommon/msg.c: numFields loop (SOS). - * code/qcommon/files.c: ue Q_stricmp (SOS uses stricmp, was strcmp). - * code/game/q_shared.h (Q3_VERSION): 1.27j. Also - MAX_STRING_TOKENS upped from 256 to 1024 (SOS). - - * code/server/sv_snapshot.c (SV_AddEntitiesVisibleFromPoint): see below. - * code/game/g_public.h (SVF_NOTSINGLECLIENT): added (SOS). - - * code/server/sv_ccmds.c: see below. - * code/game/g_main.c: g_gametype cvar now userinfo (SOS). - - * code/game/g_active.c (SendPendingPredictableEvents): new (SOS). - * code/game/bg_misc.c: new SOS (sos010227) - - * SOS: new update sos010227. - -2001-02-22 Bernd Kreimeier - - * CVS: now in sync with last SOS and cleanup up - cvs tag id1-27i-loki01022 - - * code/ui/ui_shared.c: below. - * code/ui/ui_main.c: leftover code! - * code/server/sv_world.c: below. - * code/server/sv_snapshot.c: below. - * code/server/sv_init.c: below. - * code/server/sv_game.c: below. - * code/server/sv_client.c: below. - * code/server/sv_ccmds.c: below. - * code/server/sv_bot.c: below. - * code/server/server.h: below. - * code/renderer/tr_surface.c: below. - * code/renderer/tr_shader.c: changed assert to early return. - * code/renderer/tr_shade_calc.c: below. - * code/renderer/tr_shade.c: below. - * code/renderer/tr_scene.c: below. - * code/renderer/tr_mesh.c: below. - * code/renderer/tr_local.h: below. - * code/qcommon/vm_x86.c: cleanup. - * code/qcommon/vm.c: below. - * code/qcommon/unzip.c: below. - * code/qcommon/qcommon.h: below. - * code/qcommon/files.c: below. - * code/qcommon/cvar.c: cleanup. - -2001-02-21 Bernd Kreimeier - - * code/qcommon/common.c: cleanup. - * code/qcommon/cm_trace.c: cleanup. - * code/qcommon/cm_patch.c: cleanup. - * code/qcommon/cm_public.h: cleanup. - * code/game/q_shared.h: cleanup. - * code/game/q_shared.c: cleanup. - * code/game/q_math.c: cleanup. - * code/game/g_syscalls.asm: changed (once more) floor,ceil etc. - * code/game/g_spawn.c: cleanup. - * code/game/g_session.c: cleanup. - * code/game/g_cmds.c: cleanup. - * code/game/g_client.c: cleanup. - * code/game/g_arenas.c: cleanup. - * code/game/bg_slidemove.c: cleanup. - * code/game/bg_pmove.c (PM_CheckDuck): old call to trace? - * code/game/bg_misc.c: cleanup. - * code/game/be_aas.h: dead code. - * code/game/ai_dmq3.c: cleanup. One clear/copy switched? - * code/game/ai_dmnet.c: more //*/. Why oh why not DEBUG.... - - * code/client/snd_mix.c: below. - * code/client/snd_dma.c: below. - * code/client/keys.h: cleanup. - TODO: #error in q3_ui/keycodes.h ? - - * code/client/client.h: cleanup. - * code/client/cl_main.c: misplaced bracket. Cleanup. - * code/client/cl_keys.c: below. - * code/client/cl_cin.c: below. - * code/client/cl_cgame.c: cleanup. - TODO: define assert for Win32 or guard my assertions. - - * code/cgame/cg_syscalls.c: below. - * code/cgame/cg_servercmds.c: below. - * code/cgame/cg_players.c: cleanup. - - * code/cgame/cg_newdraw.c: remember to diff against cg_newDraw.c - in SOS (mixed case). - TODO: get id to use cg_newdraw.c, and to remove cg_newDraw.c/cpp. - - * code/cgame/cg_main.c: below. - * code/cgame/cg_local.h: below. - * code/cgame/cg_event.c: below. - * code/cgame/cg_drawtools.c: below. - * code/cgame/cg_draw.c: cleanup. - * code/cgame/cg_consolecmds.c: dead code. - * code/bspc/qbsp.h: below. - * code/bspc/l_poly.c: below. - * code/bspc/l_math.c: cleanup. - * code/bspc/bspc.c: cleanup. - * code/bspc/be_aas_bspc.c: cleanup. - * code/bspc/aas_map.c: kept comments - merge loss at their end? - * code/bspc/aas_file.c: cleanup. - - * code/botlib/be_interface.c: this file is plain impossible. There - are layers of code made dead with /* */ and the resurrected by - //* or // /* or variations of this. I reverted to exact mirror - image of SOS to be sure - short of removing it's too easy to mistake - live code for dead one. - Later: have to change 5 occurences to avoid gcc complaints about - nested comment tokens. - TODO: somebody please get rid of the cruft in here. - - * code/botlib/be_ai_move.c: redundant typedef. - * code/botlib/be_ai_chat.c: assertions on signed string index. - Note: this is not in my ChangeLog - ouch. - TODO: use gcc -fsigned-char on all platsforms to enforce Win32 - TODO behavior (PPC has a default unsigned char, Intel has not). - * code/botlib/be_aas_sample.c (AAS_TraceClientBBox): one code block - was placed in different location, and one FPE hack not used. I would - expect that divide by zero will still occur here. - - * code/botlib/be_aas_reach.c: below. - * code/botlib/be_aas_cluster.c: cleanup. - * CVS: the last tag (below) marks the version with a lot of history - and additional comments. I am now bringing the codebase in sync with - SOS as of yesterday, cleaning out comments, dead code and other - differences to minimize a diff - in a valiant if futile attempt to - roll back changes into the id codebase. - Note: I ignore the $SOS$ - these are unfortunate but will change - in the same awkward way at their end. - Note: I stick to #if 0 instead of C comments around dead code id - kept (nested comments issue). The commentary is changed to sosYYMMDD - and includes the token DEAD. - -2001-02-20 Bernd Kreimeier - - * CVS: update, then tag current version as - cvs tag id1-27i-loki010219 - - * SOS: patched up to sos010219. - - * code/qcommon/cm_trace.c (CM_Trace): fabs on sphere offsets (SOS). - * code/game/bg_slidemove.c (PM_StepSlideMove): stepSize vs. STEPSIZE (SOS). - * code/game/bg_pmove.c (PM_CheckDuck): fix in stand up check (SOS). - * code/bspc/bspc.c (main): -capsule (SOS). - * code/bspc/qbsp.h: below (SOS). - * code/bspc/be_aas_bspc.c (capsule_collision): added (SOS). - * code/bspc/aas_map.c (CapsuleOriginDistanceFromPlane): added and used (SOS). - * code/bspc/aas_file.c (AAS_WriteAASFile): removed diagnostics recently - added. No matter how long you wait, they'll always get you ;-). - * code/botlib/be_aas_cluster.c: enabled LogWrites, different flood (SOS). - - * SOS: patching up to snapshot sos010219. - Note: For brevity, I use as marker sosYYMMDD now instead of bkYYMMDD, to - distinguish from changes not in SOS. - - * CVS: tagged current version before patching up with SOS. - cvs tag id1-27i-loki010216-bsd - -2001-02-16 Bernd Kreimeier - - * code/server/sv_init.c: DLL_ONLY sets sv_pure to 0 and ROM. - TODO: determine good sv_pure policy for DLL-only servers. - - * code/renderer/tr_shade_calc.c: my_ftol implementation (BSD). - - * code/unix/Makefile: FreeBSD sections. - TODO: include target-specific Make-freebsd etc., - include a Make-local not in CVS for build preferences, - and generally clean up this mess. - * code/unix/unix_glw.h: guard #error - * code/unix/linux_snd.c: soundcard.h location (BSD). - * code/unix/linux_glimp.c: guard system headers. - Later: added Joystick stubs. - Note: linux_ etc. prefixes start to loose meaning as we - re-use most of this on UNIXes anyway. I didn't use Raf's - freebsd_joystick.c but instead put generic stubs here. - TODO: introduce generic -DNO_JOYSTICK flag. - * code/renderer/tr_local.h: my_ftol guard. - * code/renderer/qgl.h: FreeBSD guards. - * code/qcommon/vm_x86.c: sys/types include on FreeBSD. - * code/qcommon/md4.c: Win32 pragma guard. - * code/qcommon/common.c: Com_Memcpy/Memset external. - * code/game/q_shared.h: added FreeBSD defines. - * code/game/q_math.c (BoxOnPlaneSide): FreeBSD conditional. - TODO: check whether we have/need the assembly version anyway. - * code/client/snd_mix.c: use C fallback on FreeBSD. - Note: all of the above changes from the original port by Rafael Barrero. - - * CVS: tagged current version before merging FreeBSD related changes. - cvs tag id1-27i-loki010215-ppc - -2001-02-15 Bernd Kreimeier - - * code/unix/Makefile: BSD related changes. - * code/cgame/cg_draw.c: hacked phone jack rendering check for Debug. - TODO: finish Debug, fix CG_DrawDisconnect !!! - - * code/unix/vm_x86.c: error on compile attempts. Fight redundancy! - * code/qcommon/vm_x86.c (VM_CallCompiled): dummy for linkage on PPC. - Note: DLL_ONLY is the global Makefile option for DLL-only builts. - Currently only executed on Linux. - * code/unix/unix_main.c: *ppc postfix for DLLs. Ignored the changes - to redundant code (have to remove the unused Un/LoadDll/API calls). - * code/server/sv_game.c (VMA): changed macro (see below). PPC. - * code/qcommon/vm.c (VM_DllSyscall): see lengthy commentary by Ryan. - The existing VM code makes certain assumptions about the layout of - varargs on the stack, which fall apart with call conventions that - don't even put all parameters on the stack (gcc on PPC, register-rich). - Using a dedicated memory area as our own stack. This should actually - be the default behavior. - Later: make vm_* cvars INIT/ROM for DLL_ONLY target. - - * code/qcommon/common.c: PPC change (from Ryan Gordon). - -2001-02-07 Bernd Kreimeier - - * code/unix/unix_main.c: disabled FPE for debug for the time - being (that is, until I can figure out - Program received signal SIGFPE, Arithmetic exception. - RB_BeginSurface (shader=0x449572e0, fogNum=0) at ..//renderer/tr_shade.c:307 - 307 tess.shaderTime = backEnd.refdef.floatTime - tess.shader->timeOffset; - without any NaN's involved. - TODO: unmask other FPE's selectively (see Mike's Tribes2, no getenv though). - -2001-02-06 Bernd Kreimeier - - * SOS: up to date with todays snapshot. - Note: got the date wrong, comment used was bk010205. Duh. - - * code/server/sv_snapshot.c (SV_UpdateServerCommandsToClient): below. - * code/server/sv_main.c (SV_ReplacePendingServerCommands): new (SOS). - * code/server/server.h: reliableSent (SOS). - - * code/renderer/tr_shade.c (ProjectDlightTexture): see below. - * code/renderer/tr_scene.c: see below. - * code/renderer/tr_public.h: see below (SOS). - * code/renderer/tr_local.h: additive light support (SOS). - - * code/qcommon/cm_trace.c (CM_Trace): new tw.sphere.use branch (SOS). - - * code/game/g_spawn.c: notta, notq3a entities (SOS). - * code/game/ai_dmq3.c: MAX_ACTIVATEAREAS search (SOS). - - * code/client/cl_cgame.c: see below. - * code/cgame/cg_syscalls.c (trap_R_AddAdditiveLightToScene): below. - * code/cgame/cg_syscalls.asm: see below (trap_R_AddAdditiveLightToScene). - * code/cgame/cg_public.h: CG_R_ADDADDITIVELIGHTTOSCENE (SOS). - - * code/bspc/l_math.c: new VectorLengthSquared, removed rotate/matrix (SOS). - * code/bspc/bspc.c (BSPC_VERSION): was 2.1e, now? - * code/bspc/be_aas_bspc.c (BotImport_Trace): CM_BoxTrace sig. (SOS). - * code/bspc/aas_file.c (AAS_WriteAASFile): SOS. - * code/botlib/be_aas_sample.c (AAS_DeAllocAASLink): SOS. - - * code/unix/unix_main.c (Sys_LoadDll): do not load from installdir - in NDEBUG (confusing relic from old Makefile). Postfix -debug.so - for debug binaries to let both builds coexist. - - * code/unix/Makefile: updated install targets and VERSION. - - * Win32: build from SOS snapshot. - Note: Unix CR/LF in *.dsw/*.dsp fucks up MSVC++. - -2001-02-02 Bernd Kreimeier - - * SOS: all changes up to today. - - * code/server/sv_init.c (SV_TouchCGame): added. Also memset - on reallocated client data (SOS). - * code/qcommon/qcommon.h: see below. - * code/qcommon/cvar.c (Cvar_SetLatched): new (SOS). - * code/qcommon/cm_trace.c: more sphere test fixes (SOS). - Note: SOS encryption key expired and updated by MrElusive. - - * code/qcommon/cm_patch.c (CM_TraceThroughPatchCollide): - fix from MrElusive, fall through curved corner floors (q3dm17). - Later: also in SOS (so is shadow FPE fix). - - * Win32: can't get an unadulterated SOS snapshot to build. - First, fix CR/LF back again (Linux client converts all). - find . -name '*.ds*' -print - alias dos2unix='recode ibmpc..lat1' - alias unix2dos='recode lat1..ibmpc' - Next, find a *.dws that works? Nope, no cigar. - -2001-02-01 Bernd Kreimeier - - * Win32: have to update dsp/dsw/etc. files in CVS, too. - - * CVS: tag previous version before update - cvs tag id1-27h-loki010131-beta3 - - * code/game/q_math.c (Q_rsqrt): guard, #ifndef __linux__ - for assert (for Win32 build). - TODO: assert replacement for Win32? - * code/q3_ui/ui_qmenu.c: see below. - * code/q3_ui/ui_players.c: see below. - * code/q3_ui/ui_controls2.c: float const with f postfix - Note: Win32 C4305 warning. Somebody at id has been doing - a lot of these recently as well... - - * code/cgame/cg_players.c (CG_PlayerShadow): applied fix by - MrElusive, removed FPE hack (player shadows on zero mormals). - Prolly in this evenings' CVS. - - * code/server/sv_game.c: new signatures (capsule again). - * code/server/server.h: new signatures (SV_Trace,ClipToEntity). - * code/server/sv_bot.c: new signatures (above). - * code/qcommon/cm_trace.c: a truckload of changes. Math - code added before moved upwards. Capsule traces added all - over the place, old box traces moved in conditional - branches, functions renamed and wrapped. Eliminated some - of the previous' versions deadcode to keep diffs smaller. - TODO: once a point release is out and reasonably bug - TODO free, remove // bkYYMMDD annotations where SOS related. - - * code/qcommon/cm_public.h: new signatures in prototypes. - * code/qcommon/cm_patch.c: dead code re-enabled, new - sections (conditional branches for spheres) added to - several trace functions. - * code/qcommon/cm_local.h (CAPSULE_MODEL_HANDLE): added. - * code/qcommon/cm_load.c (CM_TempBoxModel): capsules. - - * code/game/q_shared.h (Q3_VERSION): 1.27i now (new QVM traps). - - * code/game/g_syscalls.asm: see below. - * code/game/g_public.h (SVF_CAPSULE): added (SOS). Also - G_ entry poiints for capsule traces. - - * code/client/cl_cgame.c: see below. - * code/cgame/cg_syscalls.c: see below. - * code/cgame/cg_syscalls.asm: see below. - * code/cgame/cg_public.h: new capsule trace code (SOS). - -2001-01-31 Bernd Kreimeier - - * Win32: test compile (WinCVS, MSVC++). Have to guard isnan. - Note: too much shit going on.... - -2001-01-30 Bernd Kreimeier - - * CVS: update for patching up (pre-1.27i). - - * SOS: new changes (new collision detection primitives). - Now Version 1.27i. - TODO: start testing using DLL's (QVM code is out of sync). - -2001-01-25 Bernd Kreimeier - - * SOS: caught up till today (below). - * code/qcommon/cm_trace.c: new functions added: RotatePoint, - TransposeMatrix, CreateRotationMatrix (SOS). - (CM_TransformedBoxTrace): new rotation code used here. - - * code/q3_ui/ui_demo2.c: sizeof(extension). SOS. - * code/game/g_cmds.c (G_SayTo): CON_CONNECTED. - * code/game/ai_main.c: HOOK added (SOS). - * code/botlib/be_aas_move.c (AAS_HorizontalVelocityForJump): - correct fix for FPE occuring (SOS). - * code/game/ai_dmq3.c: initmove.viewoffset (SOS). - - * code/game/q_math.c: guard asser/isnan with Q3_VM (q3asm). - TODO: define Com_Error based assert macro? NDEBUG? - -2001-01-24 Bernd Kreimeier - - * code/server/sv_ccmds.c (SV_MapRestart_f): some debug. - TODO: map_restart 0 disconnects external client in 1.27h? - - * code/renderer/tr_image.c (LoadTGA): added some commentary - and dead code based on fixes from GtkRadiant (Leonardo found - flipped TGA's). - -2001-01-23 Bernd Kreimeier - - * BETA3: finished testing, ready to upload to id FTP. - Later: neither the FreeBSD beta not the Linux Beta3 - uloaded. Beta2 not yet released, and clients get - disconnected with Beta2 and Beta3 on SV_MapRestart_f. - -2001-01-22 Bernd Kreimeier - - * code/client/cl_main.c (CL_InitDownloads): undid yesterday (SOS). - * code/botlib/be_aas_sample.c (AAS_DeAllocAASLink): guard print (SOS). - * code/server/sv_client.c (SV_DirectConnect): VM_Call disconnect (SOS). - * code/qcommon/files.c (FS_ListFilteredFiles): trailing slashes (SOS). - * code/game/g_cmds.c (SetTeam): print change (SOS). - Note: the above plus VectorClear(v1) (below) are todays SOS changes. - - * code/cgame/cg_players.c (CG_PlayerShadow): ignore bogus - (all zero) planes. This caused FPE in ProjectPointOnPlane. - TODO: why does trace return zero normal planes? - Note: gdb seems totally at loss with vec3_t arrays.... - - * code/botlib/be_aas_sample.c (AAS_TraceAreas): FPE. - NaN in uninitialized v1 that wasn't supposed to be referred - to in this branch. - - * code/botlib/be_aas_move.c (AAS_HorizontalVelocityForJump): - FPE divide by zero (zero zvel, zero t) for jump estimates. - - * code/client/cl_main.c (CL_Frame):1856. uivm==NULL on - client after server crashed. - TODO: check that uivm always non-NULL for client. - TODO: do setenv(FX_NO_SIGNALS) to avoid exit errors... - - * code/unix/linux_glimp.c (GLW_SetMode): added "Indirect" - Mesa token to software rendering detection. Reworded error - output and added drivername. - TODO: measure framerate instead? - -2001-01-21 Bernd Kreimeier - - * SOS: caught up with changes up until today. - - * code/server/sv_init.c (SV_SetConfigstring): gentity != NULL - - * code/server/sv_client.c: connect to "{all bots" server. - * code/renderer/tr_init.c: JPEG extension on screenshots - * code/qcommon/files.c: modes based on mods, fs_basegame - - * code/q3_ui/ui_demo2.c: dm3 extension (demo names, protocol). - - * code/game/g_client.c: savedEvents[] removed. - * code/game/bg_misc.c: event sequence fixes. - * code/client/snd_dma.c (S_StopBackgroundTrack): different use. - * code/client/cl_main.c: demo file handling changed (names). - Also CL_InitDownloads: always next download. - - * code/cgame/cg_servercmds.c: cg_thirdPerson. - * code/cgame/cg_weapons.c: see below. - Also CG_ShotgunPattern: different call (seed parameter). - - * code/cgame/cg_main.c: see below. - * code/cgame/cg_local.h: new cg_noProjectileTrail Cvar. - * code/cgame/cg_effects.c (CG_BubbleTrail): early out (above). - - * code/bspc/l_poly.c (BOGUS_RANGE): increased. - * code/bspc/bspc.c: applied patch up to "2.1e" - -2001-01-18 Bernd Kreimeier - - * code/ui/ui_main.c: below. - * code/q3_ui/ui_main.c: UI_HASUNIQUECDKEY comment. - Note: mods have to return qfalse. See Bug #2890 in Fenris. - -2001-01-17 Bernd Kreimeier - - * BETA2: finished testing, uploaded to id's FTP for release. - -2001-01-16 Bernd Kreimeier - - * CVS: checking in preparation for Beta2. - cvs tag id1-27h-loki010116-beta2 - - * SOS: new bspc "2.1e". No change on 1.27h. - - * TEST: patch-up seems to work fine. No new files have been added - to the linkage (i.e. the ft2/ files now added), so we might not be - feature complete. - - * code/game/g_active.c (ClientThink_real): id MISSIONPACK - conditional in addition to the ones I added earlier. - * code/qcommon/files.c: REJECT. Linux hack for userdir threw it off. - * code/qcommon/unzip.c: REJECT. CRC-32 section removed. - Later: unused tempB - - * code/q3_ui/ui_syscalls.asm: REJECT. Start/StopBackgroundTrack. - * code/ui/ui_syscalls.asm: REJECT. syscalls ids from 1.27h - as of SOS (floor/ceil - will this ever get straightened out) - * code/win32/win_input.c: REJECT. g_pMouse edit. - * ui/menus.txt: REJECT. Replaced with 1.27h version. - Note: some more due to $SOS$. - - * ui/: new scripts. - cinematicmenu.menu, demo_quit.menu, ingame.txt, serverinfo_old.menu - vid_restart.menu - - * code/ft2/ttconfig.h: below. - * code/ft2/sfconfig.h: below. - * code/ft2/pstables.h: below. - * code/ft2/psnames.c: below. - * code/ft2/psdriver.h/c: below. - * code/ft2/keys.h: below. - * code/ft2/ftbbox.c: new in 1.27h - - * code/cgame/cg_newdraw.c: beware: cg_newDraw.c gets lost in diff easily. - - * code/cgame/cg_rankings.c: file removed from SOS. - -2001-01-15 Bernd Kreimeier - - * Patch-up: patching up from RC4 to 1.27h current. - No changes since 010112 snapshot. - ln -s sos010112/ work - diff -urbB sos001204-rc4/ work > work.diff - ln -s cvs-1.27g/ work - patch -p0 < work.diff > work.patch - find cvs1.27g/ -name '*.rej' -print - - * SOS: adding the remaining SOS snapshots to CVS. - cvs import Quake3_sos sos001211 pr1-27g-win32-001211 - Note: at this point id warned about repository corruption. - Watch out for the syscall stuff in particular. - cvs import Quake3_sos sos010104 pr1-27g-win32-010104 - cvs import Quake3_sos sos010108 pr1-27h-win32-010108 - cvs import Quake3_sos sos010110 pr1-27h-win32-010110 - cvs import Quake3_sos sos010112 pr1-27h-win32-010112 - Note: the first 1.27h might be the public (server only) - beta released, the second one was post release. Beware - of source files added and removed (botlib headers, FT2). - Note: why so late? Don't ask... - -2001-01-08 Bernd Kreimeier - - * SOS: id's working up to 1.27h (server side fix for - Guard exploit seems to force earlier release). Updating - CVS (most of the changes are debug code put in and - then disabled, plus some fixes as below). Next patching - up to current SOS. - -2001-01-07 Bernd Kreimeier - - * Makefile: need to rework this for multiple platforms. - We also need null/null_vm.c for platforms where we don't - have JIT (assembly emit). - -2001-01-04 Bernd Kreimeier - - * code/q3_ui/ui_connect.c (UI_DisplayDownloadInfo): time - information for current (vs. start of download) is wrong, - thus negative 1 "estimated time", as well as transfer - rate just negative downloadSize. Not fixed. - - * code/unix/unix_main.c (Sys_ParseArgs): added. - Note: for support/us, to identify builts. This is only - a skeleton right now - if I ever feel the need to support - more than "-v" and "--version" I'll have to flesh this out. - - * code/unix/linux_glimp.c (signal_handler): see below. - * code/unix/unix_main.c (Sys_Exit): added an abstraction - layer for exit/_exit/assert/raise issues. - Note: need both a better debug/backtrace handling, and - have to find a way to determine why/where the alleged - startup/exit errors happen... - -2001-01-03 Bernd Kreimeier - - * code/game/g_mem.c (G_Alloc): ERR_DROP initiated by - addbot commands for large sv_maxclients, allegedly - caused segfaults in 1.17. Not reproducible. - TODO: recover more gracefully from failure to add bot? - - * code/renderer/tr_light.c (R_LightForPoint): Tim Angus - reports a crashbug with nolight maps. Also assertion in - R_SetupEntityLightingGrid, might want conditional there. - DONE: fixed crash on LightForPoint for nolight maps. - - * code/qcommon/qcommon.h: NUM_SERVER_PORTS. A feature - request to increase this, or make it more flexible - otherwise (Fenris). - TODO: id decision on more flexible NUM_SERVER_PORTS. - -2001-01-02 Bernd Kreimeier - - * code/unix/snapvector.nasm: fixed FPU bit (the current - one had reserved bits off, behavior should not change). - * code/qcommon/vm_x86.c: fixed symbols (below). - * code/unix/ftol.nasm: FPU bits weren't correct (duh). - DONE: shoot-though floor (q3dm5) - DONE: cursor-in-rect off (TA/Player model selection) - Note: in gdb, "disassemble " is your friend. - - * code/cgame/cg_public.h: CG_MEMSET is set to 100. In - cg_syscalls.asm it's 101. If I change it I get Bad trap 100 - from the cgame VM code, so the 1.27g "official" VM code - uses it. - - * code/unix/linux_common.c: have to fall back to C, the - current assembly is buggy... - * code/unix/Makefile (linux_common.o): added. - Later: also for dedicated. Less portable this way. - TODO: C_ONLY for dedicated on non-i386 only? - - * code/qcommon/common.c: do not use memcpy/memset under Linux. - * code/unix/linux_common.c: added Andrew's assembly port. - TODO: C_ONLY for Com_Memset/Memcpy? Conditionals are fubared. - - * code/qcommon/vm.c (VM_Init): use Win32 defaults (do not - use DLL's by default). This exposes DLL rounding errors - (damage through floors), and we don't want DLL's used by - default anyway. - TODO: why vm_ui default of 1? - - * code/botlib/l_precomp.c (SourceWarning): removed assert. - - * code/game/bg_lib.c (acos): defined, but we don't actually - use it except where the cg_syscalls.asm trap is used. - - * code/game/g_public.h: missing lots of trap tokens. - * code/game/g_syscalls.c: missing lots of traps. - * code/game/g_syscalls.asm: more inconsistent hooks, were: - equ floor -111 - equ ceil -112 - equ testPrintInt -113 - equ testPrintFloat -114 - now changed to match cg_syscalls. - Note: fixed this in UI earlier, how did this slip through - the diffs against SOS? - - * code/game/g_syscalls.c: no acos hook. - * code/cgame/cg_syscalls.c: no acos hook. - * code/cgame/cg_syscalls.asm: has acos hook as -112 - Note: report from Tim Angus. The acos function is in bg_lib.c - which is linked only into ui (not q3_ui). That means we are - using libc acos right now? - Note: QVM traps are negative? - - * BSD/Irix: tagged current CVS (not all of the below) as - cvs tag id1-27g-loki010102-bsd1 - for BSD work (Rafael Barrero). Also be used for Irix update. - -2001-01-01 Bernd Kreimeier - - * SOS: adding the remaining SOS snapshots to CVS. - cvs import Quake3_sos sos001201-rc3 pr1-27f-win32-001201-rc3 - cvs import Quake3_sos sos001202 pr1-27f-win32-001202 - cvs import Quake3_sos sos001204 pr1-27g-win32-001204-rc4 - This is the codebase to which the Linux branch has been patched - up. I can't verify whether this is identical to the RC4 codebase - as the tag doesn't work (but can check against the ZIP file..) - cvs import Quake3_sos sos001211 pr1-27g-win32-001211 - The above snapshot contains a (post-release?) fix to ui_syscalls - in ui/ and q3_ui/. This change has been used in Linux (Beta1 and - above). At this point, id discouraged further use of SOS due to - repository corruption on their end. No further snapshots were - taken since. - - * Fenris: since the release of the Beta1 bugs have been - maintained at http://fenris.lokigames.com/. I am going to - list issues here as they get fixed. - -2000-12-21 Bernd Kreimeier - - * code/renderer/tr_font.c: graceful silence with old mods? - * code/botlib/l_precomp.c (SourceWarning): graceful exit if old mod? - -2000-12-20 Bernd Kreimeier - - * code/server/sv_ccmds.c (SV_MapRestart_f): see below. - * code/qcommon/vm.c: currentVM is 0x0 in VM_ArgPtr. - In VM_Call, oldVM was NULL - made conditional the - reset of currentVM to oldVM. - -2000-12-18 Bernd Kreimeier - - * BETA1: closed Linux beta release. Stripped debug - and release binaries, DLL's, and pak4.pk3. CVS checkin, - will be tagged as - cvs tag id1-27g-loki001218-beta1 - Later: id added a pak5.pk3 to the Win32 point release, - added this to the BETA1 best. - - * code/qcommon/vm_x86.c: C37F. - * code/unix/snapvector.nasm: C37F. - Note: short of any real evidence, I gamble and use max. - precision (as well as default Linux precision, but NOT - Win32 precision). It seems that precision change is not - really an issue (despite Graeme's claim that the cursor - in the menu was/is off). I also pick the roundiung behavior - that is seemingly used by ANSI and gcc (but possibly not - Win32 _ftol depending on build). - -2000-12-15 Bernd Kreimeier - - * code/unix/Makefile: added snapvector.o - * code/unix/unix_shared.c: #if 0'ed the old snapvector code. - * code/unix/snapvector.nasm (Sys_SnapVectorCW): two new - assembly functions from AndrewH that explicitely set the - FPU control word to convert vec3_t, to ensure cross-platform - behavior for both DLL and QVM. - - * code/unix/ftol.nasm (Q_ftolC37F): for globals. - - * code/unix/unix_main.c: took out global FPU manipulation. - For clarity this should be VM only. - * code/qcommon/vm_x86.c: added prototypes for the ftol - library. To select a specific behavior for the entire VM, - set ftolPtr accordingly. - Later: the GCC ftol function of course affect the stack - (there is no "declspec naked"). The problem seems to be - that the VM never handles the stack in a way compatible - to regular gcc C functions. For some odd reason _ftol seems - to do the right thing under Win32. All 4 control words - implemented at the moment work just fine with the menus. - - * code/unix/ftol.nasm: added a small library of "safe" qftol - variations that explicitely set the control word to the - relevant (4) possibilities. - -2000-12-13 Bernd Kreimeier - - * code/qcommon/vm_x86.c: an entire day spent trying to nail - the ftol issues. It breaks down like this: id used to use - an unsafe (no setting FPU control word) fistp. That seemingly - caused subtle physics bugs which nobody cared about in 1.17. - They then changed the UI code, and ran into the UI bugs: - menu entries shifted to the right, fonts vanishing. Then - they switched to using _ftol. Then they had to reproduce - the old behavior for the physics code due to public outrage. - My original port used a simple (long)float cast, which gcc - seemingly compiles to code that does OR 0C00 on whatever - current control word (precision unchanged). This breaks the - menus. If I use the unprotected fistp instead, which should - (Linux 037F default) use "nearest/even", then my menus are - correct. That would mean Win32 _ftol in id's compile does - the same, only that would require /qifist or some equivalent - compile flag, which I can't find. Two disassemblies of _ftol - I got from others showed OR 0C00 as part of the default (ANSI) - behavior. - -2000-12-13 Bernd Kreimeier - - * code/game/bg_pmove.c (PmoveSingle): trap_SnapVector. - The one true and single call to snap velocity. - Note: bspc/map.c:void SnapVector(vec3_t normal) - qcommon/cm_patch.c:void CM_SnapVector(vec3_t normal) - game/q_shared.h: #define SnapVector(v) {v[0]=((int)(v[0]));... - - * code/client/cl_cgame.c: CG_SNAPVECTOR. - * code/server/sv_game.c: G_SNAPVECTOR. - Note: these go through trap_SnapVector in syscalls. - - * code/unix/unix_shared.c (Sys_SnapVector): sticking to - old Linux version for now... - * code/win32/win_shared.c (Sys_SnapVector): changed. - Note: Graeme points out this was changed to fix ftol - artifacts? - TODO: calculate errors for various ftol variants... - - * code/qcommon/vm_x86.c: both the old fistp code (1.17) - and the new qftol function apparatently work. Using the - ftol.nasm code for now. - - * code/unix/Makefile: DO_NASM and ftol.o. - - * code/unix/ftol.nasm (qftol): created from Mike's SoF - replacements, with Andrew's help to satify the VM - stack/call requirements. - TODO: use Q_ftol herein to replace myftol elsewhere. - - * code/unix/unix_main.c (Sys_ConfigureFPU): SIGFPE. - TODO: divide by zero in botlib. Disable this for now. - Note: we can't introduce calculation differences between - versions, so fixing these will have to wait. - - * code/qcommon/vm_x86.c: two new lines in Win32 branch - missing from Linux assembly in AsmCall: - mov eax, dword ptr [edi] - and eax, [callMask] - Added, doesn't seem to affect UI etc. bugs. - Later: no FTOL_PTR, use fistp non-IEEE assembly as in old - version. This seems to work for Q3 and TA, while qftol - (simple cast) does not - for Win32 Graeme says the reverse - is true. - - * code/qcommon/vm_x86_old.c: used the old cvs-1.17 version. - Two fixes (Hunk_Alloc, Com_Memcpy), and it works: - +set vm_game 2 +set vm_ui 2 +set vm_cgame 2 - UI, cgame and game w/o apparent problems. - -2000-12-12 Bernd Kreimeier - - * code/unix/Makefile: cleanup of redundant flags. - Removed bogus MALLOC_CHECK (note to self: export MALLOC_CHECK_=2). - Also DO_SHLIB_CC on all UI DLL's. - Added and removed DEBUG_VM flag. - TODO: figure out whether Zoid did UI this way intentionally. - Note: this seemingly fixed the botimport problem, although - most of the changes were just redundant CFLAGS removed. Given - our wanker toolchain, should have been more paranoid. All - DLL's can now be used w/o apparent problems. - - * code/server/sv_main.c: gvm init. - * code/server/sv_game.c: gvm assertions. - * code/unix/unix_main.c (Sys_LoadDll): print vmMain - Note: top no avail. There is some odd ld/gdb problem here - that prevents examining globals and obfuscates part of - the stack between VM_Call and lower level code, through - G_InitGame. This is not just DLL's being loaded and unloaded. - Wromg flags during build? The vmCvar for "bot_developer" - ends up overlapping global botimport in memory, which - thus zero-fills part of the function pointer table. - - * code/server/sv_bot.c (SV_BotInitBotLib): this (by way of - GetBotLibAPI) is responsible for setting botimport, which, - if using the game DLL, is not properly set up. Called in - SV_Init(). - - * code/game/q_shared.c: Q_strncpyz does zero padding (duh). - Note: calls strncpy, which does a zero fill up to destsize. - If destsize exceeds memory size, zero padding will overwrite - adjacent memory. Suspicion was this happend to botimport. - - * code/qcommon/cvar.c: possible problem in Q_strncpyz call. - - * code/botlib/be_ai_weap.c (weaponinfo_fields): made this static. - Note: it seems that the "number" string got replaced by - p def.fields[0] - {name = 0x40000000 "\177ELF\001\001\001", offset = 2, type = 50, .. - Memory corruption? - - * code/game/inv.h (WEAPONINDEX_GAUNTLET): defined here. - * botfiles/weapons.c (Gauntlet): the baseq3/qagamei386.so parser - breaks here: - number WEAPONINDEX_GAUNTLET - * code/botlib/l_precomp.c (SourceWarning): added assertion to - trap botlib parsing problem.. - - * RC1: for beta test. Using my own vm/ui.qvm files in this case. - TODO: Setup with nouninstall. - TODO: fix game DLL/ botlib setup problem (so all DLL's work) - TODO: SIGFPE - TODO: profile? - - * code/unix/Makefile (ai_vcmd.o): added to game DLL linkage. - How the fuck did this happen? - DONE: "qagamei386.so: undefined symbol: BotVoiceChat_Defend" - - * TEST: +set vm_ui 2 (vm_x86, not interpreter). Breaks! - Further: qagame had undefined, but seemingly gets reloaded - second try (I hate the Linux linker). - * TODO: never reload fail DLL, abort engine - - -2000-12-11 Bernd Kreimeier - - * TEST: recompile QVM/DLL and executable to test new UI code. - The UI QVMs from the paks still do not work. - - * SOS: changes in UI code! - * code/q3_ui/ui_public.h: this file is deprecated - Note: e.g. it does not contain the background track calls. - * code/ui/ui_public.h: the uiImport_t enum here determines - the values. - * code/ui/ui_syscalls.asm: same as q3_ui now, were: - equ floor -111 - equ ceil -112 - * code/q3_ui/ui_syscalls.asm: these are now switched, were: - equ trap_S_StartBackgroundTrack -63 - equ trap_S_StopBackgroundTrack -64 - The new values match the ui/ equivalent. Also, floor (-108) - and ceil (-109) are different in ui/. - - * CVS: going to check in this snapshot and tag it as - cvs tag id1-27g-loki001209-rc4 - Presumed equivalent to SOS tag "1.27g RC4" (master). As I can't - obtain the tagged code using SOS (neither Win32 nor Linux client) - I can only guess. - - * TEST: use my own VM code, ion baseq3/vm/*.qvm and missionpack/vm/. - This works - in other words, the menu bug seems in the UI code, and - is fixed in my codebase. - - * TEST: make release. - Note: I can postpone DLL specific problems. Bad performance is not - as important as outright bugs. Thus the UI QVM issue is the only - one that stops me from creating an RC. - TODO: Q3 UI QVM code from pak file does not work (neither does TA). - TODO: sound with video playback still awful. Threaded sound, I guess. - TODO: ERROR: couldn't open demos/DEMO002.dm3.dm_48 (same demo001.dm3.dm_48) - - TODO: do not show Q3 demos in TA menu? - TODO: new demos for Q3? Or at least error message? - - * code/game/bg_lib.c: itrinsics excluded by Q3_VM (another -O - compile). Uninitialized variable. - * code/unix/Makefile: -O for uninit on patched code. Also shortcuts. - TODO: DC_ONLY seems an obsolete flag, used in Makefiles, not source. - - * TEST: +set sv_pure 0 +set vm_game 1 +set vm_cgame 1 +set vm_ui 0 - Turns out that the pak0.pk3 UI QVM code is seemingly broken in TA - and Q3, but my UI DLL is not. In reverse, the QVM game/cgame for - Q3 seems to work quite well (including bots). The TA game/cgame - also works, including botlib init. - TODO: BotLib Init using game DLL gives: - TODO: Error: file weapons.c, line 38: unknown structure field number - TODO: Fatal: couldn't load the weapon config - TODO: Error: BotLoadMap: bot library used before being setup - - * TEST: checked the rc4winstlr.zip CD tree against - my test install. baseq3/pak4.pl3 and missionpack/pak0.pk3 - are identical, but I finally recognized that there was - a missionpack/pak1.pk3 not in the final install - left over - from an earlier update from id. Doesn't seem to affect the - DLL based runs at all. - Note: I still do not have the final CD snapshot Robert - promised me mid last week, they haven't even fixed the - FTP account they took down. Communication with id is as - abyssmal as ever. - -2000-12-08 Bernd Kreimeier - - * TEST: running with RC4 data files. - TODO: "bot library used before setup" (Q3+TA) - TODO: Q3 old mods wreak havoc (graceful bounce) - TODO: supress "FreeType code not available" in renderer - TODO: can't move in Q3 - TODO: items flicker in Q3 - TODO: no decals in Q3 - TODO: VM UI code still broken (Q3+TA) - TODO: sound code is awful - TODO: video playback inferior to earlier builds - - * code/q3_ui/ui_local.h: prototype trap_VerifyCDKey(..) - * code/game/g_active.c ( StuckInOtherClient): TA only. - * code/cgame/cg_draw.c: 4x unbalanced `#endif' - from patch? - * code/null/null_client.c (CL_CDKeyValidate): dummy added. - * code/qcommon/common.c: Q_acos missing, changed conditionals - - * code/qcommon/vm_x86.c: unreacheable _asm instruction that - gcc doesn't quite like... #if 0'ed for now - TODO: understand _asm { mov eax,[ebx] }, fix it for gcc - - * TEST: compile... - - * code/ui/ui_main.c: full REJECT. Manual merge. - Note: preserved debug_protocol lines, who knows what it's good for. - - * code/qcommon/files.c: REJECT. SafeMode, demo server FS_Restart. - - * code/client/snd_mem.c: REJECT: $SOS$. - * code/client/snd_dma.c: REJECT: $SOS$. - * code/client/cl_cin.c: REJECT. com_timescale, $SOS$. - - * code/cgame/cg_draw.c: REJECT. Lots, but virtually all either - float postfix (on some, not all places), or #ifndef MISSIONPACK - that I had already put in during -Werror (conditional unused). - - * code/cgame/cg_consolecmds.c: REJECT. id commented unused code - that I had #if 0'ed earlier. - - * code/game/: three REJECT for $SOS$. - * code/botlib/: lots REJECT for $SOS$. - - * Patch: patching up from demo source. - ln -s sos001204-rc4 work - diff -urbB sos001122-demo/ work > work.diff - ln -s cvs-1.27b/ work - patch -p0 < work.diff > work.patch - find cvs1.27b/ -name '*.rej' -print - - * CVS: going to check in this snapshot and tag it as - cvs tag id1-27b-loki001208-demo - Then patching up to RC4, as of sos001204-rc4 (no changes since, - should be equivalent to SOS tag "1.27g RC4" (raduffy), i.e. master. - - * TEST: installed demota/ from Win32 distribution. Binary - fails claiming "Corrupted pak0.pk3". Abandoned. - Note: a Linux demo for Q3TA has no priority. Most important is - the Q3A point release in time for Q3TA hitting shelves, followed - by testing for Q3TA. The source is in CVS and tagged (see above) - in case a demo matching the released files has to be provided - later. - - -2000-12-07 Bernd Kreimeier - - * TEST: compile and link - succeeds. - - * code/ui/ui_main.c: UI_StopServerRefresh now uaws. - New unused variables. - - * code/unix/unix_main.c: added Sys_LowPhysicalMemory() stub. - TODO: write Linux equivalent to GlobalMemoryStatus. - - * code/qcommon/common.c: Com_Memset/Com_Memcpy. Neither assembly - nor C versions included if not on Win32 i386. - TODO: using/porting assembly? - - * code/qcommon/files.c: unused variable. - TODO: fs_scrambledProductId unused if 0 for now. - Note: -DFS_MISSING for id's pak cleanup, not used. - - * TEST: compile and link - fails. - - * code/macosx/Client/Makefile.postamble: empty ORIG. - * code/macosx/Client/Makefile.preamble: ORIG. $(BOTLIB_OBJS) added. - - * code/server/sv_client.c: ORIG. Com_Memset. - * code/renderer/tr_shader.c: ORIG. Com_Memset, CIN_Shader. - * code/qcommon/vm_x86.c: ORIG. Com_Memcpy. - * code/qcommon/unzip.c: REJECT. Com_Memcpy, $SOS$. - * code/qcommon/qcommon.h: ORIG. PROTOCOL 47, plus Sys_LowPhysicalMemory. - * code/qcommon/md4.c: Com_Memset,Com_Memcpy (ORIG). - * code/qcommon/files.c (Sys_ConcatenateFileList): REJECT. - Our additons threw it off, plus $SOS$. - * code/qcommon/common.c: they fixed same unused variables (REJECT). - - * code/ui/ui_shared.c: additions (ORIG). - * code/ui/ui_gameinfo.c: COM_Compress added (ORIG). - * code/ui/ui_atoms.c: print statements removed (ORIG). - * code/ui/ui_main.c (UI_DoServerRefresh): REJECT on comment edit... - - * code/game/g_cmds.c (Cmd_VoiceTaunt_f): logic changed heavily. ORIG. - * code/game/q_shared.h: Q3_VERSION "Q3 Team Arena Demo 1.27b" - plus Com_Memset, Com_Memcpy, CIN_shader, COM_Compress. - * code/game/g_main.c: Cvar change only - * code/game/ai_dmq3.c: $SOS$. - - * code/client/snd_mix.c: Com_Memset - * code/client/client.h: additions (ORIG). - * code/client/snd_mem.c: see below. - * code/client/snd_dma.c: $SOS$ (CVS keyword). - - * code/client/cl_cin.c: they removed unused (REJECT). - * code/cgame/cg_servercmds.c: ORIG. compress, noTaunt etc. - * code/cgame/cg_main.c: ORIG. Conditonal branch, COM_Compress. - * code/cgame/cg_consolecmds.c: ORIG. Cvar values changed. - * code/cgame/cg_draw.c (CG_DrawTeamBackground): ORIG. - no reject but *.orig file created. I just mark spots were - code changed after verifying the patch succeeded. - - * code/cgame/cg_event.c: fixed reject (REJECT). - * code/botlib/: all *.rej here due to SOS/CVS $Keyword$. - TODO: preserve SOS comments/rev history somehow. - - * Patch: patching up to demo source. - ln -s sos001122-demo work - diff -urbB sos001119/ work > work.diff - ln -s cvs-1.26/ work - patch -p0 < work.diff > work.patch - find cvs1.26/ -name '*.rej' -print - - * CVS: going to check in this snapshot and tag it as - cvs tag id1-26w-loki001207 - to prepare for upgrading to RC4. I have already made - many more changes than I wanted to w/o getting any - closer to pinpointing the problem, I might as well - patch up to id's more current sources. - - * code/botlib/be_interface.c: initialize by memset. Turns - out that this fails in Export_BotLibSetup on BotSetupWeaponAI - loading "weapons.c" (from the pak, presumably) with an unknown - structure field number. Mismatch of datafiles vs. source again. - - TODO: id replaced memsets in later source. - TODO: have memsets on all exports and imports. - - * SOS: RC4 source should be tagged "1.27g RC4" (raduffy). - Unfortunately the Linux client doesn't care a bit. Show - History does work if from/to date differ by at least a - day, and it shows the tag on code/ (only that subtree), - but recursive get aborts halfway. - Manual: http://www.sourcegear.com/SOS/Doc/ - -2000-12-06 Bernd Kreimeier - - * TEST: accepting missing shaders now. No bots, but I can - actually enter the game and play (more than can be said for - classic Q3 right now). - TODO: Error: BotStartFrame: bot library used before being setup - - * code/renderer/tr_shader.c: took out assertion for now... - * TEST: now missiopack/cgame loads - TODO: tr_shader.c:2275: R_FindShaderByName: failed - TODO: searches ui/assets/3_cursor2.TGA, has ui/assets/3_cursor3.tga - - * code/unix/Makefile (MPCGOBJ): ui_shared.o (duh). - DONE: /cgamei386.so: undefined symbol: PC_Float_Parse - - * code/botlib/be_ai_goal.c: initialize campspots etc. This - might or might not fix this one (didn't get back to gdb due - to mouse-only navigation). - DONE: 0x80d1d5b in BotFreeInfoEntities () at be_ai_goal.c:447 - - * TEST: this time with missionpack/cgame loading... noy - TODO: TA menu blocked after end of intro movie - TODO: console in_mouse 1 doesn't grap pointer even on vid_start? - - * code/cgame/cg_newdraw.c: -Werror. - * code/unix/Makefile (MPCGOBJ): cg_newdraw.o was missing (duh). - DONE: missionpack/cgamei386.so: undefined symbol: CG_OwnerDrawVisible" - - * code/ui/ui_shared.c:1309 assign after bail on NULL. - DONE: segfault in Item_SetFocus (item=0x0, x=0, y=0) - - * TEST: new set of DLL's (this time hopefully correct). - All baseq3/ DLL's load, as does the missionpack/ UI DLL. - The menus now work in both (TA seems mouse-only on everything - but "Quit"). Segfault on delayed TA "Quit" (stack fubared): - #5 0x809fc28 in VM_Call (vm=0x88408a0, callnum=3) at ..//qcommon/vm.c:617 - #6 0x805aafc in CL_KeyEvent (key=9, down=qtrue, time=128644) cl_keys.c:1194 - TODO: TA menu's w/o mouse? - TODO: Win32 goes submenus but does not unfold - TODO: Linux does not go submenus - - * code/ui/ui_main.c: see below. - TODO: LCC gets fits - operands of = have illegal types - TODO: 'pointer to const unsigned char' and 'pointer to const char' - * code/ui/ui_shared.c: see below. - * code/ui/ui_gameinfo.c: see below. - * code/ui/ui_atoms.c: see below. - * code/game/g_bot.c: more cruft. - * code/cgame/cg_draw.c: loads of functions modified for - MISSIONPACK that aren't used at all for MISSIONPACK anymore. - Development relics. - - * code/cgame/cg_consolecmds.c: -Werror. - Note: due to Makefile error never ever compiled... - - * code/unix/Makefile: fixed various dependency errors - for game and ui library. - TODO: create a new Makefile with patsubst and rules. - TODO: why C_ONLY in the i386 dedicated server? - - * code/unix/unix_main.c: use dlerror() excessively. - Littered more unused DLL related functions with assert(0). - TODO: clean up Sys_Load/UnloadDll (a real mess) - TODO: remove Zoid code cruft (unused per-DLL functions) - - * code/game/bg_misc.c: changed G_Printf for Com_Printf. - This was undefined in baseq3/uii386.so preventing loading. - - * TEST: +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0 - Note: so far I used only the game DLL.. duh. - UI DLL fails to load: missing G_Printf. - - * code/unix/Makefile: -DMALLOC_CHECK in addition to - the -DZONE_DEBUG I have used since switching to calloc. - Using MALLOC_CHECK=1 for now, might use 2 if something - comes up. - - * code/renderer/tr_init.c (GL_SetDefaultState): it does get - called, but does not show up in the log. - - * TEST: tried executing a script - get bounced. - TODO: is there any way to jump into a map? - TODO: cl_cinematics 0 (supress all fullscreen RoQ) - Next: used r_logfile 200 in Win32 (RC4) and Linux. - There is a buckload of setup code seemingly not done - at all in Linux? Either that, or logging is enabled - with a delay in Linux. - - * code/unix/linux_glimp.c: fixed autorepeat (H2/Fakk2 way). - -2000-12-05 Bernd Kreimeier - - * code/renderer/tr_mesh.c: added assert there. - * TEST: menus and in-game drawing are just as they were with - the initial SOS001119 port. In addition: - R_AddMD3Surfaces: no such frame 0 to -2147483477 - for 'models/players/xaero/upper.md3' - R_AddMD3Surfaces: no such frame -2147483477 to 171 - R_AddMD3Surfaces: no such frame 171 to -2147483498 - ad nauseam (used as my player model). - Triggered: haveing a trRefEntity_t *) 0x41dbbd00 with - frame = -2147483477. Might be a red herring (PRINT_DEVELOPER), - ignore for now. - - * code/ui/ui_main.c: missing return. - * code/ui/ui_shared.c: excess byte in initializer (which gcc - did not caught, but LCC did). Also LCC complains about - missing returns, but gcc doesn't (neither says unreacheable - code though). If necessary (MsVC?) guard with Q3_VM. - - * code/q3_ui/ui_ingame.c: see below. - * code/q3_ui/ui_atoms.c: voidfunc_f. LCC warns about conversion - from `pointer to void' to `pointer to void function(void)' - being compiler dependent. Casting NULL. Guess what, doesn't fix - it either. - TODO: do not use these cursed scripts to generate VM code, - we do not have proper rules for LCC/q3asm, thus the files never - get updated. - - * code/unix/Makefile: for paranoia's sake recreated the 1.17 - compile for the UI DLL (where only q_shared/math were actually - compiled as DO_SHLIB_CC. - Later: switched to different gcc. - - * STATIC: remaining problems are vmMain (same entry point for all - DLL's), could use cgMain, uiMain and gMain here for HARD_LINKED. - Note: I don't think id has used this in ages. - Plus all the collisions in *_syscalls.c, which simply can't be - fixed cheaply. None is the superset of 2 others, neither seems - w/o overlap to others. Full stop. - - * code/botlib/be_aas_move.c: see below. - * code/game/ai_dmq3.c: VEC_UP/DOWN, MOVEDIR_UP/DOWN now static. - See also game/g_utils.c for existing static duplicates. - - * code/game/q_shared.h: #define stricmp strcasecmp - * code/unix/Makefile: no mo' -Dstricmp=strcasecmp, see q_shared.h - Also: no mo' -I/usr/include/glide, no FX - TODO: are we building against system GL headers? ../Mesa/? - - * code/q3_ui/ui_atoms.c: comment on duplication - * code/cgame/cg_drawtools.c: use UI/CGAME_HARD_LINKED on UI duplicates - TODO: does this UI_ code in cg_drawtools/ui_atoms belong into ui_shared? - - * code/unix/Makefile: use -DQ3_STATIC - * code/game/q_shared.h (*_HARD_LINKED): trigger on Q3_STATIC - Later: collision between UI and CGAME is still there. This fixed - the Com_Error, Com_Printf issues though - - * code/unix/Makefile ($(B)/q3static/ai_vcmd.o): this file was - missing, hence undefined symbol. - ($(B)/baseq3/game/ai_vcmd.o): same here. - ($(B)/missionpack/game/ai_vcmd.o): same here. - - * STATIC: cg_syscalls.c, g_syscalls.c and ui_syscalls.c alias. - Multiply defined symbols: - Com_Error, Com_Printf - VEC_UP, VEC_DOWN - MOVEDIR_UP, MOVEDIR_DOWN - vmMain - dllEntry - PASSFLOAT - trap_Error - trap_Milliseconds - trap_Argc - trap_Argv - trap_FS_FOpenFile - trap_FS_Read - trap_FS_Write - trap_FS_FCloseFile - trap_FS_GetFileList - trap_R_RegisterModel - trap_R_RegisterSkin - trap_R_RegisterFont - trap_R_RegisterShaderNoMip - trap_R_ClearScene - trap_R_AddRefEntityToScene - trap_R_AddPolyToScene - trap_R_AddLightToScene - trap_R_RenderScene - trap_R_SetColor - trap_R_DrawStretchPic - trap_R_ModelBounds - trap_UpdateScree - trap_S_StartLocalSound - trap_S_RegisterSound - trap_Key_IsDown - trap_Key_GetCatcher - trap_Key_SetCatcher - trap_GetGlconfig - trap_PC_AddGlobalDefine - trap_PC_LoadSource - trap_PC_FreeSource - trap_PC_FreeSource - trap_PC_ReadToken - trap_PC_SourceFileAndLine - trap_S_StopBackgroundTrack - trap_S_StartBackgroundTrack - trap_RealTime - trap_CIN_PlayCinematic - trap_CIN_StopCinematic - trap_CIN_RunCinematic - trap_CIN_DrawCinematic - trap_CIN_SetExtents - trap_MemoryRemaining - trap_SendConsoleCommand - trap_Cvar_Register - trap_Cvar_Update - trap_Cvar_Set - trap_Cvar_VariableValue - trap_Cvar_VariableStringBuffer - trap_RealTime - trap_SnapVector // used in game/bg_*.c, needs conditional - More aliasing between ui_atoms.c and cg_drawtools.c: - UI_DrawBannerString - UI_ProportionalStringWidth - UI_ProportionalSizeScale - Undefined symbol: ai_team.o: In function `FindHumanTeamLeader': - ai_team.c:1899: undefined reference to `BotVoiceChat_Defend' - Note: - - * code/game/g_main.c: unused. - * code/game/g_arenas.c: unused. - * code/game/ai_team.c: init. - * code/game/ai_dmnet.c: /* in comment (odd). - Note: why do these come up now but not earlier? - TODO: the make dependencies might target wrong files. - - * code/unix/Makefile (TARGETS): added q3static. - Note: this is baseq3/ - - * TEST: +set r_logfile 100. It seems that the addition of - code (add an assertion etc.) changes the behavio of the binary. - The intro cinematics code seems to suffer first - didn't play, - then played, then (another assert added) doesn't play. Watch - out for (missionpack): - UI_CIN_PlayCinematic - SCR_PlayCinematic( mpintro.roq ) - trFMV::play(), playing mpintro.roq - Also fails to exit cleanly: break gives - #0 0x401919ee in __select () - #1 0x400bbcb8 in __DTOR_END__ () - #2 0x4004baa1 in _XSend () - #3 0x452b009f in GLXRenderFlush () - #4 0x804ce0c in _XRead () - #5 0x40680813 in ?? () - Stack is corrupted. - Note: ~/.q3a/gl.log - TODO: write per-frame files (see Heretic2) - TODO: add Heretic2 QGL (more detail) - - * code/unix/linux_qgl.c (QGL_EnableLogging): fixed countdown - (i.e. propagated changes from win32/, see Fakk2). - - * code/unix/linux_glimp.c: fixed QGL_EnableLogging argument - to avoid cast error (always qfalse). - - * code/unix/Makefile (DEBUG_CFLAGS): use ZONE_DEBUG. - - * code/qcommon/common.c: replaced malloc with calloc calls. - - * code/q3_ui/ui_local.h: have to use ui/ui_public.h - * code/cgame/cg_servercmds.c: requires ../ui/menudef.h - - * code/cgame/cg_consolecmds.c: ui/ui_shared.h is unique. - * code/q3_ui/ui_public.h: make sure this won't be compiled. - * code/client/client.h: we have to include ui/ui_public.h. - Note: id is obviously maintaing only the ui/ headers, so the - headers in q3_ui/ are deprecated. - - * code/renderer/tr_shader.c: added assertions (see Ryan's Fakk2 - problems with missing shaders). - - * code/game/g_cmds.c: below. - * code/game/ai_vcmd.c: below. - * code/game/ai_team.c: below. - * code/game/ai_dmnet.c: below. - * code/game/ai_dmq3.c: below. - * code/game/ai_chat.c: below. - * code/game/ai_cmd.c: ../../ui/menudef.h (new Q3TA script directory). - - * code/cgame/cg_newdraw.c: make sure it won't compile w/o MISSIONPACK. - - * code/cgame/cg_servercmds.c: below. - * code/cgame/cg_event.c: below. - * code/cgame/cg_consolecmds.c: below. - * code/client/keys.h: below. - * code/client/client.h: below. - * code/q3_ui/ui_local.h: include from ../q3_ui/ not ../ui/. - Note: id seems to intentionally use the header from the new ui/. - - * Makefile: checked -I$(UIDIR), there is no such. That means all - files include directly, which means all (including Q3) are using - the new ui/ headers. - -2000-12-04 Bernd Kreimeier - - * RC4: released as 362101115 Dec 4 11:40 TA_Q3A_RC4.zip - - * TEST: the corrupted menu problem is back :-(. Looks like I am in - for a static link next. - - * code/unix/Makefile (clean2): fixed (not all new OBJ covered). - * code/q3_ui/ui_teamorders.c: -Werror. - * code/q3_ui/ui_team.c: -Werror. - * code/q3_ui/ui_qmenu.c (Bitmap_Draw): -Werror. - * code/q3_ui/ui_mods.c (UI_Mods_LoadModsFromFile): unused. -Werror. - * code/q3_ui/ui_controls2.c: -Werror. - * code/q3_ui/ui_atoms.c: -Werror - * code/null/null_client.c: -Werror. - * code/unix/linux_joystick.c: -Werror. - * code/unix/linux_glimp.c: -Werror. - * code/unix/linux_qgl.c: -Werror. - * code/unix/unix_shared.c: -Werror. - * code/unix/unix_net.c: -Werror. - * code/unix/linux_local.h: added missing prototypes. - * code/unix/unix_main.c: -Werror. Includes linux_local.h - * code/jpeg-6/jdmainct.c: see below. - * code/jpeg-6/jcmainct.c: variables called "main" (*moan*) - * code/jpeg-6/jcdctmgr.c (forward_DCT): -Werror. - * code/botlib/l_script.c (PS_ReadLiteral): -Werror - * code/botlib/l_precomp.c (PC_AddBuiltinDefines): -Werror. - * code/botlib/be_interface.c: -Werror. - * code/botlib/be_aas_reach.c: -Werror - * code/botlib/be_aas_cluster.c: -Werror - * code/game/be_aas.h: -Werror. - Note: MrElusive accumulates a lot of code history in nested comments, - which gcc doesn't like at all. #if 0'ed to avoid. - * code/qcommon/vm_interpreted.c: -Werror. - * code/qcommon/unzip.c: -Werror. - * code/cgame/cg_servercmds.c: -Werror. - * code/cgame/cg_main.c: -Werror. - * code/cgame/cg_drawtools.c: -Werror. - * code/game/bg_misc.c: -Werror. - * code/game/be_ai_move.h (bot_avoidspot_s): added. - * code/botlib/be_ai_move.c: removed typedef struct bot_avoidspot_s - * code/client/snd_mix.c: -Werror. - * code/qcommon/md4.c: -Werror. - * code/qcommon/common.c: -Werror. - * code/client/cl_keys.c: -Werror. - * code/client/cl_cin.c: -Werror, init local variables. - * code/unix/Makefile: -Werror. need -O for -Wall for uninitialized - Note: the above is the list of files that got touched during a pass - with -g -O -Werror -Wall flags (in the hope of finding uninitialized - memory and ambiguous statements). Most of the above are simply - unused variables (or even code). - - TEST: RC3 data files, but DLL's. - TODO: TA gets stuck in initial sound, doesn't play cinematics (sometimes) - TODO: Q3 intro movie looses sound after Sarge gets teleported - TODO: Q3 ingame renders world, weapon, muzzleflash, hud, can shoot, - TODO: but no movement, hud background is fubared. - - * code/cgame/cg_main.c: cg_singlePlayerActive - - * code/q3_ui/ui_login.c: doesn't seem to be used? - * code/game/g_rankings.c (G_RankRunFrame): doesn't seem to be used. - * code/q3_ui/ui.sh: disabled this. - * code/q3_ui/q3_ui.sh: changed include path to ../q3_ui/ (duh). - - * code/game/game.sh: changed include path to ../q3_ui/ which - is not in the Win32 batch file. - * code/cgame/cg_rankings.c: this does not seem to be included. - * code/cgame/cgame_ta.sh: added -DCGAME. Also added cg_syscalls.c - to build (also missing in Win32). - - * code/cgame/cgame.sh: added -DCGAME (see cgame.bat). Also - changed include path to ../q3_ui/ which is not in the Win32 - batch file. Also added cg_syscalls.c to build (missing in - Win32). - -2000-12-01 Bernd Kreimeier - - * RC3: released as of sos001201 / Q3 1.27f - - * code/unix/Makefile: more fixes with clean build. The - changes made fix the menu rendering for Q3 but not TA. - Ingame graphics still broken. - - * code/game/game_ta.sh: created. Use game_ta.q3asm here. - * code/game/game.sh: no -DMISSIONPACK - * code/game/game_ta.q3asm: CR/LF, /. - - * code/cgame/cgame_ta.sh: created. Use cgame_ta.q3asm here. - * code/cgame/cgame.sh: no -DMISSIONPACK. No cg_newdraw, ui_shared. - * code/cgame/cgame.q3asm: No cg_newdraw, ui_shared. - CR/LF, /, cg_newDraw, and the output path/name. - - * code/q3_ui/q3_ui.q3asm: output to ui not q3_ui... - - * code/cgame/cg_event.c: cg_singlePlayerActive used here. - TODO: guard by MISSIONPACK - * code/cgame/cg_local.h: named q3print_t enum. Cvar - cg_singlePlayerActive for both Q3 and TA. - - - * code/unix/Makefile: cleanly separate B/baseq3/ and - B/missionpack/ subtrees during build. While new and old - UI are in separate directories, the cgame/ and game/ - are shared, with conditional -DMISSIONPACK compile - and different files includeds (cd_draw, cg_newdraw). - That means twice the number of targets (3 DLL's, 3 QVM's, - times two), and different build rules. - TODO: carefully check Win32 build for (other) conditionals - TODO: carefully check Win32 build for link lists - - * CVS: ui/, code/ui, botfiles/ and subdirectories are added. - The code/macosx/ directory turned out to be a real pain that - had to be edited manually, throwing out CVS/ directories in - the tree that had been created by SOS as they are in id's - repository: - code/macosx/Client/CVS - code/macosx/Client/PBUserInfo/CVS - code/macosx/Client/Quake3.nib/CVS - code/macosx/Common/CVS - code/macosx/DedicatedServer/CVS - code/macosx/DedicatedServer/PBUserInfo/CVS - Now tagged - cvs tag id1-26y-loki001119 - TODO: there are several new files not yet linked? - - * ChangeLog: merged the Changelog from the bk00119 working - branch (initial Q3TA port) based on sos001119 snapshot. Also - merged the source tree with cvs-1.17. - In the ChangeLog below *** MISSIONPACK *** indicates work - that was done on the branch (code-sos/ prefix in files). - The cvs update of this will be tagged with - cvs tag id1-26y-loki001119 - Use this tag to hunt for possible Linux fixes that got lost - (i.e. got dropped by id since id000516 and were thus not in - sos001119, but did not show in diff id000516 cvs1-17). - New directories in CVS: botfiles/, ui/. - Missing from SOS/Missionpack: SDK directories. - common, lcc, libs, q3asm, q3data, q3map, q3radiant. - - - * ssreport.txt: below. - Note: watch for files called "ssreport.txt", that's id ChangeLog. - * ui/ui_syscalls.asm: below. - * q3_ui/ui_syscalls.asm: below. - * game/g_syscalls.asm: below. - * cgame/cg_syscalls.asm: below. - * bspc/linux-i386.mak: below. - * bspc/lcc.mak: below. - * botlib/linux-i386.mak: below. - * botlib/lcc.mak: below. - * A3D/a3d_console_variables.txt: CR/LF issue (minimize diffs). - - * CVS: the checked bk001119 work copy of the sos001119 initial - checkout (completed with everything in the SOS "Missionpack" - tree, i.e. botfiles/ and botfiles.* added), copied over the - cvs-1.17 checkout. - Note: in these cases, BEWARE ui -> q3_ui/ links, and different - ChangeLogs. Also "make clean" helps. - - * unix/unix_net.c: below. - * unix/unix_main.c: below. - * unix/matha.s: below. - * unix/linux_qgl.c: below. - * unix/linux_glimp.c: see also linux_joystick.c. - * server/sv_client.c: below. - * renderer/tr_surface.c: below. - * renderer/qgl.h: below. - * qcommon/qcommon.h: below. - * qcommon/files.c: below. - * qcommon/common.c: below. - * q3_ui/ui_demo2.c: below. - * mac/mac_net.c: below. - * mac/mac_glimp2.c: below. - * game/surfaceflags.h: below. - * game/bg_lib.c: checked against id00516/cvs-1.17a diff. - * bspc/bspc.c: TH_AASToTetrahedrons call removed since id000516. - Note: our final compare of id000516 against cvs-1.17a, making sure - that all these differences are in bk001119 (initial Q3TA port). - If id branched the Q3TA base off before id000516 we might be screwed. - Note: I do not diff against bk000520, which had some minor changes - against id000516 (check VectorArrayNormalize, OTConfiguration), which - seem consistent with me taking a pre-id000516 source snapshot for that - working branch. - -2000-11-30 Bernd Kreimeier - - * TEST: compiled using the symbolic link ui/ -> q3_ui/. - Had to undo one CVS change, regarding - code/cgame/cg_syscalls.asm - code/game/g_syscalls.asm - code/q3_ui/ui_syscalls.asm - These files are neither generated by Win32 cgame.bat - nor cgame.sh (etc.), thus seemingly maintained by hand. - cvs tag pr1-17-loki001130b - should be used if somebody needs this 1.17 snapshot - (which, remember, is post-release, with additional fixes). - Later: - cvs tag pr1-17-loki001130c - includes the full ChangeLog (duh). - - * CVS: up until cvs-1.17-001130, code/ui/ contained the - Q3 code for the UI QVM/DLL. In Q3TA, this code has been - moved to code/q3_ui/, while at the same time the new - (scripting driven) UI code for Q3TA was maintained in - code/ui/. To preserve the history of code/ui/, it has been - renamed to q3/ui/ in the CVSROOT. - Note: this will BREAK all cvs-1.17 and before checkouts. - To compile earlier versions, move or link q3_ui/ to ui/. - The code has been tagged - cvs tag pr1-17-loki001130 - after the change. - DONE: remove code/*/vm/*.asm from CVSROOT - Note: this includes code/*/*.asm files (from *_syscalls.c). - These were originally tracked in CVS, but if we need - comparison of q3asm output or QVM files we can rely - on the Win32 and Linux SDK now. These files have been - physically removed from CVS now, followed by - cvs tag pr1-17-loki001130a - -2000-11-30 Bernd Kreimeier *** MISSIONPACK *** - - * RC2: new ZIP file (another 360M for convenience). - - * SOS: new CVS module, Quake3_sos. This will be used to track - the unchanged SOS checkouts from id. As their repository - is read-only, and there is no estimate on when changes might - be backpropagated there, I will track their changes in a - separate module, and update our local Quake3 module - accordingly. This is effectively "tracking 3rd party" - w/o import and half-automated, forced mergers - in other - words, we now branch starting with our post-1.17 changes, - for the benefit of moving at all. - Baseline is a slightly changed PR-1.17 id000516 source dump - (essentially ui/ moved to q3_ui for continuity, and CR/LF etc.). - cvs import Quake3_sos id000516 pr1-17-win32 - cvs import Quake3_sos sos001119 pr1-26-win32 - cvs import Quake3_sos sos001120 pr1-26-win32-001120 - cvs import Quake3_sos sos001121 pr1-26-win32-001121 - cvs import Quake3_sos sos001122 pr1-26-win32-001122 - cvs import Quake3_sos sos001122-demo pr1-26-win32-demo - This is about the 1.26w Team Arena Win32 demo release, give or - take a couple of lines. Has Q3_VERSION "Q3 Team Arena Demo 1.27b". - cvs import Quake3_sos sos001123 pr1-26-win32-001123 - cvs import Quake3_sos sos001126 pr1-26-win32-001126 - Now track id versions (see code/game/q_shared.h:Q3_VERSION) - cvs import Quake3_sos sos001128 pr1-27c-win32-001128 - With 1.27d they switched from Demo to full version (RC1). - cvs import Quake3_sos sos001129 pr1-27d-win32-001129 - cvs import Quake3_sos sos001130a pr1-27d-win32-001130a - Now switched to 1.27e. This import is done from the SOS - working directory. - cvs import Quake3_sos sos001130b pr1-27e-win32-001130b - Note: SoS created rwx attributes which are luckily fixed - automagically during import. It is also seemingly incapable - to compare files, and leave files that have not changed the - hell alone. I can't do cvs update due to the $..$ tags in - the original files (which CVS can't be told to ignore), - so I have to do import (creating a load of vendor tagged - branches), but at least cvsweb and cvs get the revisions - right. - - * code-sos/unix/Makefile: added linux_joystick - * code-sos/unix/linux_local.h: match mac/ and win32/, for prototypes. - - * code-sos/unix/linux_joystick.c: new file, code from linux_glimp.c - Note: decided to separate this, as (a) we might edit/extend - a lot, (b), it's not in the id tree, (c) it's not GL, (d) - there might be even more oddball devices. Anything that - cuts down on diffs. - - * code-sos/unix/linux_glimp.c (Q_stristr): const return (cvs1.17). - Also (XLateKey): added more keyboard mappings (ASCII on - upper row digits) (cvs1.17). Added in the minimal joystick - hooks (cvars, function calls). Fixed joystick cvar naming - to match win32 (kept joystick_threshold). - TODO: joystick stubs for dedicated? - - * CVS: I have to move up to 1.27d (data, Win32 networking). - With exception of linux_glimp.c (mostly joystick code), - all cvs1.17 changes should now be in the work snapshot - based on the first sos001119 we got from id. There are - also some additional changes in there already, thus I'll - move the (buggy) 1.26 snapshot into CVS before adding even - more differences. - - -2000-11-29 Bernd Kreimeier *** MISSIONPACK *** - - * RC1: TeamArena_Q3A_RC1.zip. Source has moved from - Q3VERSION "Q3 Team Arena Demo 1.27c" to "Q3 1.27d" now. - - * code-sos/qcommon/common.c: added Com_InitPushEvent(). Also - increased MAX_PUSHED_EVENTS to 256. - Note: this is another case of buffer memory not zero'ed. - Com_EventLoop, fixed evTime to evType in debug print. - - * TEST: baseq3/ - +set sv_pure 0 +set vm_game 0 +set in_mouse 0 +set developer 2 - TODO: Team Arena in menu leads to RE_Shutdown(1) and locks - TODO: can't play game - TODO: shaders can't load *.tga, *.jpg files are there - TODO: DO_CC linking for DLL's, DO_SHLIB_CC only for export? - TODO: ERROR: Bad player movement angle - TODO: Warning: cvar "..." given initial values: "..." and "..." - TODO: TA demo ERROR: CL_ParseServerMessage: Illegible server message - TODO: WARNING: Com_PushEvent overflow - - * code-sos/qcommon/files.c: add NULL filter for our Sys_ListFiles calls. - * unix/unix_shared.c (Sys_ListFiles): signature has changed, - additional Sys_ListFiles argument now. - - * code-sos/unix/unix_net.c (Sys_GetPacket): see below (readcount=0). - * code-sos/unix/unix_main.c: see below (Mike's and my changes to DLL - loading, my event buffer clear fixes). - * code-sos/unix/linux_qgl.c (QGL_Init): see below (__FX__ guards). - TODO: abstract WGL/GLX and end unfortunate QGL duplication. - TODO: spice up QGL with Linux H2 full version. - * code-sos/q3_ui/ui_demo2.c: fix on demo names - no Q_strupr(demoname). - Note: in CVS this fix is in ui/ui_demo2.c. CVS is screwed by - id choosing the old name for new directory... - TODO: manual intervention on "ui goes q3_ui" in CVSROOT? - * renderer/qgl.h: see below (__FX__ guards). - * qcommon/files.c: migrated in the 1.17cvs changes against the - id000516 code dump, i.e. the (not marked - boo hiss) mkv changes. - Note: all the above is based on a diff of the last id code dump - pre-1.17 against our CVS, with those fixes now migrated into the - sos1.26 snapshot. - TODO: move in joystick code. - TODO: replace XAutoRepeatOn/Off with filter (focus). - TODO: DGA 2.0 and such. - - * code-sos/game/q_shared.c: valid compare for NULL strings - * code-sos/unix/unix_main.c: QRTLD, and now using RTLD_NOW. - Note: it is a bad idea to load game DLL's that are missing symbols. - - * code-sos/ui/ui_main.c: see below. - * code-sos/game/g_main.c: see below. - * code-sos/q3_ui/ui_main.c: see below. - * code-sos/cgame/cg_main.c: made cvarTable and cvarTableSize static. This resolved - a segfault related to traversing the UI table during Init. - Note: there is a segfault related to this variable being out of bounds. - Different struct size in global variables possible aliasing between the - DLL's. - - * code-sos/unix/unix_main.c (Sys_Error): assert(0), no exit in debug. - * code-sos/game/q_shared.c: now aborts on NULL destination. Also DPrintf's - on bogus excess copies. - TODO: make all those string functions safe, at least assert. - * code-sos/server/sv_init.c: comment in SV_Init - // init the botlib here because we need the pre-compiler in the UI - Called in qcommon/common.c:Com_Init, were CL_Init is called afterwards... - * code-sos/server/sv_bot.c: the botlib_import is filled here. - * code-sos/unix/unix_main.c (Sys_GetBotLibAPI): RTLD_NOW. Which is for naught, - as this code is not used and has never been used. assert(0) - - * code-sos/botlib/be_interface.c: botimport supposed to be set here. - * code-sos/botlib/l_memory.c: segfault with q3_ui/ DLL. - #1 0x80e23ec in GetMemory (size=35) at ..//botlib/l_memory.c:331 - 331 ptr = botimport.GetMemory(size + sizeof(unsigned long int)); - as botimport is completely NULL'ed. - - * code-sos/q3_ui/q3_ui.sh: created from ui/ui.sh 1.17 - - * code-sos/q3_ui/q3_ui.q3asm: unfubared (CR/LF, / path). - - * code-sos/unix/Makefile: added q3_ui/ make targets (basically - ui/ targets from CVS 1.17 Makefile for starters). - - * code-sos/q3_ui/: this is the old UI code, which does not use - ../ui/menus.txt (see ui/ui_main.c). In other words, - the code in ui/ now has to be compiled or qvm'ed - for missionpack/, but to create the necessary DLL or - QVM modules for baseq3/ we need to use q3_ui/. - - -2000-11-27 Bernd Kreimeier *** MISSIONPACK *** - - * code-sos/game/bg_lib.c: ld problem with a custom "tan(..)" - TODO: loooking forward to SIGFPE on this code base. - - * code-sos/ui/ui_util.c: this file is empty. - - * code-sos/ui/ui.sh: new files: - ui_shared.c - ui_util.c - Replaced by the /ui/*.menu files: - q3lcc: can't find `../ui_cdkey.c' - q3lcc: can't find `../ui_ingame.c' - etc. - - * code-sos/cgame/cgame.q3asm: added cg_newdraw entry. - Also added ui_shared entry. - * cgame/cgame.sh: added cg_newdraw.c entry. - Also added ../ui/ui_shared.c entry. - - * code-sos/cgame/cg_newdraw.c: renamed (was cg_newDraw.c mixed case). - Note: the infidels have taken over. - - * cgame/cgame.sh: added -DMISSIONPACK. - Note: w/o, q3lcc complains - ../cg_event.c:204: undeclared identifier `cg_singlePlayerActive' - ../cg_event.c:204: left operand of . has incompatible type `int' - which indicates that this source does not compile w/o MISSIONPACK - anymore. The baseq3/pak4.pk3 file in the Q3TA snapshot archives - are dated - 284464 11-10-00 14:02 vm/cgame.qvm - 463940 11-14-00 14:47 vm/qagame.qvm - 271596 11-14-00 14:48 vm/ui.qvm - the code dump is from 11-19. - Note: Make does not abort on q3lcc complains - - * code-sos/game/game.sh: also added ai_vcmd.c entry. - - * code-sos/ui/ui.q3asm: fubared (below). In addition, this is - the only one to have a - -o "/tmp/quake3/missionpack/vm/ui" - line in it. Given that the other 2 QVM modules are - also dependend on -DMISSIONPACK, this seems a real mess. - For now using the same path as the other 3. - * code-sos/cgame/cgame.q3asm: below. - * code-sos/game/game.q3asm: fubared. Fixed CR/LF and \ in paths - again (read by q3asm called by game.sh called by make). - * unix/Makefile: updated fpor DLL/QVM. - Note: also shell scripts to use q3lcc not lcc. - - -2000-11-27 Bernd Kreimeier - - * code/unix/Makefile: now expects a run/ directory - relative (between this, the Loki standards, and the - utility code in the same repository, it's ever so - slightly less dorky). - TODO: fix broken copyfiles target etc.pp. - - * code/game/bg_lib.c: turns out the changes I - undid 001120 were affecting original Zoid - Linux port related defines, which break VM - compile. Mike fixed those (which I unfixed - when referring to the latest id code that does - not contain these patches). However, they - duplicate ANSI libc symbols, so the guards might - be wrong. The symbols are missing when compiling - for VM, so I now use the existing lcc -DQ3_VM - flag: - //#if !defined ( _MSC_VER ) && ! defined ( __linux__ ) - #if defined ( Q3_VM ) - This will break DLL compile on non-ANSI platforms, - which will have to be added to the conditional then. - - * code/ui/ui.sh: below. - * code/game/game.sh: below. - * code/cgame/cgame.sh: Linux SDK installs q3lcc to - avoid collisions with regular lcc pre-installs. The - scripts fail with "lcc not found", but do not abort - the Makefile. - Note: now that VM code gets actually built, there - are errors: - g_main:648 ERROR: symbol vsprintf undefined - bg_pmove:1221 ERROR: symbol abs undefined - q_math:4309 ERROR: symbol fabs undefined - q_shared:2801 ERROR: symbol tolower undefined - q_shared:2862 ERROR: symbol toupper undefined - ai_dmq3:208 ERROR: symbol atoi undefined - ai_cmd:4951 ERROR: symbol sscanf undefined - - -2000-11-20 Bernd Kreimeier - - * TEST: test compile of pr-1.17+cvs fixes segfaults due - to new baseq3/pak4.pk3 - Note: to self ... 1.17 is not compatible with new files. - Checking into CVS next. - - * code/: changes applied by us that are not in id's code base - affect q_shared.c (NULL in Q_stricmp), files.c (FIXME fs_cdpath, - Sys_ConcatenateFileList, ui_demo2.c (demo no tolower on linux). - In unix/ linux_glimp.c (joystick code), qgl.h, linux_qgl.c (__FX__), - unix_main.c (dlopen bug and event buffers), unix_net.c (readcount), - matha.s (assembly warning). - - * code/server/sv_client.c (SV_WriteDownloadToClient): - No effective change on FS_SV_FOpenFileRead call, they reworked - autodownload some more seemingly. - - * code/renderer/tr_surface.c: VectorArrayNormalize - - * code/qcommon/qcommon.h: see below. - * code/qcommon/files.c: Com_ReadConfigs removed. - * code/qcommon/common.c: removed Com_ReadConfigs, - textual replacement of body in Com_Init. - - * code/mac/mac_net.c: not applied (undone by id) - OTConfiguration *config <> OTConfigurationRef config - - * code/mac/mac_glimp2.c: r_colorbits->integer > 16 - * code/game/surfaceflags.h (CONTENTS_BOTCLIP): added. - - * code/game/q_shared.h: not applied (undone by id) - #if defined(ppc) || defined(__ppc) || defined(__ppc__) - #define idppc 1 - #else - #define idppc 0 - #endif - - * code/game/q_math.c: added another CPP line to guard - BoxOnPlaneSide, removed WIN32 guard. - TODO: this could be broken code guarded in all current - compiles... - - * code/game/bg_lib.c: left Q#_VM guard for typedef cmp_t - Added !defined( __linux__ ) for tolower and atoi. - Note: the changes above relate to the very last code update - from id prior to the 6 month blackout, which were not in - CVS when Michael made his updates. Needed to establish the - baseline for the new patch. Source dump 1.17.00520, against - SOS 1.26w-001119 version. - -2000-11-20 Bernd Kreimeier *** MISSIONPACK *** - - * TEST: running against the data up to TeamArena_Q3A_001109.zip - Hunk_Clear: reset the hunk ok - Program received signal SIGBUS, Bus error. - "q3dm2", killBots==qtrue - #0 CM_ClearMap () at ..//qcommon/cm_load.c:644 - #1 0x80884a7 in SV_Map_f () at ..//server/sv_ccmds.c:159 - #2 0x8072579 in Cmd_ExecuteString (text=0xbffff4b0 "spmap q3dm2") at ..//qcommon/cmd.c:591 - #3 0x8071dfe in Cbuf_Execute () at ..//qcommon/cmd.c:190 - #4 0x80763f7 in Com_Frame () at ..//qcommon/common.c:2547 - #5 0x8130d6b in main (argc=13, argv=0xbffff984) at ..//unix/unix_main.c:953 - #6 0x40100cb3 in __libc_start_main (main=0x8130bc4
- Not reproducible (screen stayed black). - - * TEST: +set developer 1, same for Win32 and Linux: - Can't find gfx/misc/flare.tga - Can't find gfx/misc/sun.tga - Can't find gfx/misc/console02.tga - Can't find vm/ui.map - Can't find textures/sfx/logo512.tga - Can't find gfx/colors/black.tga - Can't find models/mapobjects/banner/banner5_2.md3 - Can't find models/mapobjects/banner/banner5_1.md3 - Can't find textures/sfx/firegorre2.tga - Can't find textures/sfx/bolts.tga - Can't find menu/art/unknownmap.tga - - * Q3TA: after nearly 6 months, a code update from id. SOS access - even. Got it to compile, link and start, but its currently broken - (menu doesn't render in full, can't get into game etc.). Need - a baseline 1.17 to diff against. Last code dump was May 16, with - bspc code updated May 19. Checking working directory of bk000520 - against CVS next (Mike's fixes never made it into id's codebase - or a post 1.17 release, neither did my fixes as released in the - point release version 1.17). - -2000-11-19 Bernd Kreimeier *** MISSIONPACK *** - - * TEST: Win32 install as tested with 1.26w. quake3.x86 (Q3A game) - Warning: cvar "r_uifullscreen" given initial values: "1" and "0" - Warning: cvar "r_inGameVideo" given initial values: "1" and "0" - ^3WARNING: sound/feedback/hit.wav is a 8 bit wav file - (on windows, sound/weapons/weapon_hover.wav is missing...) - Menu only partially displayed in TA and baseq3 play, menu itself - seems to work. Freetype? - WARNING: Com_PushEvent overflow - - * code-sos/game/game.sh: not in SOS, moved in from CVS snapshot. - - * code-sos/qcommon/common.c: conditional DEDICATED to get rid off - CL_ShutdownCGame/CL_ShutdownUI/CIN_CloseAllVideos. - Same for UI_usesUniqueCDKey: dedicated server does not - write CD key file. - TODO: check whether there is an unneeded "read CD key" - for dedicated server. - - * code-sos/null/null_client.c (CL_ShutdownAll): added dummy. - - * code-sos/unix/Makefile: server/sv_net_chan.o for dedicated server. - - * code-sos/null/null_snddma.c: fixed S_RegisterSound signature. - - * code-sos/client/snd_mix.c: snd_p, snd_linear_count, snd_out - can't be static, as used by unix/snd_mixa.s. - - * code-sos/unix/Makefile: added to the executable target: - renderer/tr_font.c - client/cl_net_chan.c - server/sv_net_chan.c - Also added a lot of jc*.c files to build, to fix unresolved - symbol errors. - TODO: is there unused jpeg-6/jd*.o code linked in now? - - * code-sos/ft2/smooth.c: includes ftgrays.c, ftsmooth.c - - * code-sos/ft2/truetype.c: ttdriver.c, ttpload.c, ttgload.c, ttobjs.c. - Also (see ftoption.h) TT_CONFIG_OPTION_BYTECODE_INTERPRETER ttinterp.c - - * code-sos/ft2/sfnt.c: includes ttload.c, ttcmap.c, sfobjs.c, - sfdriver.c. lso (see ftoption.h) - TT_CONFIG_OPTION_EMBEDDED_BITMAPS ttsbit.c - TT_CONFIG_OPTION_POSTSCRIPT_NAMES ttpost.c - - * code-sos/ft2/ftbase.c: includes ftcalc.c, ftobjs.c, ftstream.c, - ftlist.c, ftoutln.c, ftextend.c, ftnames.c. - - * code-sos/ft2/autohint.c: includes ahangles.c, ahglyph.c, ahglobal.c, - ahhint.c, ahmodule.c. - - * code-sos/unix/Makefile: added ft2/ to client objects, took out - ftraster.c/ftrend1.c (see below), added -DFT_FLAT_COMPILE. - * ft2/ftsmooth.c: -DFT_FLAT_COMPILE required. - * ft2/raster1.c: -DFT_FLAT_COMPILE required. - Note: this includes ftraster.c/ftrend1.c. - - * code-sos/qcommon/vm_x86.c: _ftol is missing, ftolPtr only defined - for Win32, but used in generic code. Workaround for now. - TODO: find good Linux ftol, or use old solution. - - * SoS checkout. chown -R a+w * recode ibmpc:lat1 */*.h */*.c - -2000-06-30 Michael Vance - - * misc: Spoke with Leonardo about qvm mess. - - * ui/ui.sh: Created to build much like the ui.bat script. - - * ui/ui.q3asm: Use linux style paths. - - * game/game.sh: Created to build much like the game.bat script. - - * game/game.q3asm: Use linux style paths. - - * cgame/cgame.sh: Created to build much like the cgame.bat script. - - * cgame/cgame.q3asm: Use linux systel paths. - - * unix/Makefile: Use the new .sh scripts to build the QVM files. - - * lcc/etc/linux.c: Build .asm files instead of .s files. - - * misc: QVMs now load properly, with minor glitches that should - hopefully be solvable. The new build scripts conflict with the - .asm files already in CVS, as the generated byte code is slightly - different in some cases. - -2000-06-29 Michael Vance - - * lcc/makefile: Tweaked to automatically include the system - compiler's header location. Added an install directory. - - * lcc/custom.mk: Added a build directory. - - * lcc/etc/linux.c: Numerous small tweaks to make compiling the VM - code a much simpler task. - - * q3asm/Makefile: Created. - - * q3asm/q3asm.c: Fixed uninitialized variable in - HashString(). Fixed off by one in argument parsing. - - * misc: Had Brian remove the Xmd.h include from glx.h so that we can - build Quake3 on XFree86 4.0 systems. - - * wine: Attempted to build with lcc.exe and q3asm.exe using wine, - also did not work. This is in contrast to MikeP's .qvms, which - seem to work. - -2000-06-28 Michael Vance - - * common/files.c: Fixed Mods menu behaviour. - - * unix/linux_qgl.c: Guarded references to fxMesa. - - * renderer/qgl.h: Guarded references to fxMesa. - - * ui/ui_demo2.c: Don't convert filename to uppercase. - -2000-05-07 Bernd Kreimeier - - * common/cmdlib.c: windowism, not guarded. Added WIN32 around "ATOM a". - - * q3map/Makefile: Linux Makefile. - - * q3map/Makefile.irix: "makefile" in original code, Irix-only Makefile. - Just fixed some redundant TAB that GNU make despises about as much as I - despise GNU Make, and changed to a relative path. - -2000-05-01 Bernd Kreimeier - - * q3radiant/: updated with Q3Radiant198b3-src.zip. - Tagged (globally) as q3radiant-198b3. - Kept the old files - 3DFXCamWnd.h - 3DFXCamWnd.cpp - MainFrm2.cpp - New files - Shaders.h - misc/ (contributed special TGA resources, don't relly belong) - Removed: - pName - Changed filenames to previous case: - UNNAMED.MAP -> unnamed.map - RES/BMP0002.BMP -> RES/bmp00002.bmp - Changed: - changelog.txt -> ChangeLog - -2000-04-28 Bernd Kreimeier - - * CVS: bk000425 modified sources. This replaces the unix/ directory - which is not yet in id's SourceSafe. Two check-ins, due to minor - changes in an attempt to nail the Voodoo3 related crashes (driver - problems, not a Q3 issue). Undid some of the QFL changes for PI - and the log bug fix - put back in (TODO). Also includes: - * Quake3/code/botlib/be_aas_sample.c: single file update from Robert. - - * CVS: id000423 code dumps (two of them). Applying Loki patches. - Tagged for the final version (all patches). - - * CVS: id000422 code dump. This did not include the 1.16n fixes - used for Linux, and was the first dump for the 1.17 security fix - release. - Note: forgot to check in the ft2/ headers themselves, but they - are not used in the current codebase anyway. Are added in next - dump. Also there is use of CVS/CVS-like $Keyword$ patterns in - some files, and between their revisions and ours we fuck this up. - Also, id ZIP files create write protected sources, have to do - chmod -R a+w Quake3/ to work and overwrite files. - - * CVS: bk000315 modified source. This version was the 1.16n release. - Note: the changes applied here are not in the subsequent code dumps - of id. If you want to compile the Linux version as released you - have to use bk-tagged versions until the patches are merged in by - Robert Duffy. - - * CVS: id000314 engine code dump, same procedure as below, tag. - Note: this version added vm/ sudirectories with assembly files - for cgame, game, ui. CVS tag id000314. - - * CVS: id000304 engine code dump. Now there is a problem, as CVS - was used in the Mac sources. Do - find . -name 'CVS' -exec rm -r {} \; - before cvs update, then tagged: - cvs -d /loki/cvsroot/ tag id000304 Quake3/ - - * CVS: checked in a source snapshot of the id00303 engine code - and the id0003029 tools code. The tool sources are not fully in - sync, and we have only partial source from earlier engine revisions. - The engine source marks where Loki took over from Dave Kirsch. - This snapshot (with all temporary and bogus files) is imported - and tagged using: - cvs -d /loki/cvsroot import Quake3 id000303 initial - - Modules: - code: the Q3 engine code, including a jpeg-6/ copy - common: code shared by tools - libs: code shared by tools, inlcuding a jpeg6/ copy - q3asm: VM bytecode assembly - q3data: misc. Q3 data conversions - q3map: BSP builder - q3radiant: Win32 editor, as is - lcc: C compiler for q3asm - - The sources have not been cleaned up, and binary files have not been - removed. The Q3Radiant code base might exhibit mixed case asmbiguities - in the future, and future source dumps might come from SourceForge - instead. - -2000-04-25 Bernd Kreimeier - - * q3code.id000425/unix/Makefile: relative path, relocatable. - Note: first code merge with id, finally :-). - -2000-04-24 Bernd Kreimeier - - * q3code.bk000422/unix/matha.s: in C(BoxOnPlaneSide) - the following line triggers assembler warning: - "missing prefix `*' in absolute indirect address, maybe misassembled!" - jmp Ljmptab(,%eax,4) - - - * q3code.bk000422/unix/Makefile (MOUNT_DIR): rember to change. - TODO: fix this bloody Makefile to be relocatable, damnit. - - * q3code.bk000422/cgame/cg_event.c: applied JCash fix again - (see EV_EVENT_BITS below). Send e-mail to verify. - - * q3code.bk000422/renderer/tr_image.c: "../jpeg-6/jpeglib.h" again. - - * q3code.bk000422/: created from the id dump of today, lacking - all but one of my changes (sigh). Swapped unix/ competely, takes - care of 90%. Submitted all changes again to Robert... - -2000-04-19 Bernd Kreimeier - - * q3code.bk000315/unix/linux_glimp.c (GLimp_EndFrame): - QGL_EnableLogging( r_logFile->value ) doesn't work? - - * q3code.bk000315/unix/linux_qgl.c: GLimp_LogNewFrame() is - obsolete. QGL_EnableLogging was out of sync with Win32 and - did not support the new framecounter decrement logic. - -2000-04-03 Bernd Kreimeier - - * q3code.bk000315/server/sv_snapshot.c: svs.nextSnapshotEntities - is a signed integer unconditionally incremented, which gets - negative and causes a segfaulting indexing an array. Added reset - to counter. Might fail if snapshot numbers are supposed to - monotonically increase. - -2000-04-02 Bernd Kreimeier - - * q3code.bk000315/client/cl_parse.c (CL_ParseServerMessage): - assert(0) on Illegible message (remember to +set in_mouse 0). - TODO: have to add a dump message function, it's unreadable. - - * botlib/be_ai_goal.c (InitLevelItemHeap): loop counter -2 - left -2 with uninitialized next, and -1 disconnected. Removed - redundant memset. There is an item alloc leak I suspect, as - max_levelitems 1024 merely delayed the overflow error. - -2000-04-01 Bernd Kreimeier - - * botlib/be_ai_goal.c (InitLevelItemHeap): still segfaults. - Not memsetting the entire item heap. As items are cleared - on return, that leaves only memory corruption? - Later: upped max_levelitems from 256 to 1024 - Later: client dies on connect: - Error: CL_ParseServerMessage: Illegible server message 255 - - -2000-03-31 Bernd Kreimeier - - * botlib/be_ai_goal.c: initializing global vars. - Segfault in AllocLevelItem () - at /home/bk/Games/Quake3/q3code/botlib/be_ai_goal.c:364 - I suspect that the initial freelevelitems setting is at - the end of the list and eventually exposed. - - * cgame/cg_event.c: according to Johmn Cash: - itemNum = (es->event & ~EV_EVENT_BITS) - EV_USE_ITEM0 - Quote: "This causes itemNum to be invalid about half the time, - preventing any client side effect tied to the item from occurring." - -2000-03-06 Bernd Kreimeier - - * qcommon/common.c: set pushEvent buffer and indices - to zero in Com_Init(). - - * q3code/qcommon/qcommon.h: made SE_NONE (and for paranoia - also NA_BOT) explicitely set to zero. - -2000-02-27 Bernd Kreimeier - - * unix/Makefile: added dmalloc in an attempt to get on - the Z_Free bug. Futile. Despite stripping dmalloc debug - token down to essentials, I get a (seemingly bogus or - unrelated): - debug-malloc library: dumping program, fatal error - Error: possibly bad .c filename pointer (err 24) - - -2000-02-26 Bernd Kreimeier - - * qcommon/common.c: various debug builts to isolate the - Z_Free bug. It reproducibly happens on some machines - with SE_PACKET, but the packets themselves look - thoroughly corrupted. - -2000-02-21 Bernd Kreimeier - - * qcommon/common.c (Com_EventLoop): possible problem - here, pointer does not get cleared. - - * unix/linux_glimp.c (InitSig): no signal handler. - * common/common.c: dump in Com_Error for debug. - -2000-02-17 Bernd Kreimeier - - * q3code: new dump from Zoid. Repeat tr_image.c fix. - - * unix/Makefile: added client/snd_adpcm.c (linkage errors). - Later: added entire JPDIR and rules, for tr_image.c. - Later: had to fix fules for game/ai_*.c files. - Later: removed ui/ui_quit.o (n/a) - Later: took out -mpentiumpro -march=pentiumpro - - * renderer/tr_image.c: windowism in #include path (see below). - #include "..\jpeg-6\jpeglib.h" - -1999-12-27 Bernd Kreimeier - - * Alpha: tried a dedicated server compile. Segfaults in - ../qcommon/files.c:1682, a paksort function doing pointer - fiddling. - - * Makefile.alpha: created. - Note: want to take the SDL/Setup autoconf ASAP. - - * unix/unix_main.c: fixed __axp__ to __alpha__, guarded - _FPU_SETCW. - - * qcommon/vm_alpha.c: dummy, created. - * qcommon/vm_null.c: dummy, created. - -1999-12-04 Bernd Kreimeier - - * renderer/tr_image.c: windowism in #include path. - #include "..\jpeg-6\jpeglib.h" - - * Revision 1.11: from Zoid by e-mail. - Note: threw away my playground copy, starting with the - ZIP file. Zoid's using CVS now, but we can't remote - access it. Thus did the - "find . -name 'CVS' -exec rm -rf {} \;" - and then track it as 3rd party source by - - - * ChangeLog: created. Now starting to track Q3A source. - ---------- q3code log --------------------------------------------- Modified: trunk/code/unix/linux_common.c =================================================================== --- trunk/code/unix/linux_common.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/linux_common.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/linux_glimp.c =================================================================== --- trunk/code/unix/linux_glimp.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/linux_glimp.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/linux_joystick.c =================================================================== --- trunk/code/unix/linux_joystick.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/linux_joystick.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/linux_local.h =================================================================== --- trunk/code/unix/linux_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/linux_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/linux_qgl.c =================================================================== --- trunk/code/unix/linux_qgl.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/linux_qgl.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/linux_signals.c =================================================================== --- trunk/code/unix/linux_signals.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/linux_signals.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/linux_snd.c =================================================================== --- trunk/code/unix/linux_snd.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/linux_snd.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/qasm.h =================================================================== --- trunk/code/unix/qasm.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/qasm.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/sdl_glimp.c =================================================================== --- trunk/code/unix/sdl_glimp.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/sdl_glimp.c 2005-10-29 01:53:09 UTC (rev 196) @@ -39,7 +39,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/sdl_snd.c =================================================================== --- trunk/code/unix/sdl_snd.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/sdl_snd.c 2005-10-29 01:53:09 UTC (rev 196) @@ -43,7 +43,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/unix_glw.h =================================================================== --- trunk/code/unix/unix_glw.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/unix_glw.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/unix_main.c =================================================================== --- trunk/code/unix/unix_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/unix_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/unix_net.c =================================================================== --- trunk/code/unix/unix_net.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/unix_net.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/unix/unix_shared.c =================================================================== --- trunk/code/unix/unix_shared.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/unix/unix_shared.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/glw_win.h =================================================================== --- trunk/code/win32/glw_win.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/glw_win.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/resource.h =================================================================== --- trunk/code/win32/resource.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/resource.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_gamma.c =================================================================== --- trunk/code/win32/win_gamma.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_gamma.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_glimp.c =================================================================== --- trunk/code/win32/win_glimp.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_glimp.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_input.c =================================================================== --- trunk/code/win32/win_input.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_input.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_local.h =================================================================== --- trunk/code/win32/win_local.h 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_local.h 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_main.c =================================================================== --- trunk/code/win32/win_main.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_main.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_net.c =================================================================== --- trunk/code/win32/win_net.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_net.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_qgl.c =================================================================== --- trunk/code/win32/win_qgl.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_qgl.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_shared.c =================================================================== --- trunk/code/win32/win_shared.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_shared.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_snd.c =================================================================== --- trunk/code/win32/win_snd.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_snd.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_syscon.c =================================================================== --- trunk/code/win32/win_syscon.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_syscon.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Modified: trunk/code/win32/win_wndproc.c =================================================================== --- trunk/code/win32/win_wndproc.c 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/code/win32/win_wndproc.c 2005-10-29 01:53:09 UTC (rev 196) @@ -15,7 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Foobar; if not, write to the Free Software +along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ Deleted: trunk/todo =================================================================== --- trunk/todo 2005-10-29 01:02:12 UTC (rev 195) +++ trunk/todo 2005-10-29 01:53:09 UTC (rev 196) @@ -1,6 +0,0 @@ -OpenAL patch - - -xplat: -Amiga OS -PSP From DONOTREPLY at icculus.org Sat Oct 29 13:41:17 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 29 Oct 2005 13:41:17 -0400 Subject: r197 - trunk/code/unix Message-ID: <20051029174117.25189.qmail@icculus.org> Author: ludwig Date: 2005-10-29 13:41:17 -0400 (Sat, 29 Oct 2005) New Revision: 197 Modified: trunk/code/unix/Makefile Log: add HAVE_VM_COMPILED variable so one can override it in Makefile.local Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-29 01:53:09 UTC (rev 196) +++ trunk/code/unix/Makefile 2005-10-29 17:41:17 UTC (rev 197) @@ -123,25 +123,27 @@ OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -falign-loops=2 \ -falign-jumps=2 -falign-functions=2 -fstrength-reduce \ -fno-strict-aliasing - # comment out below line to enable the # experimental x86_64 jit compiler! you need as - BASE_CFLAGS += -DNO_VM_COMPILED + #HAVE_VM_COMPILED = true else ifeq ($(ARCH),i386) OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math \ -falign-loops=2 -falign-jumps=2 -falign-functions=2 \ -fno-strict-aliasing -fstrength-reduce + HAVE_VM_COMPILED=true else ifeq ($(ARCH),ppc) - ifeq ($(VM_PPC),) - BASE_CFLAGS += -DNO_VM_COMPILED + ifneq ($(VM_PPC),) + HAVE_VM_COMPILED=true endif - else - BASE_CFLAGS += -DNO_VM_COMPILED endif endif endif + ifneq ($(HAVE_VM_COMPILED),true) + BASE_CFLAGS += -DNO_VM_COMPILED + endif + DEBUG_CFLAGS = $(BASE_CFLAGS) -g -O0 RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE) From DONOTREPLY at icculus.org Sat Oct 29 13:42:12 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 29 Oct 2005 13:42:12 -0400 Subject: r198 - trunk/code/qcommon Message-ID: <20051029174212.25347.qmail@icculus.org> Author: ludwig Date: 2005-10-29 13:42:12 -0400 (Sat, 29 Oct 2005) New Revision: 198 Modified: trunk/code/qcommon/vm_x86_64.c Log: use memcpy for OP_BLOCK_COPY Modified: trunk/code/qcommon/vm_x86_64.c =================================================================== --- trunk/code/qcommon/vm_x86_64.c 2005-10-29 17:41:17 UTC (rev 197) +++ trunk/code/qcommon/vm_x86_64.c 2005-10-29 17:42:12 UTC (rev 198) @@ -59,8 +59,14 @@ args[4]); switch( args[0] ) { + case 0: case 1: - fputs((VMA(1)?VMA(1):"(NULL)\n"), stderr); + { + char * s = VMA(1)?VMA(1):"(NULL)\n"; + fputs(s, stderr); + if(s[strlen(s)-1] != '\n') + putc('\n', stderr); + } return 0; case 999: { @@ -166,7 +172,7 @@ vm_t *savedVM; long ret = 0x77; long args[11]; - int iargs[11]; +// int iargs[11]; int i; // Dfprintf(stderr, "callAsmCall(%ld, %ld)\n", callProgramStack, callSyscallNum); @@ -178,10 +184,10 @@ currentVM->programStack = callProgramStack - 4; args[0] = callSyscallNum; - iargs[0] = callSyscallNum; +// iargs[0] = callSyscallNum; for(i = 0; i < 10; ++i) { - iargs[i+1] = *(int *)((byte *)currentVM->dataBase + callProgramStack + 8 + 4*i); +// iargs[i+1] = *(int *)((byte *)currentVM->dataBase + callProgramStack + 8 + 4*i); args[i+1] = *(int *)((byte *)currentVM->dataBase + callProgramStack + 8 + 4*i); } ret = currentVM->systemCall(args); @@ -433,7 +439,7 @@ buf = FS_BuildOSPath(homedir->string, NULL, out); strcpy(rout, buf); - Com_Printf("running assembler\n"); + Com_Printf("running assembler < %s > %s\n", rin, rout); pid = fork(); if(pid == -1) Com_Error(ERR_FATAL, "can't fork\n"); @@ -496,6 +502,24 @@ return -1; } +static void block_copy_vm(unsigned dest, unsigned src, unsigned count) +{ + unsigned dataMask = currentVM->dataMask; + + if ((dest & dataMask) != dest + || (src & dataMask) != src + || ((dest+count) & dataMask) != dest + count + || ((src+count) & dataMask) != src + count) + { + Com_Error(ERR_DROP, "OP_BLOCK_COPY out of range!\n"); + } + +// Com_Printf("OP_BLOCK_COPY %s %x %x %d\n", currentVM->name, dest, src, count); +// __asm__ __volatile__ ("int3"); + + memcpy(currentVM->dataBase+dest, currentVM->dataBase+src, count); +} + /* ================= VM_Compile @@ -510,8 +534,8 @@ unsigned char barg = 0; void* entryPoint; - char fn_s[MAX_QPATH]; // output file for assembler code - char fn_o[MAX_QPATH]; // file written by as + char fn_s[2*MAX_QPATH]; // output file for assembler code + char fn_o[2*MAX_QPATH]; // file written by as #ifdef DEBUG_VM char fn_d[MAX_QPATH]; // disassembled #endif @@ -627,7 +651,7 @@ emit("decl %%eax"); // first argument already in rdi emit("movq %%rax, %%rsi"); // second argument in rsi - emit("movq $%ld, %%rax", (unsigned long)callAsmCall); + emit("movq $%lu, %%rax", (unsigned long)callAsmCall); emit("callq *%%rax"); emit("pop %%r10"); emit("pop %%r9"); @@ -774,53 +798,24 @@ emit("movl %%eax, 0(%%r8,%%rbx, 1)"); // store in args space break; case OP_BLOCK_COPY: - if(iarg % 4) Com_Error(ERR_DROP, - "argument to OP_BLOCK_COPY not multiple of 4\n"); emit("subq $8, %%rsi"); - emit("movl 8(%%rsi), %%ebx"); // get pointer from stack + emit("push %%rsi"); + emit("push %%rdi"); + emit("push %%r8"); + emit("push %%r9"); + emit("push %%r10"); + emit("movl 4(%%rsi), %%edi"); // 1st argument dest + emit("movl 8(%%rsi), %%esi"); // 2nd argument src + emit("movl $%d, %%edx", iarg); // 3rd argument count + emit("movq $%lu, %%rax", (unsigned long)block_copy_vm); + emit("callq *%%rax"); + emit("pop %%r10"); + emit("pop %%r9"); + emit("pop %%r8"); + emit("pop %%rdi"); + emit("pop %%rsi"); - emit("movl %%ebx, %%ecx"); - RANGECHECK(ecx); - emit("cmp %%ebx, %%ecx"); - emit("jne broken%d", instruction); - - emit("movl %%ecx, %%edx"); - emit("addl $%d, %%edx", iarg); - emit("addl $%d, %%ecx", iarg); - RANGECHECK(edx); - emit("cmp %%ecx, %%edx"); - emit("jne broken%d", instruction); - - emit("movl 4(%%rsi), %%eax"); // get pointer from stack - - emit("movl %%eax, %%ecx"); - RANGECHECK(ecx); - emit("cmp %%eax, %%ecx"); - emit("jne broken%d", instruction); - - emit("movl %%ecx, %%edx"); - emit("addl $%d, %%edx", iarg); - emit("addl $%d, %%ecx", iarg); - RANGECHECK(edx); - emit("cmp %%ecx, %%edx"); - emit("jne broken%d", instruction); - - emit("addq %%r8, %%rax"); // calc real address - emit("addq %%r8, %%rbx"); // calc real address - emit("movl $%d, %%ecx", iarg); - emit("shrl $2, %%ecx"); - emit("block_copy_loop_%d:", instruction); - emit("decl %%ecx"); - emit("movl 0(%%rbx, %%rcx, 4), %%edx"); - emit("movl %%edx, 0(%%rax, %%rcx, 4)"); - emit("orl %%ecx, %%ecx"); - emit("jnz block_copy_loop_%d", instruction); - emit("jmp i_%08x", instruction+1); - - emit("broken%d:", instruction); - emit("int3"); - break; case OP_SEX8: emit("movw 0(%%rsi), %%rax"); @@ -1010,6 +1005,14 @@ #endif Com_Printf( "VM file %s compiled to %i bytes of code (0x%lx - 0x%lx)\n", vm->name, vm->codeLength, vm->codeBase, vm->codeBase+vm->codeLength ); + +#if 0 + if(!com_developer->integer) + { + unlink(fn_o); + unlink(fn_s); + } +#endif } /* @@ -1112,7 +1115,7 @@ int i1, i2, vmres; int i; float f1, f2, fres, fvmres; - int numitests = 26; + int numitests = 32; int numftests = 11; int ret = 0; int testno; @@ -1209,14 +1212,10 @@ int main(int argc, char* argv[]) { - size_t size; - vmHeader_t *header; vm_t* vm[3]; - unsigned dataLength; int i; long args[11] = {0}; int ret = 0xDEADBEEF; - char* mem; char* file = argv[1]; @@ -1229,8 +1228,6 @@ *strchr(module, '.') = '\0'; vm[0] = VM_Create( module, printsyscall, interpret ); - vm[1] = VM_Create( module, printsyscall, interpret ); - vm[2] = VM_Create( module, printsyscall, interpret ); VM_VmInfo_f(); @@ -1242,16 +1239,10 @@ } ret = VM_Call(vm[0], args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); - ret += VM_Call(vm[1], args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); - ret += VM_Call(vm[2], args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); } else { ret = testops(vm[0]); - ret += testops(vm[1]); - ret += testops(vm[2]); - ret += testops(vm[1]); - ret += testops(vm[0]); } From DONOTREPLY at icculus.org Sat Oct 29 18:05:21 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 29 Oct 2005 18:05:21 -0400 Subject: r199 - in trunk/code: qcommon renderer tools/asm tools/lcc tools/lcc/etc unix Message-ID: <20051029220521.13966.qmail@icculus.org> Author: tma Date: 2005-10-29 18:05:20 -0400 (Sat, 29 Oct 2005) New Revision: 199 Modified: trunk/code/qcommon/common.c trunk/code/qcommon/q_shared.h trunk/code/renderer/qgl.h trunk/code/tools/asm/Makefile trunk/code/tools/lcc/etc/gcc-solaris.c trunk/code/tools/lcc/etc/lcc.c trunk/code/tools/lcc/makefile trunk/code/unix/Makefile trunk/code/unix/linux_glimp.c trunk/code/unix/linux_joystick.c trunk/code/unix/linux_snd.c trunk/code/unix/sdl_glimp.c trunk/code/unix/sdl_snd.c trunk/code/unix/unix_glw.h trunk/code/unix/unix_main.c trunk/code/unix/unix_net.c trunk/code/unix/unix_shared.c Log: * Beginnings of Solaris support from Vincent S. Cojot * Note this patch also splits USE_SDL into USE_SDL_VIDEO and USE_SDL_AUDIO Modified: trunk/code/qcommon/common.c =================================================================== --- trunk/code/qcommon/common.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/qcommon/common.c 2005-10-29 22:05:20 UTC (rev 199) @@ -24,7 +24,7 @@ #include "q_shared.h" #include "qcommon.h" #include -#if defined __linux__ || defined MACOS_X || defined __FreeBSD__ +#if defined __linux__ || defined MACOS_X || defined __FreeBSD__ || defined __sun #include #else #include Modified: trunk/code/qcommon/q_shared.h =================================================================== --- trunk/code/qcommon/q_shared.h 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/qcommon/q_shared.h 2005-10-29 22:05:20 UTC (rev 199) @@ -105,7 +105,7 @@ // this is the define for determining if we have an asm version of a C function -#if (defined _M_IX86 || defined __i386__) && !defined __sun__ && !defined __LCC__ +#if (defined _M_IX86 || defined __i386__) && !defined __sun && !defined __LCC__ #define id386 1 #else #define id386 0 @@ -355,6 +355,52 @@ #endif +//======================= SUNOS DEFINES ================================= + +#ifdef __sun + +#include + +// bk001205 - from Makefile +#define stricmp strcasecmp + +#define MAC_STATIC +#define ID_INLINE inline + +#ifdef __i386__ +#define CPUSTRING "Solaris-i386" +#elif defined __sparc +#define CPUSTRING "Solaris-sparc" +#endif + +#define PATH_SEP '/' + +// bk001205 - try +#ifdef Q3_STATIC +#define GAME_HARD_LINKED +#define CGAME_HARD_LINKED +#define UI_HARD_LINKED +#define BOTLIB_HARD_LINKED +#endif + +#if defined(_LITTLE_ENDIAN) +inline static short BigShort( short l) { return ShortSwap(l); } +#define LittleShort +inline static int BigLong(int l) { return LongSwap(l); } +#define LittleLong +inline static float BigFloat(const float l) { return FloatSwap(&l); } +#define LittleFloat +#else /* Must be _BIG_ENDIAN */ +#define BigShort +inline static short LittleShort(short l) { return ShortSwap(l); } +#define BigLong +inline static int LittleLong (int l) { return LongSwap(l); } +#define BigFloat +inline static float LittleFloat (const float l) { return FloatSwap(&l); } +#endif + +#endif + //============================================================= typedef unsigned char byte; Modified: trunk/code/renderer/qgl.h =================================================================== --- trunk/code/renderer/qgl.h 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/renderer/qgl.h 2005-10-29 22:05:20 UTC (rev 199) @@ -57,6 +57,10 @@ #include #endif +#elif defined( __sun ) +#include +#include + #else #include @@ -76,6 +80,7 @@ /* ** multitexture extension definitions */ +#if !defined(__sun) #define GL_ACTIVE_TEXTURE_ARB 0x84E0 #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 #define GL_MAX_ACTIVE_TEXTURES_ARB 0x84E2 @@ -84,9 +89,12 @@ #define GL_TEXTURE1_ARB 0x84C1 #define GL_TEXTURE2_ARB 0x84C2 #define GL_TEXTURE3_ARB 0x84C3 +#else +#define GL_MAX_ACTIVE_TEXTURES_ARB 0x84E2 +#endif /* defined(__sun) */ // NOTE: some Linux platforms would need those prototypes -#if defined(MACOS_X) +#if defined(MACOS_X) || defined(__sun) typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); @@ -152,7 +160,7 @@ //=========================================================================== // non-windows systems will just redefine qgl* to gl* -#if !defined( _WIN32 ) && !defined(MACOS_X) && !defined( __linux__ ) && !defined( __FreeBSD__ ) // rb010123 +#if !defined( _WIN32 ) && !defined(MACOS_X) && !defined( __linux__ ) && !defined( __FreeBSD__ ) && !defined(__sun) // rb010123 #include "qgl_linked.h" @@ -539,7 +547,7 @@ #endif // _WIN32 -#if ( (defined __linux__ ) || (defined __FreeBSD__ ) ) // rb010123 +#if ( (defined __linux__ ) || (defined __FreeBSD__ ) || (defined __sun) ) // rb010123 //FX Mesa Functions // bk001129 - from cvs1.17 (mkv) @@ -560,7 +568,7 @@ extern void (*qglXCopyContext)( Display *dpy, GLXContext src, GLXContext dst, GLuint mask ); extern void (*qglXSwapBuffers)( Display *dpy, GLXDrawable drawable ); -#endif // __linux__ || __FreeBSD__ // rb010123 +#endif // __linux__ || __FreeBSD__ || __sun // rb010123 #endif // _WIN32 && __linux__ Modified: trunk/code/tools/asm/Makefile =================================================================== --- trunk/code/tools/asm/Makefile 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/tools/asm/Makefile 2005-10-29 22:05:20 UTC (rev 199) @@ -7,6 +7,12 @@ BINEXT= endif +ifeq ($(PLATFORM),SunOS) + INSTALL=ginstall +else + INSTALL=install +endif + CC=gcc Q3ASM_CFLAGS=-O2 -Wall -Werror -fno-strict-aliasing @@ -19,7 +25,7 @@ rm -f q3asm *~ *.o install: default - install -s -m 0755 q3asm$(BINEXT) ../ + $(INSTALL) -s -m 0755 q3asm$(BINEXT) ../ uninstall: rm -f ../q3asm$(BINEXT) Modified: trunk/code/tools/lcc/etc/gcc-solaris.c =================================================================== --- trunk/code/tools/lcc/etc/gcc-solaris.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/tools/lcc/etc/gcc-solaris.c 2005-10-29 22:05:20 UTC (rev 199) @@ -1,48 +1,55 @@ -/* SPARCs running Solaris 2.5.1 w/GCC tools - at CS Dept., Princeton University */ +/* Solaris 10 sparc */ #include +/* +TTimo - 10-18-2001 +our binaries are named q3lcc q3rcc and q3cpp +removed hardcoded paths +removed __linux__ preprocessor define (confuses the preprocessor, we are doing bytecode!) +*/ + #ifndef LCCDIR -#define LCCDIR "/usr/local/lib/lcc/" +#define LCCDIR "" #endif #ifndef GCCDIR -#define GCCDIR "/usr/local/gnu/bin/" +#define GCCDIR "/usr/sfw/bin/" #endif #ifndef GCCLIB -#define GCCLIB "/usr/local/gnu/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/" +#define GCCLIB "/usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/" #endif +#define BINEXT "" -char *suffixes[] = { ".c", ".i", ".s", ".o", ".out", 0 }; +char *suffixes[] = { ".c", ".i", ".asm", ".s", ".o", ".out", 0 }; char inputs[256] = ""; -char *cpp[] = { LCCDIR "cpp", - "-D__STDC__=1", "-Dsparc", "-D__sparc__", "-Dsun", "-D__sun__", "-Dunix", +char *cpp[] = { LCCDIR "q3cpp" BINEXT, + "-D__STDC__=1", "-Dsparc", "-D__sparc__", "-Dsun", "-D__sun__", "-Dunix", "-D__sun", "$1", "$2", "$3", 0 }; -char *include[] = { "-I" LCCDIR "include", "-I/usr/local/include", - "-I" GCCLIB "include", "-I/usr/include", 0 }; -char *com[] = { LCCDIR "rcc", "-target=sparc/solaris", - "$1", "$2", "$3", 0 }; -char *as[] = { GCCDIR "as", "-f", "-o", "$3", "$1", "$2", 0 }; -char *ld[] = { GCCDIR "ld", "-o", "$3", "$1", - GCCLIB "crti.o", GCCLIB "crt1.o", - GCCLIB "crtbegin.o", "$2", "", "", "-L" LCCDIR, "-llcc", - "-L" GCCLIB, "-lgcc", "-lm", "-lc", "", - GCCLIB "crtend.o", GCCLIB "crtn.o", 0 }; +char *include[] = { "-I" LCCDIR "include", "-I" LCCDIR "gcc/include", + "-I" SYSTEM "include", "-I/usr/include", 0 }; +/* char *com[] = { LCCDIR "q3rcc", "-target=bytecode", "$1", "$2", "$3", 0 }; */ +char *com[] = { LCCDIR "q3rcc", "-target=sparc/solaris", "$1", "$2", "$3", 0 }; +char *as[] = { "/usr/ccs/bin/as", "-o", "$3", "$1", "$2", 0 }; +char *ld[] = { "/usr/ccs/bin/ld", "-o", "$3", "$1", + GCCLIB "crti.o", GCCLIB "crt1.o", + GCCLIB "crtbegin.o", "$2", "", "", "-L" LCCDIR, "-llcc", + "-L" GCCLIB, "-lgcc", "-lm", "-lc", "", + GCCLIB "crtend.o", GCCLIB "crtn.o", 0 }; extern char *concat(char *, char *); int option(char *arg) { if (strncmp(arg, "-lccdir=", 8) == 0) { - cpp[0] = concat(&arg[8], "/cpp"); + cpp[0] = concat(&arg[8], "/gcc/cpp"); include[0] = concat("-I", concat(&arg[8], "/include")); ld[10] = concat("-L", &arg[8]); com[0] = concat(&arg[8], "/rcc"); + } else if (strcmp(arg, "-p") == 0 || strcmp(arg, "-pg") == 0) { + ld[8] = "-lgmon"; } else if (strcmp(arg, "-g") == 0) ; - else if (strcmp(arg, "-pg") == 0) { - ld[8] = GCCLIB "gmon.o"; - } else if (strcmp(arg, "-b") == 0) + else if (strcmp(arg, "-b") == 0) ; else return 0; Modified: trunk/code/tools/lcc/etc/lcc.c =================================================================== --- trunk/code/tools/lcc/etc/lcc.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/tools/lcc/etc/lcc.c 2005-10-29 22:05:20 UTC (rev 199) @@ -48,7 +48,9 @@ extern int suffix(char *, char *[], int); extern char *tempname(char *); +#ifndef __sun extern int getpid(void); +#endif extern char *cpp[], *include[], *com[], *as[],*ld[], inputs[], *suffixes[]; extern int option(char *); @@ -95,15 +97,14 @@ if( p ) { *p = '\0'; +#ifdef _WIN32 strncpy( path, "PATH=", 4096 ); - strncat( path, getenv( "PATH" ), 4096 ); -#ifdef _WIN32 strncat( path, ";", 4096 ); strncat( path, basepath, 4096 ); _putenv( path ); #else - strncat( path, ":", 4096 ); - strncat( path, basepath, 4096 ); +/* Ugly workaround against execvp problem/limitation on Solaris 10 */ + snprintf( path, 4096, "PATH=%s:%s", basepath, getenv( "PATH" ) ); putenv( path ); #endif } @@ -252,7 +253,9 @@ #include #else #define _P_WAIT 0 +#ifndef __sun extern int fork(void); +#endif extern int wait(int *); static int _spawnvp(int mode, const char *cmdname, char *argv[]) { Modified: trunk/code/tools/lcc/makefile =================================================================== --- trunk/code/tools/lcc/makefile 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/tools/lcc/makefile 2005-10-29 22:05:20 UTC (rev 199) @@ -25,6 +25,12 @@ TSTDIR=$(BUILDDIR)/$(TARGET)/tst BD=$(BUILDDIR)/ T=$(TSTDIR)/ +ifeq ($(PLATFORM),SunOS) + INSTALL=ginstall +HOSTFILE=etc/gcc-solaris.c +else + INSTALL=install +endif # $Id: makefile 145 2001-10-17 21:53:10Z timo $ @@ -237,9 +243,9 @@ $(RM) $(T)yacc$(E) $(T)yacc.s $(T)yacc.2 $(T)yacc.1 install:: all - install -s -m 0755 $(BD)q3lcc$(E) ../ - install -s -m 0755 $(BD)q3cpp$(E) ../ - install -s -m 0755 $(BD)q3rcc$(E) ../ + $(INSTALL) -s -m 0755 $(BD)q3lcc$(E) ../ + $(INSTALL) -s -m 0755 $(BD)q3cpp$(E) ../ + $(INSTALL) -s -m 0755 $(BD)q3rcc$(E) ../ uninstall:: -$(RM) ../q3lcc$(E) Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/Makefile 2005-10-29 22:05:20 UTC (rev 199) @@ -49,6 +49,10 @@ DXSDK_DIR=C:/DXSDK endif +ifndef USE_SDL +USE_SDL=true +endif + ############################################################################# BD=debug$(ARCH)$(GLIBC) @@ -78,12 +82,8 @@ ############################################################################# ## Defaults -USE_SDL=true VM_PPC= -# bk010215 - TODO - add all defaults / kill Ryan - - LIB=lib ifeq ($(PLATFORM),linux) @@ -110,7 +110,7 @@ BASE_CFLAGS = -pipe -Wall -Wimplicit -Wstrict-prototypes ifeq ($(strip $(USE_SDL)),true) - BASE_CFLAGS += -DUSE_SDL=1 $(shell sdl-config --cflags) + BASE_CFLAGS += -DUSE_SDL_VIDEO=1 -DUSE_SDL_SOUND=1 $(shell sdl-config --cflags) GL_CFLAGS = else GL_CFLAGS = -I/usr/X11R6/include @@ -352,6 +352,117 @@ else # ifeq IRIX ############################################################################# +# SETUP AND BUILD -- SunOS +############################################################################# + +ifeq ($(PLATFORM),SunOS) + + GLIBC= #libc is irrelevant + CC=gcc + CXX=g++ + COPYDIR="/usr/local/share/games/quake3" + + ifneq (,$(findstring i86pc,$(shell uname -m))) + ARCH=i386 + else #default to sparc + ARCH=sparc + endif + + ifneq ($(ARCH),i386) + ifneq ($(ARCH),sparc) + $(error arch $(ARCH) is currently not supported) + endif + endif + + + BASE_CFLAGS = -pipe -Wall -Wimplicit -Wstrict-prototypes + + ifeq ($(strip $(USE_SDL)),true) + BASE_CFLAGS += -DUSE_SDL_SOUND=1 $(shell sdl-config --cflags) + GL_CFLAGS = + else + GL_CFLAGS = -I/usr/openwin/include + endif + + OPTIMIZE = -O3 -ffast-math -funroll-loops -fomit-frame-pointer \ + -fno-strict-aliasing + BASE_CFLAGS += -DNO_VM_COMPILED + + ifeq ($(ARCH),sparc) + OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -falign-loops=2 \ + -falign-jumps=2 -falign-functions=2 -fstrength-reduce \ + -fno-strict-aliasing + else + ifeq ($(ARCH),i386) + OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math \ + -falign-loops=2 -falign-jumps=2 -falign-functions=2 \ + -fno-strict-aliasing -fstrength-reduce + endif + endif + + DEBUG_CFLAGS = $(BASE_CFLAGS) -g -O0 + + RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE) + + SHLIBEXT=so + SHLIBCFLAGS=-fPIC + SHLIBLDFLAGS=-shared $(LDFLAGS) + + THREAD_LDFLAGS=-lpthread + LDFLAGS=-lsocket -lnsl -ldl -lm + + ifeq ($(strip $(USE_SDL)),true) + GLLDFLAGS=$(shell sdl-config --libs) -lGLU -lX11 -lXext + else + GLLDFLAGS=-L/usr/openwin/$(LIB) -lGLU -lX11 -lXext + endif + + ifeq ($(ARCH),i386) + # linux32 make ... + BASE_CFLAGS += -m32 + LDFLAGS+=-m32 + endif + + ifeq ($(ARCH),sparc) + TARGETS=\ + $(B)/$(PLATFORM)quake3 \ + $(B)/$(PLATFORM)q3ded \ + $(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) \ + $(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) \ + $(B)/baseq3/ui$(ARCH).$(SHLIBEXT) \ + $(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) \ + $(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) \ + $(B)/missionpack/ui$(ARCH).$(SHLIBEXT) \ + $(B)/baseq3/vm/cgame.qvm \ + $(B)/baseq3/vm/qagame.qvm \ + $(B)/baseq3/vm/ui.qvm \ + $(B)/missionpack/vm/qagame.qvm \ + $(B)/missionpack/vm/cgame.qvm \ + $(B)/missionpack/vm/ui.qvm +# $(B)/$(PLATFORM)quake3-smp + else + TARGETS=\ + $(B)/$(PLATFORM)quake3 \ + $(B)/$(PLATFORM)q3ded \ + $(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) \ + $(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) \ + $(B)/baseq3/ui$(ARCH).$(SHLIBEXT) \ + $(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) \ + $(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) \ + $(B)/missionpack/ui$(ARCH).$(SHLIBEXT) \ + $(B)/baseq3/vm/cgame.qvm \ + $(B)/baseq3/vm/qagame.qvm \ + $(B)/baseq3/vm/ui.qvm \ + $(B)/missionpack/vm/qagame.qvm \ + $(B)/missionpack/vm/cgame.qvm \ + $(B)/missionpack/vm/ui.qvm +# $(B)/$(PLATFORM)quake3-smp + + endif + +else # ifeq SunOS + +############################################################################# # SETUP AND BUILD -- GENERIC ############################################################################# @@ -371,6 +482,7 @@ endif #mingw32 endif #FreeBSD endif #IRIX +endif #SunOS ifdef DEFAULT_BASEDIR BASE_CFLAGS += -DDEFAULT_BASEDIR=\\\"$(DEFAULT_BASEDIR)\\\" @@ -699,8 +811,41 @@ Q3POBJ += $(B)/client/ftola.o $(B)/client/snapvectora.o Q3POBJ_SMP += $(B)/client/ftola.o $(B)/client/snapvectora.o endif +endif #Linux-axp +else +ifeq ($(PLATFORM),SunOS) + Q3POBJ=\ + $(B)/client/unix_main.o \ + $(B)/client/unix_net.o \ + $(B)/client/unix_shared.o \ + $(B)/client/linux_signals.o \ + $(B)/client/linux_common.o \ + $(B)/client/linux_qgl.o \ + $(B)/client/linux_glimp.o \ + $(B)/client/linux_snd.o \ + $(B)/client/sdl_snd.o \ + $(B)/client/snd_mixa.o \ + $(B)/client/matha.o \ -endif #Linux-axp + Q3POBJ_SMP=\ + $(B)/client/unix_main.o \ + $(B)/client/unix_net.o \ + $(B)/client/unix_shared.o \ + $(B)/client/linux_signals.o \ + $(B)/client/linux_common.o \ + $(B)/client/linux_qgl.o \ + $(B)/client/linux_glimp_smp.o \ + $(B)/client/linux_snd.o \ + $(B)/client/sdl_snd.o \ + $(B)/client/snd_mixa.o \ + $(B)/client/matha.o + + ifeq ($(ARCH),i386) + Q3POBJ += $(B)/client/ftola.o $(B)/client/snapvectora.o + Q3POBJ_SMP += $(B)/client/ftola.o $(B)/client/snapvectora.o + endif + +endif #SunOS endif #Linux endif #mingw32 endif #IRIX Modified: trunk/code/unix/linux_glimp.c =================================================================== --- trunk/code/unix/linux_glimp.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/linux_glimp.c 2005-10-29 22:05:20 UTC (rev 199) @@ -34,7 +34,7 @@ ** */ -#if !USE_SDL +#if !USE_SDL_VIDEO #include #include @@ -68,9 +68,19 @@ #include #include +#if !defined(__sun) #include #include +#endif +#if defined(__sun) +#include +#endif + +#ifdef _XF86DGA_H_ +#define HAVE_XF86DGA +#endif + #define WINDOW_CLASS_NAME "Quake III: Arena" typedef enum @@ -121,14 +131,18 @@ cvar_t *r_previousglDriver; qboolean vidmode_ext = qfalse; +#ifdef HAVE_XF86DGA static int vidmode_MajorVersion = 0, vidmode_MinorVersion = 0; // major and minor of XF86VidExtensions // gamma value of the X display before we start playing with it static XF86VidModeGamma vidmode_InitialGamma; +#endif /* HAVE_XF86DGA */ static int win_x, win_y; +#ifdef HAVE_XF86DGA static XF86VidModeModeInfo **vidmodes; +#endif /* HAVE_XF86DGA */ //static int default_dotclock_vidmode; // bk001204 - unused static int num_vidmodes; static qboolean vidmode_active = qfalse; @@ -398,6 +412,7 @@ if (in_dgamouse->value) { +#ifdef HAVE_XF86DGA int MajorVersion, MinorVersion; if (!XF86DGAQueryVersion(dpy, &MajorVersion, &MinorVersion)) @@ -410,6 +425,7 @@ XF86DGADirectVideo(dpy, DefaultScreen(dpy), XF86DGADirectMouse); XWarpPointer(dpy, None, win, 0, 0, 0, 0, 0, 0); } +#endif /* HAVE_XF86DGA */ } else { mwx = glConfig.vidWidth / 2; @@ -431,7 +447,9 @@ { if (com_developer->value) ri.Printf( PRINT_ALL, "DGA Mouse - Disabling DGA DirectVideo\n" ); +#ifdef HAVE_XF86DGA XF86DGADirectVideo(dpy, DefaultScreen(dpy), 0); +#endif /* HAVE_XF86DGA */ } XChangePointerControl(dpy, qtrue, qtrue, mouse_accel_numerator, @@ -741,6 +759,7 @@ { // NOTE TTimo we get the gamma value from cvar, because we can't work with the s_gammatable // the API wasn't changed to avoid breaking other OSes +#ifdef HAVE_XF86DGA float g = Cvar_Get("r_gamma", "1.0", 0)->value; XF86VidModeGamma gamma; assert(glConfig.deviceSupportsGamma); @@ -748,6 +767,7 @@ gamma.green = g; gamma.blue = g; XF86VidModeSetGamma(dpy, scrnum, &gamma); +#endif /* HAVE_XF86DGA */ } /* @@ -773,12 +793,14 @@ qglXDestroyContext(dpy, ctx); if (win) XDestroyWindow(dpy, win); +#ifdef HAVE_XF86DGA if (vidmode_active) XF86VidModeSwitchToMode(dpy, scrnum, vidmodes[0]); if (glConfig.deviceSupportsGamma) { XF86VidModeSetGamma(dpy, scrnum, &vidmode_InitialGamma); } +#endif /* HAVE_XF86DGA */ // NOTE TTimo opening/closing the display should be necessary only once per run // but it seems QGL_Shutdown gets called in a lot of occasion // in some cases, this XCloseDisplay is known to raise some X errors @@ -909,18 +931,23 @@ actualHeight = glConfig.vidHeight; // Get video mode list +#ifdef HAVE_XF86DGA if (!XF86VidModeQueryVersion(dpy, &vidmode_MajorVersion, &vidmode_MinorVersion)) { +#endif /* HAVE_XF86DGA */ vidmode_ext = qfalse; +#ifdef HAVE_XF86DGA } else { ri.Printf(PRINT_ALL, "Using XFree86-VidModeExtension Version %d.%d\n", vidmode_MajorVersion, vidmode_MinorVersion); vidmode_ext = qtrue; } +#endif /* HAVE_XF86DGA */ // Check for DGA dga_MajorVersion = 0, dga_MinorVersion = 0; +#ifdef HAVE_XF86DGA if (in_dgamouse->value) { if (!XF86DGAQueryVersion(dpy, &dga_MajorVersion, &dga_MinorVersion)) @@ -934,7 +961,9 @@ dga_MajorVersion, dga_MinorVersion); } } +#endif /* HAVE_XF86DGA */ +#ifdef HAVE_XF86DGA if (vidmode_ext) { int best_fit, best_dist, dist, x, y; @@ -988,6 +1017,7 @@ ri.Printf(PRINT_ALL, "XFree86-VidModeExtension: Ignored on non-fullscreen/Voodoo\n"); } } +#endif /* HAVE_XF86DGA */ if (!r_colorbits->value) @@ -1286,6 +1316,7 @@ glConfig.deviceSupportsGamma = qfalse; +#ifdef HAVE_XF86DGA if (vidmode_ext) { if (vidmode_MajorVersion < GAMMA_MINMAJOR || @@ -1297,6 +1328,7 @@ ri.Printf( PRINT_ALL, "XF86 Gamma extension initialized\n"); glConfig.deviceSupportsGamma = qtrue; } +#endif /* HAVE_XF86DGA */ } /* @@ -1768,10 +1800,10 @@ // bk010216 - added stubs for non-Linux UNIXes here // FIXME - use NO_JOYSTICK or something else generic -#if defined( __FreeBSD__ ) // rb010123 +#if (defined( __FreeBSD__ ) || defined( __sun)) // rb010123 void IN_StartupJoystick( void ) {} void IN_JoyMove( void ) {} #endif -#endif // !USE_SDL +#endif // !USE_SDL_VIDEO Modified: trunk/code/unix/linux_joystick.c =================================================================== --- trunk/code/unix/linux_joystick.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/linux_joystick.c 2005-10-29 22:05:20 UTC (rev 199) @@ -30,7 +30,7 @@ ** */ -#if !USE_SDL +#if !USE_SDL_VIDEO #include #include @@ -206,6 +206,6 @@ old_axes = axes; } -#endif // !USE_SDL +#endif // !USE_SDL_VIDEO Modified: trunk/code/unix/linux_snd.c =================================================================== --- trunk/code/unix/linux_snd.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/linux_snd.c 2005-10-29 22:05:20 UTC (rev 199) @@ -20,7 +20,7 @@ =========================================================================== */ -#if !USE_SDL +#if !USE_SDL_SOUND #include #include @@ -290,5 +290,5 @@ { } -#endif // !USE_SDL +#endif // !USE_SDL_SOUND Modified: trunk/code/unix/sdl_glimp.c =================================================================== --- trunk/code/unix/sdl_glimp.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/sdl_glimp.c 2005-10-29 22:05:20 UTC (rev 199) @@ -1,5 +1,5 @@ -#if USE_SDL +#if USE_SDL_VIDEO /* * SDL implementation for Quake 3: Arena's GPL source release. @@ -1406,7 +1406,7 @@ stick_state.oldaxes = axes; } -#endif // USE_SDL +#endif // USE_SDL_VIDEO // end of linux_glimp_sdl.c ... Modified: trunk/code/unix/sdl_snd.c =================================================================== --- trunk/code/unix/sdl_snd.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/sdl_snd.c 2005-10-29 22:05:20 UTC (rev 199) @@ -1,4 +1,4 @@ -#if USE_SDL +#if USE_SDL_SOUND /* * SDL implementation for Quake 3: Arena's GPL source release. @@ -298,7 +298,7 @@ SDL_LockAudio(); } -#endif // USE_SDL +#endif // USE_SDL_SOUND // end of linux_snd_sdl.c ... Modified: trunk/code/unix/unix_glw.h =================================================================== --- trunk/code/unix/unix_glw.h 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/unix_glw.h 2005-10-29 22:05:20 UTC (rev 199) @@ -19,8 +19,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ -#if !( defined __linux__ || defined __FreeBSD__ ) -#error You should include this file only on Linux/FreeBSD platforms +#if !( defined __linux__ || defined __FreeBSD__ || defined __sun) +#error You should include this file only on Linux/FreeBSD/Solaris platforms #endif #ifndef __GLW_LINUX_H__ Modified: trunk/code/unix/unix_main.c =================================================================== --- trunk/code/unix/unix_main.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/unix_main.c 2005-10-29 22:05:20 UTC (rev 199) @@ -47,6 +47,10 @@ #include // bk001213 - force dumps on divide by zero #endif +#if defined(__sun) + #include +#endif + // FIXME TTimo should we gard this? most *nix system should comply? #include @@ -391,7 +395,7 @@ #else Cvar_Set( "arch", "freebsd unknown" ); #endif -#elif defined __sun__ +#elif defined(__sun) #if defined __i386__ Cvar_Set( "arch", "solaris x86" ); #elif defined __sparc__ @@ -801,6 +805,8 @@ snprintf (fname, sizeof(fname), "%shppa.so", name); #elif defined __sh__ snprintf (fname, sizeof(fname), "%ssh.so", name); +#elif defined __sparc__ + snprintf (fname, sizeof(fname), "%ssparc.so", name); #else #error Unknown arch #endif Modified: trunk/code/unix/unix_net.c =================================================================== --- trunk/code/unix/unix_net.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/unix_net.c 2005-10-29 22:05:20 UTC (rev 199) @@ -45,6 +45,10 @@ #import // for 'struct sockaddr_dl' #endif +#ifdef __sun +#include +#endif + static cvar_t *noudp; netadr_t net_local_adr; Modified: trunk/code/unix/unix_shared.c =================================================================== --- trunk/code/unix/unix_shared.c 2005-10-29 17:42:12 UTC (rev 198) +++ trunk/code/unix/unix_shared.c 2005-10-29 22:05:20 UTC (rev 199) @@ -76,7 +76,7 @@ return curtime; } -#if (defined(__linux__) || defined(__FreeBSD__)) && !defined(DEDICATED) +#if (defined(__linux__) || defined(__FreeBSD__) || defined(__sun)) && !defined(DEDICATED) /* ================ Sys_XTimeToSysTime From DONOTREPLY at icculus.org Sat Oct 29 18:06:43 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 29 Oct 2005 18:06:43 -0400 Subject: r200 - trunk/code/qcommon Message-ID: <20051029220643.14347.qmail@icculus.org> Author: tma Date: 2005-10-29 18:06:43 -0400 (Sat, 29 Oct 2005) New Revision: 200 Modified: trunk/code/qcommon/vm_interpreted.c Log: * Fix to the VM interpreter on the linux ppc dedicated server Modified: trunk/code/qcommon/vm_interpreted.c =================================================================== --- trunk/code/qcommon/vm_interpreted.c 2005-10-29 22:05:20 UTC (rev 199) +++ trunk/code/qcommon/vm_interpreted.c 2005-10-29 22:06:43 UTC (rev 200) @@ -124,7 +124,7 @@ #define loadWord(addr) __lwbrx(addr,0) #endif #else - #define loadWord(addr) *((int *)addr) + #define loadWord(addr) LittleLong(*((int *)addr)) #endif char *VM_Indent( vm_t *vm ) { From DONOTREPLY at icculus.org Sat Oct 29 19:13:10 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 29 Oct 2005 19:13:10 -0400 Subject: r201 - in trunk/code: . cgame client game q3_ui qcommon renderer server ui Message-ID: <20051029231310.27929.qmail@icculus.org> Author: tma Date: 2005-10-29 19:13:09 -0400 (Sat, 29 Oct 2005) New Revision: 201 Removed: trunk/code/bspc/ trunk/code/splines/ Modified: trunk/code/cgame/cg_drawtools.c trunk/code/cgame/cg_main.c trunk/code/client/cl_console.c trunk/code/game/bg_lib.c trunk/code/game/g_main.c trunk/code/q3_ui/ui_atoms.c trunk/code/qcommon/cm_patch.c trunk/code/qcommon/q_math.c trunk/code/qcommon/q_shared.h trunk/code/renderer/tr_bsp.c trunk/code/renderer/tr_curve.c trunk/code/renderer/tr_shade.c trunk/code/server/sv_client.c trunk/code/ui/ui_atoms.c Log: * General decrufting: * Removed Q3_STATIC and associated defines * Removed MAC_STATIC * Replaced __LCC__ with Q3_VM * Removed bspc and splines directories Modified: trunk/code/cgame/cg_drawtools.c =================================================================== --- trunk/code/cgame/cg_drawtools.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/cgame/cg_drawtools.c 2005-10-29 23:13:09 UTC (rev 201) @@ -435,8 +435,6 @@ // bk001205 - code below duplicated in q3_ui/ui-atoms.c // bk001205 - FIXME: does this belong in ui_shared.c? -// bk001205 - FIXME: HARD_LINKED flags not visible here -#ifndef Q3_STATIC // bk001205 - q_shared defines not visible here /* ================= UI_DrawProportionalString2 @@ -821,4 +819,3 @@ UI_DrawProportionalString2( x, y, str, color, sizeScale, cgs.media.charsetProp ); } -#endif // Q3STATIC Modified: trunk/code/cgame/cg_main.c =================================================================== --- trunk/code/cgame/cg_main.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/cgame/cg_main.c 2005-10-29 23:13:09 UTC (rev 201) @@ -438,9 +438,6 @@ trap_Error( text ); } -#ifndef CGAME_HARD_LINKED -// this is only here so the functions in q_shared.c and bg_*.c can link (FIXME) - void QDECL Com_Error( int level, const char *error, ... ) { va_list argptr; char text[1024]; @@ -463,8 +460,6 @@ CG_Printf ("%s", text); } -#endif - /* ================ CG_Argv Modified: trunk/code/client/cl_console.c =================================================================== --- trunk/code/client/cl_console.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/client/cl_console.c 2005-10-29 23:13:09 UTC (rev 201) @@ -248,7 +248,7 @@ void Con_CheckResize (void) { int i, j, width, oldwidth, oldtotallines, numlines, numchars; - MAC_STATIC short tbuf[CON_TEXTSIZE]; + short tbuf[CON_TEXTSIZE]; width = (SCREEN_WIDTH / SMALLCHAR_WIDTH) - 2; Modified: trunk/code/game/bg_lib.c =================================================================== --- trunk/code/game/bg_lib.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/game/bg_lib.c 2005-10-29 23:13:09 UTC (rev 201) @@ -1257,7 +1257,7 @@ break; case 'f': AddFloat( &buf_p, *(double *)arg, width, prec ); -#ifdef __LCC__ +#ifdef Q3_VM arg += 1; // everything is 32 bit in my compiler #else arg += 2; Modified: trunk/code/game/g_main.c =================================================================== --- trunk/code/game/g_main.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/game/g_main.c 2005-10-29 23:13:09 UTC (rev 201) @@ -536,9 +536,6 @@ //=================================================================== -#ifndef GAME_HARD_LINKED -// this is only here so the functions in q_shared.c and bg_*.c can link - void QDECL Com_Error ( int level, const char *error, ... ) { va_list argptr; char text[1024]; @@ -561,8 +558,6 @@ G_Printf ("%s", text); } -#endif - /* ======================================================================== Modified: trunk/code/q3_ui/ui_atoms.c =================================================================== --- trunk/code/q3_ui/ui_atoms.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/q3_ui/ui_atoms.c 2005-10-29 23:13:09 UTC (rev 201) @@ -30,9 +30,6 @@ uiStatic_t uis; qboolean m_entersound; // after a frame, so caching won't disrupt the sound -// these are here so the functions in q_shared.c can link -#ifndef UI_HARD_LINKED - void QDECL Com_Error( int level, const char *error, ... ) { va_list argptr; char text[1024]; @@ -55,8 +52,6 @@ trap_Print( va("%s", text) ); } -#endif - /* ================= UI_ClampCvar Modified: trunk/code/qcommon/cm_patch.c =================================================================== --- trunk/code/qcommon/cm_patch.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/qcommon/cm_patch.c 2005-10-29 23:13:09 UTC (rev 201) @@ -980,7 +980,7 @@ static void CM_PatchCollideFromGrid( cGrid_t *grid, patchCollide_t *pf ) { int i, j; float *p1, *p2, *p3; - MAC_STATIC int gridPlanes[MAX_GRID_SIZE][MAX_GRID_SIZE][2]; + int gridPlanes[MAX_GRID_SIZE][MAX_GRID_SIZE][2]; facet_t *facet; int borders[4]; int noAdjust[4]; @@ -1147,7 +1147,7 @@ */ struct patchCollide_s *CM_GeneratePatchCollide( int width, int height, vec3_t *points ) { patchCollide_t *pf; - MAC_STATIC cGrid_t grid; + cGrid_t grid; int i, j; if ( width <= 2 || height <= 2 || !points ) { Modified: trunk/code/qcommon/q_math.c =================================================================== --- trunk/code/qcommon/q_math.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/qcommon/q_math.c 2005-10-29 23:13:09 UTC (rev 201) @@ -153,7 +153,7 @@ return 2.0 * ( Q_random( seed ) - 0.5 ); } -#ifdef __LCC__ +#ifdef Q3_VM int VectorCompare( const vec3_t v1, const vec3_t v2 ) { if (v1[0] != v2[0] || v1[1] != v2[1] || v1[2] != v2[2]) { @@ -739,7 +739,7 @@ // if not GNU x86 and configured to use asm #if !( (defined __GNUC__) && (defined __i386__) && (!defined C_ONLY)) -#if defined __LCC__ || defined C_ONLY || !id386 || defined __VECTORC +#if defined Q3_VM || defined C_ONLY || !id386 || defined __VECTORC int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p) { Modified: trunk/code/qcommon/q_shared.h =================================================================== --- trunk/code/qcommon/q_shared.h 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/qcommon/q_shared.h 2005-10-29 23:13:09 UTC (rev 201) @@ -105,7 +105,7 @@ // this is the define for determining if we have an asm version of a C function -#if (defined _M_IX86 || defined __i386__) && !defined __sun && !defined __LCC__ +#if (defined _M_IX86 || defined __i386__) && !defined __sun && !defined Q3_VM #define id386 1 #else #define id386 0 @@ -135,8 +135,6 @@ #ifdef WIN32 -#define MAC_STATIC - #undef QDECL #define QDECL __cdecl @@ -184,7 +182,6 @@ #if defined(MACOS_X) -#define MAC_STATIC #define __cdecl #define __declspec(x) #define stricmp strcasecmp @@ -239,7 +236,6 @@ #ifdef __MACOS__ #include -#define MAC_STATIC #define ID_INLINE inline #define CPUSTRING "MacOS-PPC" @@ -266,7 +262,6 @@ // bk001205 - from Makefile #define stricmp strcasecmp -#define MAC_STATIC // bk: FIXME #define ID_INLINE inline #ifdef __i386__ @@ -291,14 +286,6 @@ #define PATH_SEP '/' -// bk001205 - try -#ifdef Q3_STATIC -#define GAME_HARD_LINKED -#define CGAME_HARD_LINKED -#define UI_HARD_LINKED -#define BOTLIB_HARD_LINKED -#endif - #if __FLOAT_WORD_ORDER == __LITTLE_ENDIAN inline static short BigShort( short l) { return ShortSwap(l); } #define LittleShort @@ -322,7 +309,6 @@ #define stricmp strcasecmp -#define MAC_STATIC #define ID_INLINE inline #ifdef __i386__ @@ -364,7 +350,6 @@ // bk001205 - from Makefile #define stricmp strcasecmp -#define MAC_STATIC #define ID_INLINE inline #ifdef __i386__ @@ -375,14 +360,6 @@ #define PATH_SEP '/' -// bk001205 - try -#ifdef Q3_STATIC -#define GAME_HARD_LINKED -#define CGAME_HARD_LINKED -#define UI_HARD_LINKED -#define BOTLIB_HARD_LINKED -#endif - #if defined(_LITTLE_ENDIAN) inline static short BigShort( short l) { return ShortSwap(l); } #define LittleShort @@ -703,7 +680,7 @@ #endif -#ifdef __LCC__ +#ifdef Q3_VM #ifdef VectorCopy #undef VectorCopy // this is a little hack to get more efficient copies in our interpreter @@ -738,7 +715,7 @@ void ClearBounds( vec3_t mins, vec3_t maxs ); void AddPointToBounds( const vec3_t v, vec3_t mins, vec3_t maxs ); -#ifndef __LCC__ +#ifndef Q3_VM static ID_INLINE int VectorCompare( const vec3_t v1, const vec3_t v2 ) { if (v1[0] != v2[0] || v1[1] != v2[1] || v1[2] != v2[2]) { return 0; Modified: trunk/code/renderer/tr_bsp.c =================================================================== --- trunk/code/renderer/tr_bsp.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/renderer/tr_bsp.c 2005-10-29 23:13:09 UTC (rev 201) @@ -135,7 +135,7 @@ static void R_LoadLightmaps( lump_t *l ) { byte *buf, *buf_p; int len; - MAC_STATIC byte image[LIGHTMAP_SIZE*LIGHTMAP_SIZE*4]; + byte image[LIGHTMAP_SIZE*LIGHTMAP_SIZE*4]; int i, j; float maxIntensity = 0; double sumIntensity = 0; @@ -379,7 +379,7 @@ srfGridMesh_t *grid; int i, j; int width, height, numPoints; - MAC_STATIC drawVert_t points[MAX_PATCH_SIZE*MAX_PATCH_SIZE]; + drawVert_t points[MAX_PATCH_SIZE*MAX_PATCH_SIZE]; int lightmapNum; vec3_t bounds[2]; vec3_t tmpVec; Modified: trunk/code/renderer/tr_curve.c =================================================================== --- trunk/code/renderer/tr_curve.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/renderer/tr_curve.c 2005-10-29 23:13:09 UTC (rev 201) @@ -366,7 +366,7 @@ float len, maxLen; int dir; int t; - MAC_STATIC drawVert_t ctrl[MAX_GRID_SIZE][MAX_GRID_SIZE]; + drawVert_t ctrl[MAX_GRID_SIZE][MAX_GRID_SIZE]; float errorTable[2][MAX_GRID_SIZE]; for ( i = 0 ; i < width ; i++ ) { @@ -525,7 +525,7 @@ srfGridMesh_t *R_GridInsertColumn( srfGridMesh_t *grid, int column, int row, vec3_t point, float loderror ) { int i, j; int width, height, oldwidth; - MAC_STATIC drawVert_t ctrl[MAX_GRID_SIZE][MAX_GRID_SIZE]; + drawVert_t ctrl[MAX_GRID_SIZE][MAX_GRID_SIZE]; float errorTable[2][MAX_GRID_SIZE]; float lodRadius; vec3_t lodOrigin; @@ -579,7 +579,7 @@ srfGridMesh_t *R_GridInsertRow( srfGridMesh_t *grid, int row, int column, vec3_t point, float loderror ) { int i, j; int width, height, oldheight; - MAC_STATIC drawVert_t ctrl[MAX_GRID_SIZE][MAX_GRID_SIZE]; + drawVert_t ctrl[MAX_GRID_SIZE][MAX_GRID_SIZE]; float errorTable[2][MAX_GRID_SIZE]; float lodRadius; vec3_t lodOrigin; Modified: trunk/code/renderer/tr_shade.c =================================================================== --- trunk/code/renderer/tr_shade.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/renderer/tr_shade.c 2005-10-29 23:13:09 UTC (rev 201) @@ -422,7 +422,7 @@ float *texCoords; byte *colors; byte clipBits[SHADER_MAX_VERTEXES]; - MAC_STATIC float texCoordsArray[SHADER_MAX_VERTEXES][2]; + float texCoordsArray[SHADER_MAX_VERTEXES][2]; byte colorArray[SHADER_MAX_VERTEXES][4]; unsigned hitIndexes[SHADER_MAX_INDEXES]; int numIndexes; Modified: trunk/code/server/sv_client.c =================================================================== --- trunk/code/server/sv_client.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/server/sv_client.c 2005-10-29 23:13:09 UTC (rev 201) @@ -231,7 +231,7 @@ char userinfo[MAX_INFO_STRING]; int i; client_t *cl, *newcl; - MAC_STATIC client_t temp; + client_t temp; sharedEntity_t *ent; int clientNum; int version; Modified: trunk/code/ui/ui_atoms.c =================================================================== --- trunk/code/ui/ui_atoms.c 2005-10-29 22:06:43 UTC (rev 200) +++ trunk/code/ui/ui_atoms.c 2005-10-29 23:13:09 UTC (rev 201) @@ -29,9 +29,6 @@ qboolean m_entersound; // after a frame, so caching won't disrupt the sound -// these are here so the functions in q_shared.c can link -#ifndef UI_HARD_LINKED - void QDECL Com_Error( int level, const char *error, ... ) { va_list argptr; char text[1024]; @@ -54,8 +51,6 @@ trap_Print( va("%s", text) ); } -#endif - qboolean newUI = qfalse; From DONOTREPLY at icculus.org Sun Oct 30 09:36:49 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 30 Oct 2005 09:36:49 -0500 Subject: r202 - trunk/code/unix Message-ID: <20051030143649.1836.qmail@icculus.org> Author: tma Date: 2005-10-30 09:36:49 -0500 (Sun, 30 Oct 2005) New Revision: 202 Modified: trunk/code/unix/Makefile Log: * Applied https://bugzilla.icculus.org/show_bug.cgi?id=2464 * Removed rule to build C++ (for splines) from the Makefile Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-29 23:13:09 UTC (rev 201) +++ trunk/code/unix/Makefile 2005-10-30 14:36:49 UTC (rev 202) @@ -854,10 +854,6 @@ $(B)/$(PLATFORM)quake3$(BINEXT): $(Q3OBJ) $(Q3POBJ) $(CC) -o $@ $(Q3OBJ) $(Q3POBJ) $(GLLDFLAGS) $(LDFLAGS) -# TTimo: splines code requires C++ linking, but splines have -# not been officially included in the codebase -# $(CXX) -o $@ $(Q3OBJ) $(Q3POBJ) $(GLLDFLAGS) $(LDFLAGS) - $(B)/$(PLATFORM)quake3-smp$(BINEXT): $(Q3OBJ) $(Q3POBJ_SMP) $(CC) -o $@ $(Q3OBJ) $(Q3POBJ_SMP) $(GLLDFLAGS) \ $(THREAD_LDFLAGS) $(LDFLAGS) @@ -1534,12 +1530,11 @@ # MISC ############################################################################# -copyfiles: - @if [ ! -d $(COPYDIR) ]; then echo "You need to set COPYDIR to where you installed Quake III!"; false; fi - -mkdir -p -m 0755 $(COPYDIR) - install -s -m 0755 $(BR)/linuxquake3 $(COPYDIR)/quake3 - #install -s -m 0755 $(BR)/linuxquake3-smp $(COPYDIR)/quake3-smp - install -s -m 0755 $(BR)/linuxq3ded $(COPYDIR)/q3ded +copyfiles: build_release + @if [ ! -d $(COPYDIR)/baseq3 ]; then echo "You need to set COPYDIR to where you installed Quake III!"; false; fi + install -s -m 0755 $(BR)/$(PLATFORM)quake3$(BINEXT) $(COPYDIR)/quake3 + #install -s -m 0755 $(BR)/$(PLATFORM)quake3-smp$(BINEXT) $(COPYDIR)/quake3-smp + install -s -m 0755 $(BR)/$(PLATFORM)q3ded$(BINEXT) $(COPYDIR)/q3ded -mkdir -p -m 0755 $(COPYDIR)/baseq3 install -s -m 0755 $(BR)/baseq3/cgame$(ARCH).$(SHLIBEXT) \ $(COPYDIR)/baseq3/. From DONOTREPLY at icculus.org Mon Oct 31 09:40:22 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 31 Oct 2005 09:40:22 -0500 Subject: r203 - trunk Message-ID: <20051031144022.28613.qmail@icculus.org> Author: tma Date: 2005-10-31 09:40:22 -0500 (Mon, 31 Oct 2005) New Revision: 203 Modified: trunk/STATUS Log: * STATUS update Modified: trunk/STATUS =================================================================== --- trunk/STATUS 2005-10-30 14:36:49 UTC (rev 202) +++ trunk/STATUS 2005-10-31 14:40:22 UTC (rev 203) @@ -8,7 +8,7 @@ ---------+------------+---------+---------+------ Linux | gcc-x86 | working | | | gcc-x86_64 | working | | x86_64 JIT bytecode compiler disabled by default - | gcc-ppc | working | | Dedicated server crashes in VM interpreter + | gcc-ppc | working | | ---------+------------+---------+---------+------ Windows | mingw-x86 | working | | | MSVC-x86 | unknown | 180ish? | @@ -17,3 +17,8 @@ | xcode-G4 | working | | Client has severe graphical glitches ---------+------------+---------+---------+------ FreeBSD | gcc-x86 | working | | +---------+------------+---------+---------+------ +Solaris | gcc-x86 | broken | | + | gcc-sparc | broken | | +---------+------------+---------+---------+------ +IRIX | cc-* | broken | | Doesn't exist, should we drop it? From DONOTREPLY at icculus.org Mon Oct 31 11:46:05 2005 From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org) Date: 31 Oct 2005 11:46:05 -0500 Subject: r204 - in trunk/code: tools/lcc/etc unix Message-ID: <20051031164605.12888.qmail@icculus.org> Author: tma Date: 2005-10-31 11:46:05 -0500 (Mon, 31 Oct 2005) New Revision: 204 Modified: trunk/code/tools/lcc/etc/gcc-solaris.c trunk/code/unix/Makefile Log: * Further work on the Solaris port from Vincent S. Cojot Modified: trunk/code/tools/lcc/etc/gcc-solaris.c =================================================================== --- trunk/code/tools/lcc/etc/gcc-solaris.c 2005-10-31 14:40:22 UTC (rev 203) +++ trunk/code/tools/lcc/etc/gcc-solaris.c 2005-10-31 16:46:05 UTC (rev 204) @@ -1,4 +1,4 @@ -/* Solaris 10 sparc */ +/* x86s running Linux */ #include @@ -9,49 +9,70 @@ removed __linux__ preprocessor define (confuses the preprocessor, we are doing bytecode!) */ - #ifndef LCCDIR #define LCCDIR "" +//#define LCCDIR "/usr/local/lib/lcc/" #endif -#ifndef GCCDIR -#define GCCDIR "/usr/sfw/bin/" + +#ifdef _WIN32 +#define BINEXT ".exe" +#else +#define BINEXT "" #endif -#ifndef GCCLIB -#define GCCLIB "/usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/" -#endif -#define BINEXT "" -char *suffixes[] = { ".c", ".i", ".asm", ".s", ".o", ".out", 0 }; +char *suffixes[] = { ".c", ".i", ".asm", ".o", ".out", 0 }; char inputs[256] = ""; +// TTimo experimental: do not compile with the __linux__ define, we are doing bytecode! char *cpp[] = { LCCDIR "q3cpp" BINEXT, - "-D__STDC__=1", "-Dsparc", "-D__sparc__", "-Dsun", "-D__sun__", "-Dunix", "-D__sun", + "-U__GNUC__", "-D_POSIX_SOURCE", "-D__STDC__=1", "-D__STRICT_ANSI__", + "-Dunix", "-Di386", "-Dlinux", + "-D__unix__", "-D__i386__", "-D__signed__=signed", "$1", "$2", "$3", 0 }; -char *include[] = { "-I" LCCDIR "include", "-I" LCCDIR "gcc/include", - "-I" SYSTEM "include", "-I/usr/include", 0 }; -/* char *com[] = { LCCDIR "q3rcc", "-target=bytecode", "$1", "$2", "$3", 0 }; */ -char *com[] = { LCCDIR "q3rcc", "-target=sparc/solaris", "$1", "$2", "$3", 0 }; -char *as[] = { "/usr/ccs/bin/as", "-o", "$3", "$1", "$2", 0 }; -char *ld[] = { "/usr/ccs/bin/ld", "-o", "$3", "$1", - GCCLIB "crti.o", GCCLIB "crt1.o", - GCCLIB "crtbegin.o", "$2", "", "", "-L" LCCDIR, "-llcc", - "-L" GCCLIB, "-lgcc", "-lm", "-lc", "", - GCCLIB "crtend.o", GCCLIB "crtn.o", 0 }; +char *include[] = {"-I" LCCDIR "include", "-I" LCCDIR "gcc/include", "-I/usr/include", + "-I" SYSTEM "include", 0 }; +char *com[] = {LCCDIR "q3rcc" BINEXT, "-target=bytecode", "$1", "$2", "$3", 0 }; +char *as[] = { "/usr/bin/as", "-o", "$3", "$1", "$2", 0 }; +// NOTE TTimo I don't think we have any use with the native linkage +// our target is always bytecode.. +char *ld[] = { + /* 0 */ "/usr/ccs/bin/ld", "-m", "elf_i386", "-dynamic-linker", + /* 4 */ "/lib/ld-linux.so.2", "-o", "$3", + /* 7 */ "/usr/lib/crt1.o", "/usr/lib/crti.o", + /* 9 */ SYSTEM "crtbegin.o", + "$1", "$2", + /* 12 */ "-L" LCCDIR, + /* 13 */ "-llcc", + /* 14 */ "-L" LCCDIR "/gcc", "-lgcc", "-lc", "-lm", + /* 18 */ "", + /* 19 */ SYSTEM "crtend.o", "/usr/lib/crtn.o", + /* 20 */ "-L" SYSTEM, + 0 }; extern char *concat(char *, char *); int option(char *arg) { - if (strncmp(arg, "-lccdir=", 8) == 0) { + if (strncmp(arg, "-lccdir=", 8) == 0) { cpp[0] = concat(&arg[8], "/gcc/cpp"); include[0] = concat("-I", concat(&arg[8], "/include")); - ld[10] = concat("-L", &arg[8]); + include[1] = concat("-I", concat(&arg[8], "/gcc/include")); + ld[9] = concat(&arg[8], "/gcc/crtbegin.o"); + ld[12] = concat("-L", &arg[8]); + ld[14] = concat("-L", concat(&arg[8], "/gcc")); + ld[19] = concat(&arg[8], "/gcc/crtend.o"); com[0] = concat(&arg[8], "/rcc"); } else if (strcmp(arg, "-p") == 0 || strcmp(arg, "-pg") == 0) { - ld[8] = "-lgmon"; - } else if (strcmp(arg, "-g") == 0) + ld[7] = "/usr/lib/gcrt1.o"; + ld[18] = "-lgmon"; + } else if (strcmp(arg, "-b") == 0) ; - else if (strcmp(arg, "-b") == 0) + else if (strcmp(arg, "-g") == 0) ; - else + else if (strncmp(arg, "-ld=", 4) == 0) + ld[0] = &arg[4]; + else if (strcmp(arg, "-static") == 0) { + ld[3] = "-static"; + ld[4] = ""; + } else return 0; return 1; } Modified: trunk/code/unix/Makefile =================================================================== --- trunk/code/unix/Makefile 2005-10-31 14:40:22 UTC (rev 203) +++ trunk/code/unix/Makefile 2005-10-31 16:46:05 UTC (rev 204) @@ -85,6 +85,10 @@ VM_PPC= LIB=lib + +INSTALL=install +MKDIR=mkdir + ifeq ($(PLATFORM),linux) GLIBC=-glibc @@ -360,6 +364,8 @@ GLIBC= #libc is irrelevant CC=gcc CXX=g++ + INSTALL=ginstall + MKDIR=gmkdir COPYDIR="/usr/local/share/games/quake3" ifneq (,$(findstring i86pc,$(shell uname -m))) @@ -528,23 +534,23 @@ targets: $(TARGETS) makedirs: - @if [ ! -d $(B) ];then mkdir $(B);fi - @if [ ! -d $(B)/client ];then mkdir $(B)/client;fi - @if [ ! -d $(B)/ded ];then mkdir $(B)/ded;fi - @if [ ! -d $(B)/ref ];then mkdir $(B)/ref;fi - @if [ ! -d $(B)/baseq3 ];then mkdir $(B)/baseq3;fi - @if [ ! -d $(B)/baseq3/cgame ];then mkdir $(B)/baseq3/cgame;fi - @if [ ! -d $(B)/baseq3/game ];then mkdir $(B)/baseq3/game;fi - @if [ ! -d $(B)/baseq3/ui ];then mkdir $(B)/baseq3/ui;fi - @if [ ! -d $(B)/baseq3/qcommon ];then mkdir $(B)/baseq3/qcommon;fi - @if [ ! -d $(B)/baseq3/vm ];then mkdir $(B)/baseq3/vm;fi - @if [ ! -d $(B)/missionpack ];then mkdir $(B)/missionpack;fi - @if [ ! -d $(B)/missionpack/cgame ];then mkdir $(B)/missionpack/cgame;fi - @if [ ! -d $(B)/missionpack/game ];then mkdir $(B)/missionpack/game;fi - @if [ ! -d $(B)/missionpack/ui ];then mkdir $(B)/missionpack/ui;fi - @if [ ! -d $(B)/missionpack/qcommon ];then mkdir $(B)/missionpack/qcommon;fi - @if [ ! -d $(B)/missionpack/vm ];then mkdir $(B)/missionpack/vm;fi - @if [ ! -d $(B)/q3static ];then mkdir $(B)/q3static;fi + @if [ ! -d $(B) ];then $(MKDIR) $(B);fi + @if [ ! -d $(B)/client ];then $(MKDIR) $(B)/client;fi + @if [ ! -d $(B)/ded ];then $(MKDIR) $(B)/ded;fi + @if [ ! -d $(B)/ref ];then $(MKDIR) $(B)/ref;fi + @if [ ! -d $(B)/baseq3 ];then $(MKDIR) $(B)/baseq3;fi + @if [ ! -d $(B)/baseq3/cgame ];then $(MKDIR) $(B)/baseq3/cgame;fi + @if [ ! -d $(B)/baseq3/game ];then $(MKDIR) $(B)/baseq3/game;fi + @if [ ! -d $(B)/baseq3/ui ];then $(MKDIR) $(B)/baseq3/ui;fi + @if [ ! -d $(B)/baseq3/qcommon ];then $(MKDIR) $(B)/baseq3/qcommon;fi + @if [ ! -d $(B)/baseq3/vm ];then $(MKDIR) $(B)/baseq3/vm;fi + @if [ ! -d $(B)/missionpack ];then $(MKDIR) $(B)/missionpack;fi + @if [ ! -d $(B)/missionpack/cgame ];then $(MKDIR) $(B)/missionpack/cgame;fi + @if [ ! -d $(B)/missionpack/game ];then $(MKDIR) $(B)/missionpack/game;fi + @if [ ! -d $(B)/missionpack/ui ];then $(MKDIR) $(B)/missionpack/ui;fi + @if [ ! -d $(B)/missionpack/qcommon ];then $(MKDIR) $(B)/missionpack/qcommon;fi + @if [ ! -d $(B)/missionpack/vm ];then $(MKDIR) $(B)/missionpack/vm;fi + @if [ ! -d $(B)/q3static ];then $(MKDIR) $(B)/q3static;fi ############################################################################# # QVM BUILD TOOLS @@ -823,9 +829,7 @@ $(B)/client/linux_qgl.o \ $(B)/client/linux_glimp.o \ $(B)/client/linux_snd.o \ - $(B)/client/sdl_snd.o \ - $(B)/client/snd_mixa.o \ - $(B)/client/matha.o \ + $(B)/client/sdl_snd.o Q3POBJ_SMP=\ $(B)/client/unix_main.o \ @@ -836,12 +840,10 @@ $(B)/client/linux_qgl.o \ $(B)/client/linux_glimp_smp.o \ $(B)/client/linux_snd.o \ - $(B)/client/sdl_snd.o \ - $(B)/client/snd_mixa.o \ - $(B)/client/matha.o + $(B)/client/sdl_snd.o ifeq ($(ARCH),i386) - Q3POBJ += $(B)/client/ftola.o $(B)/client/snapvectora.o + Q3POBJ += $(B)/client/ftola.o $(B)/client/snapvectora.o $(B)/client/snd_mixa.o $(B)/client/matha.o Q3POBJ_SMP += $(B)/client/ftola.o $(B)/client/snapvectora.o endif @@ -1532,22 +1534,22 @@ copyfiles: build_release @if [ ! -d $(COPYDIR)/baseq3 ]; then echo "You need to set COPYDIR to where you installed Quake III!"; false; fi - install -s -m 0755 $(BR)/$(PLATFORM)quake3$(BINEXT) $(COPYDIR)/quake3 - #install -s -m 0755 $(BR)/$(PLATFORM)quake3-smp$(BINEXT) $(COPYDIR)/quake3-smp - install -s -m 0755 $(BR)/$(PLATFORM)q3ded$(BINEXT) $(COPYDIR)/q3ded - -mkdir -p -m 0755 $(COPYDIR)/baseq3 - install -s -m 0755 $(BR)/baseq3/cgame$(ARCH).$(SHLIBEXT) \ + $(INSTALL) -s -m 0755 $(BR)/$(PLATFORM)quake3$(BINEXT) $(COPYDIR)/quake3 + #$(INSTALL) -s -m 0755 $(BR)/$(PLATFORM)quake3-smp$(BINEXT) $(COPYDIR)/quake3-smp + $(INSTALL) -s -m 0755 $(BR)/$(PLATFORM)q3ded$(BINEXT) $(COPYDIR)/q3ded + -$(MKDIR) -p -m 0755 $(COPYDIR)/baseq3 + $(INSTALL) -s -m 0755 $(BR)/baseq3/cgame$(ARCH).$(SHLIBEXT) \ $(COPYDIR)/baseq3/. - install -s -m 0755 $(BR)/baseq3/qagame$(ARCH).$(SHLIBEXT) \ + $(INSTALL) -s -m 0755 $(BR)/baseq3/qagame$(ARCH).$(SHLIBEXT) \ $(COPYDIR)/baseq3/. - install -s -m 0755 $(BR)/baseq3/ui$(ARCH).$(SHLIBEXT) \ + $(INSTALL) -s -m 0755 $(BR)/baseq3/ui$(ARCH).$(SHLIBEXT) \ $(COPYDIR)/baseq3/. - -mkdir -p -m 0755 $(COPYDIR)/missionpack - install -s -m 0755 $(BR)/missionpack/cgame$(ARCH).$(SHLIBEXT) \ + -$(MKDIR) -p -m 0755 $(COPYDIR)/missionpack + $(INSTALL) -s -m 0755 $(BR)/missionpack/cgame$(ARCH).$(SHLIBEXT) \ $(COPYDIR)/missionpack/. - install -s -m 0755 $(BR)/missionpack/qagame$(ARCH).$(SHLIBEXT) \ + $(INSTALL) -s -m 0755 $(BR)/missionpack/qagame$(ARCH).$(SHLIBEXT) \ $(COPYDIR)/missionpack/. - install -s -m 0755 $(BR)/missionpack/ui$(ARCH).$(SHLIBEXT) \ + $(INSTALL) -s -m 0755 $(BR)/missionpack/ui$(ARCH).$(SHLIBEXT) \ $(COPYDIR)/missionpack/. clean:clean-debug clean-release