Try to fix frametime issues with TW.

Use eukara's icon in x11, matching the windows icon.
Use the extra main-menu options even when there's no menufont available.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5255 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2018-05-28 10:12:10 +00:00
parent 5e937bcf48
commit 60c8797d25
20 changed files with 695 additions and 72 deletions

View File

@ -5581,7 +5581,6 @@ double Host_Frame (double time)
#endif #endif
cls.framecount++; cls.framecount++;
cl.lasttime = cl.time;
RSpeedRemark(); RSpeedRemark();
@ -5727,6 +5726,7 @@ double Host_Frame (double time)
TP_UpdateAutoStatus(); TP_UpdateAutoStatus();
host_framecount++; host_framecount++;
cl.lasttime = cl.time;
return 0; return 0;
} }

View File

@ -0,0 +1,597 @@
/* GIMP RGBA C-Source image dump (fte_eukaranopng.h) */
static const struct {
unsigned int width;
unsigned int height;
unsigned int bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */
unsigned char pixel_data[64 * 64 * 4 + 1];
} icon = {
64, 64, 4,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\246\246\246\026rrrSeee\205"
"\\\\\\\257VVV\315QQQ\350OOO\370LLL\377LLL\377OOO\370QQQ\350VVV\315\\\\\\"
"\257eee\205rrrS\246\246\246\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000|||\001\000\000\000\000\000\000\000\000|||\062eee\215WWW\364BBB\377\062\062\062\377$$$\377"
"\031\031\031\377\022\022\022\377\016\016\016\377\012\012\012\377\011\011\011\377\011\011\011"
"\377\012\012\012\377\015\015\015\377\022\022\022\377\031\031\031\377$$$\377\062\062\062"
"\377BBB\377WWW\364eee\215|||\062\000\000\000\000\000\000\000\000|||\001\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000jjj\003\000\000\000\000\306\306\306\011jjjsVVV\365"
"===\377$$$\377\021\021\021\377\006\006\006\377\002\002\002\377\001\001\001\377\001\001\001\377\003\003\003"
"\377\005\005\005\377\005\005\005\377\006\006\006\377\006\006\006\377\005\005\005\377\005\005\005\377\003\003\003\377"
"\001\001\001\377\001\001\001\377\002\002\002\377\006\006\006\377\021\021\021\377$$$\377===\377VVV\365"
"jjjs\306\306\306\011\000\000\000\000jjj\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000ppp\003\000\000\000\000\377"
"\377\377\002jjj\222LLL\377---\377\022\022\022\377\005\005\005\377\001\001\001\377\003\003\003\377"
"\007\007\007\377\017\017\017\377\026\026\026\377\034\034\034\377\040\040\040\377%%%\377((("
"\377***\377***\377(((\377&&&\377!!!\377\034\034\034\377\026\026\026\377\016\016\016"
"\377\007\007\007\377\003\003\003\377\001\001\001\377\005\005\005\377\022\022\022\377---\377LLL\377j"
"jj\222\377\377\377\002\000\000\000\000ppp\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000uuubQQQ\377***\377\014\014"
"\014\373\003\003\003\377\002\002\002\377\007\007\007\377\020\020\020\377\032\032\032\377(((\377\071"
"\071\071\377GFF\377YYY\377fff\377mmm\377rrr\377qqq\377ppp\377ooo\377hhh\377"
"```\377UUU\377EEE\377\070\070\070\377***\377\034\034\034\377\020\020\020\377\007\007\007"
"\377\002\002\002\377\003\003\003\377\014\014\014\373***\377QQQ\377uuub\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000ooo\001\000\000\000\000\341\341\341\013"
"^^^\325\066\066\066\377\020\020\020\374\002\002\002\377\003\003\003\377\012\012\012\377\026\026"
"\026\377'''\377===\377aaa\377www\377\177\177\177\377\202\202\202\377~~~\377"
"{{{\377yyy\377xxx\377www\377uuu\377ttt\377rrr\377qqq\377qqq\377rrr\377mm"
"m\377fgf\377VVV\377<<<\377)))\377\030\030\030\377\012\012\012\377\003\003\003\377\002\002"
"\002\377\020\020\020\374\066\066\066\377^^^\325\341\341\341\013\000\000\000\000ooo\001\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000xxxVNNN\377\036\036\036\377\006\006\006\377\001\001"
"\001\377\011\011\011\377\032\032\032\377...\377QQQ\377xxx\377\207\210\210\377\203"
"\203\203\377\200\200\200\377\202\202\202\377\205\205\205\377\206\207\206"
"\377\210\210\210\377\211\211\211\377\212\212\211\377\211\212\211\377\210"
"\207\207\377\205\205\205\377\201\201\201\377}}}\377yyy\377ttt\377ppp\377"
"lll\377kkk\377lll\377aaa\377JJJ\377\060\060\060\377\033\033\033\377\011\011\011\377"
"\001\001\001\377\006\006\006\377\036\036\036\377NNN\377xxxV\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000ggg\233>>>\377\021\021\021\377\002\002\002\377\005\005\005\377\025\025\025\377"
"***\377UTU\377\201\201\201\377\212\212\212\377\205\205\205\377\207\207\207"
"\377\214\214\214\377\222\223\223\377\230\230\230\377\235\235\234\377\240"
"\240\240\377\242\242\242\377\243\243\242\377\242\242\242\377\241\241\241"
"\377\237\237\237\377\233\233\233\377\230\230\230\377\223\223\223\377\216"
"\216\216\377\210\210\210\377\200\200\200\377zyy\377rrr\377lll\377hhh\377"
"hhh\377ccd\377KKK\377---\377\025\025\025\377\005\005\005\377\002\002\002\377\021\021\021\377"
">>>\377ggg\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000bbb\277\061\061\061\377\012\012\012\377\001"
"\001\001\377\012\012\012\377\040\040\040\377@@@\377}}}\377\216\216\216\377\211\211"
"\211\377\215\214\215\377\224\225\224\377\235\235\235\377\246\246\246\377"
"\255\255\255\377\261\261\261\377\264\264\264\377\265\265\265\377\266\266"
"\265\377\265\265\265\377\264\264\264\377\263\262\263\377\260\260\260\377"
"\255\255\256\377\251\251\251\377\244\244\244\377\240\240\240\377\233\233"
"\233\377\225\225\225\377\215\215\215\377\205\205\205\377|||\377rrr\377kk"
"k\377fee\377fff\377___\377???\377!!!\377\012\012\012\377\001\001\001\377\012\012\012"
"\377\061\061\061\377bbb\277\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000bbb\315+++\377\005\005\005\376\001\001\001\377\020\020"
"\020\377'''\377]\\]\377\222\222\222\377\214\214\214\377\217\217\217\377\231"
"\231\231\377\244\244\244\377\257\257\257\377\270\270\270\377\275\275\275"
"\377\301\301\301\377\302\302\302\377\302\302\302\377\301\301\301\377\276"
"\276\277\377\275\275\275\377\273\273\273\377\270\271\270\377\266\265\266"
"\377\262\263\262\377\261\260\260\377\255\255\254\377\252\252\252\377\246"
"\245\246\377\241\242\242\377\234\235\234\377\225\226\226\377\216\216\216"
"\377\204\204\203\377yyz\377ppp\377hhh\377ccc\377ddd\377OOO\377+++\377\020"
"\020\020\377\001\001\001\377\005\005\005\376+++\377bbb\315\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000bbb\277+++\377\004\004\004\376\003\003\003\377\024"
"\024\024\377...\377vvv\377\225\225\225\377\216\216\216\377\230\230\230\377"
"\245\245\245\377\263\263\263\377\275\275\275\377\305\305\305\377\311\311"
"\311\377\312\312\312\377\311\312\311\377\310\310\310\377\307\306\306\377"
"\305\306\306\377\303\303\304\377\301\301\301\377\277\277\277\377\274\274"
"\274\377\271\271\271\377\267\266\267\377\265\264\264\377\260\260\260\377"
"\256\256\256\377\251\252\252\377\246\246\246\377\242\242\242\377\236\236"
"\236\377\231\231\231\377\222\222\222\377\212\212\212\377\200\200\200\377"
"ttu\377jjj\377abb\377bbb\377XXX\377\062\062\062\377\024\024\024\377\003\003\003\377\004"
"\004\004\376+++\377bbb\277\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000ooo\001\000\000\000\000ggg\233"
"\061\061\061\377\005\005\005\376\003\003\003\377\030\030\030\377\062\062\062\377\202\202\202\377"
"\223\223\223\377\222\222\222\377\237\237\237\377\257\257\260\377\276\276"
"\276\377\310\310\310\377\316\316\316\377\320\320\320\377\320\320\320\377"
"\316\316\316\377\316\316\316\377\314\314\315\377\311\311\311\377\307\307"
"\307\377\304\304\303\377\301\301\301\377\277\276\277\377\274\274\274\377"
"\271\271\271\377\266\267\266\377\264\264\264\377\261\261\261\377\257\257"
"\257\377\254\254\254\377\252\252\251\377\246\246\246\377\241\242\241\377"
"\235\235\235\377\232\231\231\377\224\224\224\377\214\215\214\377\203\203"
"\203\377wxw\377kkk\377bcb\377___\377[[[\377\066\066\066\377\027\027\027\377\003\003"
"\003\377\005\005\005\376\061\061\061\377ggg\233\000\000\000\000ooo\001\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000xxxV>>>\377"
"\012\012\012\377\002\002\002\377\024\024\024\377\063\063\063\377\203\203\203\377\217\217"
"\217\377\224\224\224\377\243\243\243\377\265\265\265\377\306\305\305\377"
"\316\316\316\377\324\324\324\377\324\324\324\377\323\324\324\377\324\324"
"\324\377\321\321\321\377\317\317\317\377\314\313\313\377\311\311\311\377"
"\306\306\306\377\303\303\303\377\301\301\301\377\276\276\276\377\273\273"
"\273\377\270\270\270\377\266\266\266\377\263\263\263\377\260\260\260\377"
"\256\256\256\377\253\253\253\377\251\251\251\377\246\246\246\377\244\244"
"\244\377\241\241\241\377\233\234\233\377\230\227\230\377\223\224\224\377"
"\215\215\215\377\204\204\204\377xxx\377kkk\377aaa\377\\\\\\\377YYY\377\066"
"\066\066\377\024\024\024\377\002\002\002\377\012\012\012\377>>>\377yyyV\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\341\341\341\013NNN\377\021\021\021\377\001\001\001\377\020\020\020\377...\377\201\201"
"\201\377\216\216\216\377\224\224\224\377\245\245\245\377\271\271\271\377"
"\311\311\311\377\324\323\323\377\326\326\327\377\327\327\327\377\327\327"
"\330\377\326\326\325\377\323\322\323\377\317\317\317\377\314\314\314\377"
"\310\311\310\377\306\306\306\377\303\303\303\377\300\300\300\377\275\275"
"\275\377\272\272\272\377\267\267\267\377\264\264\264\377\262\262\262\377"
"\260\260\260\377\255\255\255\377\253\253\253\377\250\251\250\377\247\247"
"\247\377\244\244\244\377\242\242\242\377\237\237\240\377\235\235\235\377"
"\233\233\233\377\225\225\226\377\222\222\222\377\214\214\214\377\203\203"
"\204\377xxx\377jkk\377```\377ZZZ\377XXX\377\063\062\063\377\017\017\017\377\001\001"
"\001\377\021\021\021\377MMM\377\342\342\342\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000ppp\003\000\000\000\000^^^\325\036\036\036\377\002\002\002\377"
"\012\012\012\377'''\377ttt\377\217\217\217\377\222\222\222\377\244\244\244\377"
"\272\272\272\377\313\313\314\377\326\326\325\377\330\330\330\377\331\331"
"\331\377\330\330\330\377\325\324\324\377\321\322\322\377\315\315\315\377"
"\311\311\311\377\305\304\304\377\277\300\277\377\274\274\274\377\267\267"
"\267\377\263\263\263\377\260\260\257\377\254\254\254\377\252\252\252\377"
"\247\247\247\377\245\245\245\377\243\243\243\377\241\241\242\377\241\241"
"\241\377\240\240\240\377\237\237\237\377\235\236\236\377\235\235\235\377"
"\234\234\234\377\231\232\232\377\231\231\231\377\227\227\227\377\224\224"
"\224\377\217\217\217\377\212\212\212\377\201\201\202\377vvv\377iii\377^^"
"^\377[[[\377STS\377+++\377\012\012\012\377\002\002\002\377\036\036\036\377^^^\325\000\000"
"\000\000ppp\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000uuub\066"
"\066\066\377\006\006\006\377\005\005\005\377\040\040\040\377[[[\377\220\220\220\377\217\217"
"\217\377\240\240\240\377\270\270\270\377\312\312\312\377\326\325\326\377"
"\327\327\327\377\330\330\330\377\325\325\326\377\320\317\320\377\312\312"
"\312\377\304\304\304\377\274\274\274\377\264\264\264\377\254\254\254\377"
"\246\245\246\377\240\240\237\377\231\231\231\377\226\226\226\377\222\222"
"\222\377\217\217\217\377\214\215\215\377\212\213\212\377\211\211\211\377"
"\207\210\210\377\207\207\206\377\206\207\207\377\207\207\206\377\211\211"
"\211\377\212\212\212\377\214\214\214\377\216\216\216\377\217\217\217\377"
"\221\221\221\377\220\221\220\377\221\221\222\377\216\216\216\377\212\212"
"\212\377\207\207\207\377\177\177\177\377stt\377fee\377\\\\\\\377ZYZ\377L"
"KL\377\"\"\"\377\005\005\005\377\006\006\006\377\066\066\066\377uuub\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000jjj\003\377\377\377\002QQQ\377\020\020\020\374\002\002\002"
"\377\025\025\025\377@@@\377\216\216\216\377\212\213\212\377\233\234\233\377"
"\262\262\262\377\305\305\305\377\321\321\321\377\323\323\323\377\322\323"
"\323\377\315\315\315\377\304\303\304\377\271\271\271\377\256\256\256\377"
"\242\242\242\377\234\234\234\377\233\233\233\377\222\222\222\377\200\200"
"\200\377sss\377ggg\377]]^\377XXX\377TTT\377SSS\377RRR\377RRR\377SSS\377V"
"VV\377\\\\\\\377bbb\377jjj\377sss\377{zz\377vww\377www\377{{{\377\200\177"
"\177\377\205\204\204\377\207\207\207\377\210\210\210\377\205\205\205\377"
"\202\202\202\377zz{\377ooo\377ccb\377YYY\377YYY\377>>>\377\025\025\025\377\002"
"\002\002\377\020\020\020\374QQQ\377\377\377\377\002jjj\003\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000jjj\222***\377\003\003\003\377\011\011\011\377***\377zzz\377\211\211"
"\211\377\224\224\224\377\253\253\253\377\276\276\276\377\313\313\313\377"
"\315\315\315\377\310\310\310\377\276\276\276\377\255\255\255\377\241\241"
"\241\377\240\240\240\377\212\212\212\377sss\377TTT\377\061\061\061\377\036\036"
"\036\377\031\031\031\377\023\023\023\377\017\017\017\377\015\015\015\377\014\014\014\377"
"\014\014\014\377\014\014\014\377\014\014\014\377\014\014\014\377\015\015\015\377\016\016\016"
"\377\020\020\020\377\023\023\023\377\030\030\030\377\035\035\035\377'''\377???\377SS"
"S\377aaa\377mmm\377ooo\377ppp\377xyx\377}}}\377~~~\377}}}\377uuu\377jjj\377"
"^^^\377WWW\377UTU\377...\377\011\011\011\377\003\003\003\377***\377jjj\222\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000|||\001\306\306\306\011KKK\377\014\014\014\373\003\003\003\377"
"\031\031\031\377SSS\377\212\212\212\377\212\212\213\377\237\237\237\377\266"
"\266\265\377\301\301\301\377\302\302\302\377\267\267\267\377\246\246\246"
"\377\242\242\241\377\213\213\213\377ddd\377...\377\034\034\034\377\017\017\017"
"\377\012\012\012\377\011\011\011\377\010\010\010\377\007\007\007\377\011\011\011\377\013\013"
"\013\377\012\012\012\377\006\006\006\377\002\002\002\377\001\001\001\377\001\001\001\377\002\002\002\377\006"
"\006\006\377\012\012\012\377\013\013\013\377\012\012\012\377\011\011\011\377\010\010\010\377"
"\011\011\011\377\013\013\013\377\017\017\017\377\031\031\031\377$$$\377???\377ZZZ\377"
"ggg\377iii\377nnn\377vuu\377uuu\377ooo\377ccc\377XXX\377VVV\377GGG\377\033"
"\033\033\377\003\003\003\377\014\014\014\373KKK\377\306\306\306\011|||\001\000\000\000\000\000\000"
"\000\000\000\000\000\000jjjs---\377\004\004\004\377\012\012\012\377...\377~~~\377\204\204\205"
"\377\223\223\223\377\250\250\250\377\265\265\265\377\263\264\264\377\242"
"\243\243\377\235\235\235\377\202\202\202\377>>>\377\032\032\032\377\013\013\013"
"\377\012\012\012\377\007\007\007\377\006\006\006\377\012\012\012\377\016\016\016\377\017\017\017"
"\377\025\025\025\377%%%\377///\377\061\061\061\377\036\036\036\377\006\006\006\377\000\000\000"
"\377\000\000\000\377\004\004\004\377\027\027\027\377///\377///\377)))\377\036\036\036\377\022"
"\022\022\377\017\017\017\377\015\015\015\377\011\011\011\377\007\007\007\377\011\011\011\377"
"\014\014\014\377\025\025\025\377)))\377MMM\377``a\377bab\377jjj\377lll\377fff\377"
"\\\\\\\377TTT\377TTT\377\061\061\061\377\012\012\012\377\004\004\004\377---\377jjjs\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000VVV\365\022\022\022\377\002\002\002\377\027\027\027\377"
"PPP\377\205\205\205\377\206\206\206\377\231\231\231\377\250\250\250\377\245"
"\244\244\377\236\236\236\377\212\213\212\377???\377\025\025\025\377\017\017\017"
"\377\010\010\010\377\005\005\005\377\010\010\010\377\012\012\012\377\023\023\023\377%%%\377"
"AAA\377eee\377zzz\377}}}\377yyy\377ooo\377EEE\377\013\013\013\377\001\001\001\377"
"\000\000\000\377\011\011\011\377\063\063\063\377ddd\377kkk\377mnn\377kjk\377ccc\377M"
"MM\377\061\061\061\377!!!\377\021\021\021\377\014\014\014\377\007\007\007\377\006\006\006\377"
"\013\013\013\377\023\023\023\377(((\377NNN\377^^^\377```\377ccc\377^^^\377UVU\377"
"RRR\377FFF\377\030\030\030\377\002\002\002\377\022\022\022\377VVV\365\000\000\000\000\000\000\000\000"
"\000\000\000\000|||\062<<<\377\005\005\005\377\007\007\007\377(((\377sss\377\177\177\177\377\213"
"\213\213\377\230\231\231\377\227\227\227\377\224\224\224\377ZZZ\377\032\032"
"\032\377\017\017\017\377\006\006\006\377\004\004\004\377\011\011\011\377\017\017\017\377\"\"\""
"\377MMM\377www\377\211\211\211\377\223\223\223\377\222\222\222\377\226\227"
"\226\377\231\231\231\377\220\221\220\377~~}\377JJJ\377\017\017\017\377\001\001\001"
"\377\000\000\000\377\013\013\013\377\070\070\070\377ppp\377\177\177\177\377\206\206\206"
"\377\202\202\202\377zz{\377uuu\377rrr\377fff\377WXX\377:\071:\377\036\036\036"
"\377\017\017\017\377\010\010\010\377\005\005\005\377\013\013\013\377\026\026\026\377\063\063"
"\063\377WWW\377WWW\377[[[\377VVV\377QQQ\377PPO\377+++\377\007\007\007\377\005\005\005"
"\377<<<\377|||\062\000\000\000\000\000\000\000\000eee\215%%%\377\001\001\001\377\020\020\020\377=="
"=\377\202\202\202\377~~~\377\211\211\211\377\212\212\212\377\211\211\211"
"\377\066\066\066\377\023\023\023\377\010\010\010\377\003\003\003\377\007\007\007\377\020\020\020"
"\377'''\377ggg\377\212\212\212\377\224\223\224\377\230\230\230\377\244\244"
"\244\377\253\253\253\377\260\261\260\377\262\262\262\377\257\257\257\377"
"\242\242\242\377\212\213\213\377LLL\377\017\017\017\377\001\001\001\377\001\001\001\377"
"\013\013\013\377:::\377zzz\377\215\215\215\377\230\230\230\377\230\230\230\377"
"\224\223\223\377\215\215\215\377\206\206\206\377{{{\377ppp\377kkk\377```"
"\377HHH\377\040\040\040\377\017\017\017\377\006\006\006\377\005\005\005\377\020\020\020\377\""
"\"\"\377NNN\377RRR\377SSS\377PPP\377PPP\377<<<\377\020\020\020\377\001\001\001\377"
"%%%\377eee\215\000\000\000\000\000\000\000\000WWW\364\021\021\021\377\003\003\003\377\033\033\033\377"
"^^^\377|||\377|||\377\177\177\177\377\200\200\200\377***\377\016\016\016\377"
"\005\005\005\377\004\004\004\377\015\015\015\377\034\034\034\377aaa\377\220\220\220\377\224"
"\224\224\377\243\243\243\377\256\256\256\377\265\265\265\377\271\271\271"
"\377\273\273\273\377\273\273\273\377\272\272\272\377\265\265\266\377\246"
"\247\247\377\215\215\215\377MMM\377\017\017\017\377\001\001\001\377\001\001\001\377\013\013"
"\013\377:::\377}||\377\221\221\221\377\235\235\235\377\236\236\236\377\234"
"\234\234\377\230\230\231\377\223\223\224\377\216\216\216\377\207\210\207"
"\377\177~~\377rrr\377fgf\377___\377???\377\030\030\030\377\011\011\011\377\004\004"
"\004\377\012\012\012\377\036\036\036\377KKK\377KKK\377MMM\377MMM\377III\377\036\036"
"\036\377\003\003\003\377\021\021\021\377WWW\364\000\000\000\000\245\245\245\026CCC\377\006\006\006"
"\377\007\007\007\377'''\377rrr\377uuu\377vvv\377|||\377\062\062\062\377\015\015\015\377"
"\003\003\003\377\005\005\005\377\017\017\017\377\066\066\066\377\205\205\205\377\222\222\222"
"\377\242\242\242\377\261\261\261\377\271\271\271\377\275\274\275\377\276"
"\277\276\377\277\277\277\377\276\276\276\377\274\275\275\377\273\273\273"
"\377\265\265\265\377\246\246\246\377\215\215\215\377LLL\377\017\017\017\377"
"\001\001\001\377\001\001\001\377\013\013\013\377:\071:\377|||\377\220\221\220\377\236\236"
"\236\377\237\237\236\377\235\234\235\377\232\233\232\377\227\227\227\377"
"\224\224\224\377\220\220\220\377\213\213\213\377\205\205\205\377{{{\377l"
"lm\377aaa\377RRR\377\"\"\"\377\014\014\014\377\004\004\004\377\012\012\012\377###\377"
"JJJ\377GGG\377IIJ\377MMM\377+++\377\007\007\007\377\006\006\006\377CCC\377\245\245\245"
"\026rrrS\062\062\062\377\002\002\002\377\016\016\016\377\070\070\070\377www\377qqq\377pp"
"p\377PPP\377\021\021\021\377\004\004\004\377\005\005\005\377\020\020\020\377III\377\216\216"
"\215\377\230\227\227\377\254\254\254\377\267\267\270\377\275\275\275\377"
"\277\277\300\377\300\300\300\377\300\277\300\377\276\276\276\377\274\274"
"\274\377\273\273\273\377\271\271\271\377\263\263\263\377\244\244\244\377"
"\213\213\213\377LLL\377\017\017\017\377\001\001\001\377\001\001\001\377\013\013\013\377\071"
"\071\071\377zzz\377\220\220\220\377\233\233\233\377\235\235\235\377\234\234"
"\234\377\231\231\232\377\227\227\227\377\225\225\225\377\221\221\221\377"
"\216\216\216\377\213\214\213\377\205\205\205\377~~~\377qqq\377___\377XXX"
"\377&&&\377\015\015\015\377\003\003\003\377\017\017\017\377\064\064\064\377EEE\377FFF\377"
"LLL\377\067\067\067\377\016\016\016\377\002\002\002\377\062\062\062\377rrrSeee\205$$$\377"
"\001\001\001\377\026\026\026\377EEE\377xwx\377kkk\377ooo\377\036\036\036\377\010\010\010"
"\377\004\004\004\377\022\022\022\377HHH\377\215\215\215\377\232\232\232\377\260\260"
"\260\377\272\272\272\377\276\276\276\377\277\277\300\377\277\277\277\377"
"\277\277\277\377\275\275\275\377\274\274\274\377\273\273\273\377\271\271"
"\271\377\266\266\266\377\261\261\261\377\242\242\242\377\211\211\212\377"
"LLK\377\017\017\017\377\001\001\001\377\001\001\001\377\013\013\013\377\071\071\071\377yyy\377"
"\216\216\216\377\232\231\232\377\233\234\233\377\232\233\233\377\230\230"
"\230\377\226\226\226\377\224\223\224\377\221\221\221\377\217\217\217\377"
"\214\214\214\377\210\210\210\377\204\204\204\377}||\377qqq\377]]]\377SSS"
"\377\"\"\"\377\011\011\011\377\006\006\006\377\034\034\034\377BBB\377CBC\377III\377@"
"@@\377\025\025\025\377\001\001\001\377$$$\377eee\205\\\\\\\257\031\031\031\377\001\001\001"
"\377\033\033\033\377VVV\377qqq\377iii\377STS\377\024\024\024\377\004\004\004\377\015\015"
"\015\377\063\062\063\377\210\210\210\377\226\226\226\377\257\257\257\377\272"
"\272\272\377\275\275\275\377\277\276\276\377\276\276\276\377\275\275\275"
"\377\274\274\274\377\274\273\273\377\272\272\272\377\270\270\270\377\266"
"\266\266\377\265\265\265\377\257\257\257\377\240\240\240\377\210\210\210"
"\377KJK\377\016\016\016\377\001\001\001\377\001\001\001\377\013\013\013\377\071\071\071\377xx"
"x\377\215\214\214\377\230\230\230\377\233\232\232\377\232\231\231\377\226"
"\226\226\377\225\225\225\377\222\222\222\377\220\217\217\377\215\216\215"
"\377\213\213\213\377\211\211\211\377\205\205\205\377\201\201\201\377zzz\377"
"mmm\377WWW\377III\377\024\024\024\377\005\005\005\377\021\021\021\377\071\071\071\377AA"
"A\377FFF\377FFF\377\034\034\034\377\001\001\001\377\031\031\031\377\\\\\\\257VVV\315"
"\022\022\022\377\003\003\003\377\040\040\040\377aaa\377nmm\377hhh\377FFF\377\016\016\016"
"\377\005\005\005\377\022\022\022\377rqr\377\211\211\210\377\247\247\247\377\266\266"
"\266\377\273\273\273\377\274\274\274\377\274\274\274\377\274\274\274\377"
"\273\273\273\377\272\272\272\377\271\271\270\377\267\267\267\377\266\266"
"\266\377\265\265\265\377\263\263\263\377\255\255\255\377\236\236\236\377"
"\207\207\207\377HHH\377\016\016\016\377\001\001\001\377\001\001\001\377\013\013\013\377\070"
"\070\070\377vvv\377\212\213\212\377\227\227\227\377\231\231\231\377\227\227"
"\227\377\226\226\226\377\223\223\223\377\220\221\220\377\216\217\217\377"
"\214\214\214\377\211\211\211\377\210\210\210\377\204\205\205\377\202\201"
"\202\377}}}\377sts\377bbb\377RRR\377(((\377\010\010\010\377\014\014\014\377\063"
"\064\063\377@@@\377EEE\377HHH\377\"\"\"\377\003\003\003\377\022\022\022\377VVV\315Q"
"QQ\350\016\016\016\377\004\004\004\377$$$\377hhh\377kkk\377hgh\377BBB\377\015\015\015"
"\377\010\010\010\377...\377~~~\377\227\227\227\377\257\257\257\377\270\270\270"
"\377\273\273\273\377\273\273\273\377\272\272\273\377\271\271\271\377\270"
"\270\270\377\267\267\267\377\266\266\266\377\266\266\266\377\264\264\264"
"\377\262\263\263\377\260\260\260\377\253\253\253\377\235\235\235\377\205"
"\205\205\377GGG\377\016\016\016\377\001\001\001\377\001\001\001\377\013\013\013\377\070\070\070"
"\377uuu\377\211\211\211\377\226\226\226\377\227\227\227\377\226\226\226\377"
"\224\224\224\377\222\221\222\377\217\217\217\377\215\215\215\377\212\212"
"\212\377\211\211\211\377\206\206\206\377\204\203\204\377\202\202\202\377"
"~~~\377www\377jii\377UUU\377\070\070\070\377\015\015\015\377\014\014\014\377\062\062"
"\062\377@@@\377DDD\377III\377'''\377\004\004\004\377\016\016\016\377QQQ\350OOO\370"
"\012\012\012\377\005\005\005\377(((\377mmm\377kkk\377jjj\377JJJ\377\017\017\017\377\013"
"\013\013\377;;;\377\202\202\202\377\235\235\235\377\261\261\261\377\267\267"
"\267\377\270\270\270\377\267\270\270\377\267\267\267\377\267\266\266\377"
"\266\266\266\377\265\265\265\377\264\264\265\377\263\263\263\377\261\261"
"\261\377\260\257\260\377\256\256\256\377\251\251\251\377\232\232\233\377"
"\204\204\204\377GGG\377\016\016\016\377\001\001\001\377\001\001\001\377\013\013\013\377\067"
"\067\067\377tts\377\210\210\210\377\224\224\224\377\225\225\225\377\225\225"
"\225\377\222\222\222\377\220\220\220\377\216\216\216\377\213\213\213\377"
"\211\211\211\377\210\207\207\377\205\205\205\377\203\203\203\377\200\200"
"\200\377}}}\377xxx\377kkk\377VVV\377@@@\377\020\020\020\377\017\017\017\377\066"
"\065\066\377AAA\377EEE\377III\377,,,\377\005\005\005\377\012\012\012\377OOO\370LLL\377"
"\011\011\011\377\006\006\006\377***\377lll\377lll\377lll\377___\377\027\027\027\377\015"
"\015\015\377\070\070\070\377\200\201\201\377\232\232\232\377\256\256\256\377\264"
"\264\264\377\266\266\266\377\266\266\266\377\265\265\265\377\264\264\264"
"\377\263\263\263\377\263\263\262\377\261\261\261\377\260\260\260\377\257"
"\257\257\377\256\256\256\377\254\254\254\377\247\247\247\377\231\231\231"
"\377\202\202\202\377HGG\377\016\016\016\377\001\001\001\377\001\001\001\377\013\013\013\377"
"\067\067\067\377rrr\377\206\206\206\377\222\222\222\377\225\225\224\377\223"
"\223\223\377\220\220\220\377\217\217\217\377\214\214\214\377\211\211\211"
"\377\211\210\211\377\206\206\206\377\203\203\203\377\201\201\201\377\177"
"\177\177\377{{{\377vvv\377jii\377VVV\377===\377\021\021\021\377\026\026\026\377"
">>>\377CCC\377FFF\377JJJ\377---\377\007\007\007\377\011\011\011\377LLL\377LLL\377"
"\011\011\011\377\006\006\006\377***\377lll\377mmm\377ppp\377uuu\377---\377\021\021\021"
"\377'''\377|||\377\217\217\217\377\247\247\247\377\260\257\260\377\263\263"
"\263\377\262\262\262\377\262\262\262\377\261\261\261\377\260\260\260\377"
"\260\260\260\377\257\257\257\377\256\256\256\377\255\255\255\377\253\253"
"\253\377\251\251\251\377\245\245\245\377\227\227\227\377\200\200\200\377"
"GGG\377\016\016\016\377\001\001\001\377\001\001\001\377\013\013\013\377\067\067\067\377qqq\377"
"\205\205\205\377\221\221\221\377\223\222\222\377\221\221\221\377\217\217"
"\217\377\215\215\215\377\212\212\212\377\210\210\210\377\207\207\207\377"
"\204\204\204\377\202\202\202\377\177\200\200\377}}}\377zzz\377rrr\377ddd"
"\377TST\377\062\062\062\377\023\023\023\377'''\377HHH\377FGF\377GGG\377III\377"
"...\377\006\006\006\377\011\011\011\377LLL\377OOO\370\012\012\012\377\005\005\005\377)))\377"
"jjj\377mnm\377uuu\377vvv\377ggg\377\032\032\032\377\026\026\026\377fff\377\202"
"\202\202\377\233\233\234\377\251\251\251\377\255\255\255\377\257\257\257"
"\377\260\257\257\377\257\257\257\377\256\256\256\377\255\255\255\377\254"
"\254\255\377\253\253\253\377\252\252\252\377\251\251\251\377\247\247\247"
"\377\242\242\242\377\224\225\225\377~~~\377HHH\377\017\017\017\377\001\001\001\377"
"\001\001\001\377\013\013\013\377\067\067\067\377ooo\377\203\204\203\377\216\216\217\377"
"\220\220\220\377\217\217\217\377\216\215\215\377\212\213\213\377\211\211"
"\211\377\207\210\210\377\205\205\205\377\203\203\203\377\200\201\200\377"
"~~~\377zz{\377vvu\377lkl\377ZZZ\377QQQ\377!!!\377\034\034\034\377CCC\377HHH"
"\377KKK\377HHH\377III\377,,,\377\005\005\005\377\012\012\012\377OOO\370QQQ\350\016"
"\016\016\377\004\004\004\377%%%\377eee\377mmm\377www\377\177\177\177\377~~~\377Q"
"QQ\377\035\035\035\377---\377\177\177\177\377\211\211\211\377\235\236\235\377"
"\247\247\247\377\252\252\252\377\254\254\254\377\254\254\254\377\253\253"
"\253\377\252\252\252\377\252\252\251\377\251\251\251\377\250\250\250\377"
"\246\247\246\377\245\244\244\377\240\240\240\377\223\223\223\377}}}\377H"
"HH\377\017\017\017\377\001\001\001\377\001\001\001\377\013\013\013\377\067\067\067\377oon\377"
"\201\201\201\377\214\215\214\377\217\216\217\377\216\216\216\377\213\213"
"\213\377\211\211\211\377\210\210\210\377\205\205\205\377\203\203\203\377"
"\201\201\202\377~~~\377{{{\377wwv\377nnn\377aba\377VVV\377\070\070\070\377\040"
"\040\040\377:::\377MMM\377OOP\377MMM\377HHH\377IHI\377()(\377\004\004\004\377\016"
"\016\016\377QQQ\350VVV\315\022\022\022\377\003\003\003\377!!!\377^^^\377mmm\377vvv\377"
"\205\205\205\377\205\205\205\377\202\202\202\377NNN\377\040\040\040\377AAA\377"
"\205\205\205\377\212\212\212\377\233\233\233\377\243\242\243\377\246\246"
"\246\377\250\250\250\377\251\251\251\377\251\250\250\377\247\250\247\377"
"\246\246\246\377\245\245\245\377\244\243\244\377\242\242\242\377\236\236"
"\236\377\221\221\220\377zzz\377GGG\377\020\020\020\377\001\001\001\377\001\001\001\377\013"
"\013\013\377\067\067\067\377mnm\377\200\200\200\377\213\213\213\377\215\215\215"
"\377\213\214\214\377\211\211\211\377\210\210\210\377\206\206\206\377\203"
"\204\203\377\201\202\201\377~~~\377{{{\377vvv\377ooo\377dcc\377YYY\377FF"
"F\377'''\377:::\377QQQ\377RRQ\377TTT\377MMM\377HHH\377HHH\377###\377\003\003"
"\003\377\022\022\022\377VVV\315\\\\\\\257\031\031\031\377\001\001\001\377\034\034\034\377"
"SSS\377mmm\377ttt\377\206\206\206\377\217\217\217\377\210\210\210\377\201"
"\201\201\377]]]\377&&&\377EEE\377\210\210\210\377\214\214\214\377\226\226"
"\226\377\236\236\236\377\242\243\242\377\244\244\244\377\244\244\244\377"
"\244\244\244\377\243\243\243\377\243\243\243\377\242\242\242\377\240\240"
"\240\377\233\233\233\377\216\216\216\377yyy\377FFF\377\017\017\017\377\001\001\001"
"\377\001\001\001\377\013\013\013\377\067\067\067\377kkk\377~~\177\377\212\212\211\377"
"\213\213\213\377\212\211\212\377\211\211\210\377\206\206\206\377\203\203"
"\203\377\201\201\201\377~~~\377zzz\377vvv\377ooo\377ddd\377```\377HHH\377"
",,,\377CCC\377SSR\377TTT\377YYY\377UUU\377MLL\377GGG\377EEE\377\035\035\035"
"\377\001\001\001\377\031\031\031\377\\\\\\\257eee\205$$$\377\001\001\001\377\026\026\026\377"
"EEE\377nnn\377qqq\377\201\201\201\377\221\221\221\377\225\225\225\377\213"
"\213\213\377\203\203\203\377www\377<;<\377\067\067\067\377|{|\377\215\215\215"
"\377\220\217\220\377\226\226\226\377\234\234\234\377\236\237\237\377\240"
"\237\237\377\241\241\241\377\240\240\240\377\240\237\237\377\235\235\235"
"\377\231\231\231\377\215\215\215\377www\377FFF\377\017\017\017\377\001\001\001\377"
"\001\001\001\377\013\013\013\377\066\066\066\377jjj\377}}}\377\207\207\210\377\211\211"
"\211\377\211\211\211\377\205\206\206\377\203\203\203\377\200\200\200\377"
"}}}\377yyy\377sss\377llk\377fff\377`_`\377???\377\067\067\067\377SSS\377VVV"
"\377XXX\377^^^\377\\[\\\377TST\377KKK\377GGG\377AAA\377\025\025\025\377\001\001"
"\001\377$$$\377eee\205rrrS\062\062\062\377\002\002\002\377\016\016\016\377\070\070\070\377"
"jjj\377mmm\377|}|\377\216\216\216\377\230\230\230\377\226\227\227\377\221"
"\221\221\377\206\206\206\377\210\210\210\377kkk\377\070\070\070\377SSS\377\205"
"\205\205\377\216\216\217\377\221\221\221\377\224\224\223\377\230\230\230"
"\377\233\233\233\377\234\234\234\377\234\234\234\377\233\233\233\377\227"
"\227\227\377\212\212\212\377uuu\377EEE\377\020\020\020\377\001\001\001\377\001\001\001\377"
"\013\013\013\377\066\066\066\377iii\377{{{\377\206\206\206\377\207\207\207\377"
"\206\206\206\377\202\202\202\377\200\177\200\377z{z\377uuu\377opp\377lll"
"\377gfg\377OOO\377;;;\377OOO\377\\\\\\\377ZZZ\377_^_\377a``\377aaa\377[Z"
"[\377RRR\377III\377HHH\377\070\070\070\377\016\016\016\377\002\002\002\377\062\062\062\377"
"rrrS\245\245\245\026CCC\377\006\006\006\377\007\007\007\377***\377ccc\377hhh\377uuu\377"
"\210\210\210\377\226\226\225\377\232\232\231\377\232\232\232\377\225\225"
"\225\377\215\215\215\377\207\207\207\377\212\211\211\377nnn\377JJJ\377TT"
"T\377zzz\377\217\217\217\377\222\222\222\377\225\225\225\377\230\231\231"
"\377\231\232\231\377\230\230\230\377\224\224\224\377\210\210\210\377tst\377"
"DDD\377\020\020\020\377\001\001\001\377\001\001\001\377\013\013\013\377\066\066\066\377ggg\377"
"yyy\377\204\204\204\377\205\205\204\377\203\203\203\377\200\200\200\377{"
"{{\377vuv\377ppp\377gfg\377PPP\377FFF\377TUU\377aaa\377^^^\377aaa\377ddc"
"\377eee\377ddd\377```\377YYY\377NNN\377GGG\377GGG\377---\377\007\007\007\377\006"
"\006\006\377CCC\377\245\245\245\026\000\000\000\000WWW\364\021\021\021\377\003\003\003\377\034\034"
"\034\377UUU\377hhg\377ooo\377\200\200\200\377\220\220\220\377\230\230\230"
"\377\231\231\231\377\232\232\232\377\226\226\227\377\222\222\222\377\215"
"\215\215\377\211\211\211\377\212\212\212\377\203\203\203\377eee\377ZZZ\377"
"eee\377\223\223\223\377\225\224\225\377\226\226\226\377\225\225\225\377\222"
"\223\223\377\206\206\206\377rrr\377DDD\377\020\020\020\377\001\001\001\377\001\001\001\377"
"\013\013\013\377\066\066\066\377fff\377xxx\377\201\201\201\377\203\203\203\377"
"\201\201\201\377~}~\377z{z\377^]^\377SSS\377TTT\377ccc\377ggg\377ddd\377"
"ddd\377fgg\377hgh\377ggg\377fef\377ccc\377^^^\377UUU\377KKK\377EFF\377FF"
"F\377\036\036\036\377\003\003\003\377\021\021\021\377WWW\364\000\000\000\000\000\000\000\000eee\215%"
"%%\377\001\001\001\377\020\020\020\377===\377hhh\377iii\377www\377\210\210\210\377"
"\224\224\224\377\230\230\230\377\232\232\232\377\232\231\231\377\230\230"
"\230\377\225\225\225\377\222\223\222\377\216\216\216\377\213\213\213\377"
"\214\214\214\377\214\214\214\377\215\215\215\377\220\220\220\377\223\223"
"\223\377\224\224\224\377\223\223\223\377\220\220\220\377\204\205\205\377"
"qqq\377DDD\377\020\020\020\377\001\001\001\377\001\001\001\377\014\014\014\377\066\066\067\377"
"ggg\377vvv\377\200\177\200\377\201\201\201\377\177\177\177\377|||\377www"
"\377sss\377ooo\377lll\377jjj\377jjj\377jjj\377kkk\377jkj\377iii\377hhh\377"
"ddd\377aaa\377ZZZ\377PPP\377HHH\377FFF\377===\377\020\020\020\377\001\001\001\377"
"%%%\377eee\215\000\000\000\000\000\000\000\000|||\062<<<\377\005\005\005\377\007\007\007\377***\377__"
"_\377eee\377noo\377\177\177\177\377\215\214\214\377\224\224\224\377\226\226"
"\226\377\230\230\230\377\227\227\227\377\226\225\226\377\225\225\225\377"
"\223\223\223\377\222\222\222\377\220\220\220\377\217\217\217\377\217\217"
"\217\377\221\221\221\377\222\222\222\377\222\222\222\377\221\221\221\377"
"\215\215\215\377\203\203\203\377ppp\377MMM\377\022\022\022\377\002\002\002\377\001\001"
"\001\377\017\017\017\377>>>\377ggg\377vwv\377\177~~\377\177\177\177\377~~~\377"
"z{z\377xyx\377tts\377qqq\377pqp\377ooo\377nnn\377nnn\377lll\377jjj\377ii"
"i\377fee\377ccc\377]]]\377UUU\377KKL\377FFF\377GGG\377,,,\377\007\007\007\377\005"
"\005\005\377<<<\377|||\062\000\000\000\000\000\000\000\000\000\000\000\000VVV\365\022\022\022\377\002\002\002\377"
"\030\030\030\377III\377eee\377hhg\377uuu\377\205\205\205\377\217\217\217\377"
"\222\222\222\377\225\226\226\377\226\226\226\377\226\226\226\377\225\225"
"\225\377\224\224\224\377\223\223\223\377\222\222\222\377\221\221\221\377"
"\220\220\220\377\220\220\220\377\220\220\220\377\220\220\220\377\217\217"
"\217\377\213\213\214\377\204\204\203\377ppp\377YYY\377\025\025\025\377\003\003\003"
"\377\002\002\002\377\023\023\023\377MMM\377fff\377www\377}}}\377}}}\377|||\377zzz"
"\377wwx\377uuu\377sss\377qqq\377oop\377noo\377mmm\377kkk\377iii\377ggg\377"
"cbb\377```\377ZYY\377PPP\377HHH\377EEE\377CCC\377\031\031\031\377\002\002\002\377"
"\022\022\022\377VVV\365\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000jjjs---\377\004\004\004\377"
"\012\012\012\377\061\061\061\377```\377bbb\377lll\377{{|\377\210\210\207\377\217"
"\217\216\377\220\220\220\377\223\223\223\377\223\223\223\377\223\222\222"
"\377\222\222\222\377\222\222\222\377\221\220\221\377\220\220\220\377\217"
"\217\217\377\217\217\217\377\217\217\217\377\216\216\216\377\215\215\215"
"\377\211\212\212\377\203\203\203\377qqq\377aaa\377\033\033\033\377\005\005\005\377"
"\004\004\004\377\027\027\027\377XXX\377fff\377vvw\377{{{\377|||\377zzz\377xxx\377"
"vvv\377uuu\377sss\377qqp\377poo\377nnn\377kll\377iij\377hhh\377ddd\377aa"
"a\377\\]\\\377TTT\377LKK\377FFF\377GGG\377\063\063\063\377\012\012\012\377\004\004"
"\004\377---\377jjjs\000\000\000\000\000\000\000\000\000\000\000\000|||\001\306\306\306\011KKK\377\014\014"
"\014\373\003\003\003\377\032\032\032\377KJJ\377bcb\377ddd\377ppp\377~~~\377\207\207"
"\207\377\214\214\214\377\216\216\216\377\220\220\220\377\217\220\220\377"
"\217\217\217\377\217\217\217\377\217\217\217\377\216\216\216\377\216\216"
"\216\377\215\215\215\377\214\214\214\377\213\213\213\377\212\212\212\377"
"\210\210\210\377\203\202\203\377sts\377```\377***\377\007\007\007\377\006\006\006\377"
"\"\"\"\377[\\\\\377ihh\377vvv\377zzz\377zyy\377xxx\377vvv\377uuu\377sss\377"
"qpq\377opo\377mnm\377lkl\377jjj\377hhh\377ede\377a`a\377^^^\377WWW\377NN"
"N\377GGG\377DDD\377CCC\377\033\033\033\377\003\003\003\377\014\014\014\373KKK\377\306"
"\306\306\011|||\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000jjj\222***\377\003\003\003\377"
"\011\011\011\377---\377\\\\\\\377```\377ggg\377tst\377\177\177\177\377\207\207"
"\207\377\212\212\212\377\215\215\215\377\216\216\216\377\215\215\215\377"
"\215\214\215\377\214\214\214\377\214\213\214\377\213\213\213\377\212\212"
"\212\377\211\211\211\377\211\211\211\377\210\210\210\377\205\205\206\377"
"\201\201\201\377uuu\377```\377\066\066\066\377\013\013\013\377\012\012\012\377\061"
"\061\061\377ZZZ\377lll\377vvv\377www\377www\377vvv\377ttt\377rrr\377ppp\377"
"ooo\377nmn\377lkl\377jij\377hhh\377fee\377aaa\377___\377YYY\377QQQ\377II"
"I\377EEE\377GGG\377///\377\011\011\011\377\003\003\003\377***\377jjj\222\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000jjj\003\377\377\377\002QQQ\377\020\020\020\374\002\002"
"\002\377\025\025\025\377>>>\377```\377_^_\377ghh\377ttt\377~~~\377\205\205\205"
"\377\206\206\206\377\211\211\211\377\212\212\212\377\211\212\212\377\211"
"\211\211\377\211\210\210\377\210\211\211\377\210\210\210\377\207\207\207"
"\377\206\206\206\377\205\205\205\377\203\203\203\377\200\200\200\377vwv\377"
"bcb\377@@@\377\020\020\020\377\017\017\017\377<<<\377]]]\377mmm\377ttt\377vvv\377"
"vuv\377tst\377rrr\377ppp\377ooo\377mll\377jkk\377iii\377hhh\377fee\377aa"
"a\377___\377YZY\377RRR\377KKK\377FEF\377DDD\377>>>\377\025\025\025\377\002\002\002"
"\377\020\020\020\374QQQ\377\377\377\377\002jjj\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000uuub\066\066\066\377\006\006\006\377\005\005\005\377\"\"\"\377NNN\377"
"___\377___\377hih\377ttt\377}}}\377\204\204\204\377\204\204\204\377\207\207"
"\207\377\207\207\207\377\207\207\207\377\206\206\206\377\206\206\205\377"
"\205\205\205\377\204\204\204\377\204\204\203\377\203\203\203\377\201\201"
"\202\377~~~\377vvv\377ccc\377KKK\377\025\025\025\377\024\024\024\377GHG\377^]^"
"\377nnm\377tts\377ttu\377sss\377qqq\377ppp\377nnn\377lll\377jjj\377iii\377"
"hhh\377eee\377aaa\377___\377ZZZ\377SSS\377LKL\377GGF\377DDD\377EEE\377\""
"\"\"\377\005\005\005\377\006\006\006\377\066\066\066\377uuub\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000ppp\003\000\000\000\000^^^\325\036\036\036\377\002\002\002\377\012"
"\012\012\377+++\377UUU\377\\\\\\\377^^^\377fgg\377rrr\377zzz\377\200\177\200"
"\377\201\201\201\377\202\202\202\377\204\204\204\377\204\204\204\377\203"
"\203\203\377\203\202\203\377\202\202\202\377\201\201\201\377\200\200\200"
"\377\177\177~\377|||\377vvv\377ede\377UUU\377\033\033\033\377\033\033\033\377R"
"RR\377``_\377non\377rrr\377rqr\377qpp\377pop\377mmm\377lll\377jjj\377iii"
"\377ggg\377ddd\377aaa\377___\377ZYY\377SSS\377LLL\377FFF\377CCC\377FFF\377"
"---\377\012\012\012\377\002\002\002\377\036\036\036\377^^^\325\000\000\000\000ppp\003\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\341\341\341\013NNN"
"\377\021\021\021\377\001\001\001\377\017\017\017\377\062\062\062\377XXX\377YZY\377]]]\377"
"fff\377ooo\377wxw\377}}}\377~~~\377\177\177\177\377\201\201\201\377\201\201"
"\201\377\200\200\200\377\177\177\177\377~~~\377}}}\377||}\377z{{\377uuv\377"
"fff\377[[[\377%%%\377%%%\377YYY\377bbb\377mmm\377ppp\377ppp\377ooo\377mm"
"m\377kkk\377iii\377ihi\377fff\377ccc\377aaa\377^^^\377YYY\377SSS\377LLL\377"
"GGG\377CCC\377FFF\377\064\064\064\377\017\017\017\377\001\001\001\377\021\021\021\377MM"
"M\377\342\342\342\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000xxxV>>>\377\012\012\012\377\002\002\002\377\024"
"\024\024\377\066\066\066\377VWV\377XXX\377[[[\377bbb\377kkl\377sss\377www\377"
"zzz\377{{{\377|||\377}}}\377|||\377|||\377{{{\377{{z\377xxx\377ttt\377hh"
"h\377[[[\377\064\064\064\377\066\066\066\377XXX\377ddd\377lll\377nnn\377nnn\377"
"lll\377jjj\377iii\377hhh\377dde\377aaa\377```\377\\]\\\377XXX\377RRR\377"
"KKL\377FFF\377CCC\377EEE\377\070\070\070\377\024\024\024\377\002\002\002\377\012\012\012"
"\377>>>\377yyyV\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000ooo\001\000\000\000\000ggg\233\061\061\061\377\005\005\005\376"
"\003\003\003\377\027\027\027\377\067\067\067\377VVV\377WWW\377YYY\377___\377ggg\377o"
"no\377ttt\377wvw\377xxw\377xxx\377xyy\377yyy\377xxx\377wwx\377vvv\377sss"
"\377jjj\377]]]\377AAA\377BBB\377[[[\377efe\377llk\377lll\377llk\377jjj\377"
"iii\377fff\377ccc\377aaa\377___\377\\\\\\\377WVV\377QQQ\377KKK\377FFF\377"
"CCC\377FFF\377\070\070\070\377\027\027\027\377\003\003\003\377\005\005\005\376\061\061\061\377"
"ggg\233\000\000\000\000ooo\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000bbb\277+++\377\004\004\004"
"\376\003\003\003\377\024\024\024\377\062\062\062\377RRR\377WWW\377VVV\377[[[\377aaa\377"
"hhh\377mmm\377qqq\377sss\377ttt\377ttt\377ttt\377ttt\377sst\377qqq\377kk"
"k\377aaa\377MLL\377NNN\377^^^\377fff\377iii\377iii\377hhh\377fff\377ccc\377"
"bbb\377```\377]\\\\\377YYY\377TTS\377NNN\377III\377EEE\377CCC\377FFF\377"
"\064\064\064\377\024\024\024\377\003\003\003\377\004\004\004\376+++\377bbb\277\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000bbb\315+++\377\005\005\005"
"\376\001\001\001\377\020\020\020\377+++\377KKK\377VVV\377TTT\377VVV\377[[[\377``a"
"\377fff\377jjj\377llm\377ooo\377ooo\377ooo\377ooo\377mmm\377iii\377bbb\377"
"VUU\377XWW\377^__\377ccd\377eee\377fff\377ddd\377aba\377`_`\377]]]\377YY"
"Y\377TTT\377OOO\377JJK\377GGG\377DDD\377DDD\377EEE\377---\377\020\020\020\377"
"\001\001\001\377\005\005\005\376+++\377bbb\315\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000bbb\277\061\061\061\377\012\012\012\377"
"\001\001\001\377\012\012\012\377!!!\377???\377RRR\377SSS\377SSS\377TTT\377XXX\377"
"\\\\\\\377```\377ccc\377fff\377hhh\377hhh\377hhh\377fff\377bcc\377]]]\377"
"___\377`__\377bbb\377aaa\377___\377]]]\377[[[\377WWW\377SSS\377OOO\377KK"
"K\377GHH\377EEE\377CCD\377FFF\377>>>\377\"\"\"\377\012\012\012\377\001\001\001\377"
"\012\012\012\377\061\061\061\377bbb\277\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000ggg\233>>>\377\021"
"\021\021\377\002\002\002\377\005\005\005\377\025\025\025\377...\377FFF\377QQQ\377QQQ\377P"
"PP\377RRR\377TTT\377WXW\377ZZZ\377\\\\\\\377^]]\377^^^\377\\\\\\\377\\\\"
"\\\377[[[\377ZZZ\377YYY\377YYY\377XXX\377WWW\377TTT\377QPP\377NNN\377JJJ"
"\377HGG\377EEE\377DCD\377FFF\377CCC\377///\377\025\025\025\377\005\005\005\377\002\002"
"\002\377\021\021\021\377>>>\377ggg\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"xxxVNNN\377\036\036\036\377\006\006\006\377\001\001\001\377\011\011\011\377\033\033\033\377\062"
"\062\062\377EEE\377OOO\377PPP\377NNN\377NNN\377OOO\377PPP\377QQQ\377RRR\377"
"RRR\377QRR\377QRQ\377QQQ\377PPP\377OOO\377NNN\377LLL\377JJJ\377HHH\377FF"
"F\377EEE\377EEE\377FFF\377CCC\377\063\063\063\377\034\034\034\377\011\011\011\377"
"\001\001\001\377\006\006\006\377\036\036\036\377NNN\377xxxV\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000ooo\001\000\000\000\000\341\341\341\013^^^\325\066\066\066\377\020\020\020\374"
"\002\002\002\377\003\003\003\377\012\012\012\377\030\030\030\377+++\377===\377III\377MMM\377"
"NNN\377LLL\377KKK\377KKK\377KKK\377KJJ\377JJJ\377JJJ\377III\377HHH\377GG"
"G\377GGF\377FFF\377GGG\377GGG\377EEE\377===\377,,,\377\031\031\031\377\012\012"
"\012\377\003\003\003\377\002\002\002\377\020\020\020\374\066\066\066\377^^^\325\341\341\341"
"\013\000\000\000\000ooo\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000uuubQQQ\377***\377\014\014\014\373\003\003\003\377\002\002\002\377\007\007\007\377\020"
"\020\020\377\036\036\036\377,,,\377\070\070\070\377BBB\377GGG\377III\377III\377J"
"JJ\377JJJ\377IIJ\377HHH\377HHH\377GGG\377EEE\377AAA\377\070\070\070\377---\377"
"\036\036\036\377\020\020\020\377\007\007\007\377\002\002\002\377\003\003\003\377\014\014\014\373***"
"\377QQQ\377uuub\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000ppp\003\000\000\000\000\377\377\377\002jjj\222LLL\377-"
"--\377\022\022\022\377\005\005\005\377\001\001\001\377\003\003\003\377\007\007\007\377\016\016\016\377"
"\025\025\025\377\035\035\035\377###\377)))\377,,,\377...\377...\377---\377)))\377"
"###\377\035\035\035\377\025\025\025\377\016\016\016\377\007\007\007\377\003\003\003\377\001\001\001"
"\377\005\005\005\377\022\022\022\377---\377LLL\377jjj\222\377\377\377\002\000\000\000\000pp"
"p\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000jjj\003\000\000\000\000\306\306\306\011jjjsVVV\365===\377"
"$$$\377\021\021\021\377\006\006\006\377\002\002\002\377\001\001\001\377\001\001\001\377\003\003\003\377\005"
"\005\005\377\005\005\005\377\006\006\006\377\006\006\006\377\005\005\005\377\005\005\005\377\003\003\003\377\001\001"
"\001\377\001\001\001\377\002\002\002\377\006\006\006\377\021\021\021\377$$$\377===\377VVV\365jj"
"js\306\306\306\011\000\000\000\000jjj\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000|||\001\000\000\000\000\000\000\000\000|||\062eee\215WWW\364BBB\377\062\062\062\377"
"$$$\377\031\031\031\377\022\022\022\377\016\016\016\377\012\012\012\377\011\011\011\377"
"\011\011\011\377\012\012\012\377\015\015\015\377\022\022\022\377\031\031\031\377$$$\377"
"\062\062\062\377BBB\377WWW\364eee\215|||\062\000\000\000\000\000\000\000\000|||\001\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\246\246\246\026rrrSeee\205\\\\\\\257"
"VVV\315QQQ\350OOO\370LLL\377LLL\377OOO\370QQQ\350VVV\315\\\\\\\257eee\205"
"rrrS\246\246\246\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",
};

View File

@ -213,7 +213,7 @@ void Draw_BigFontString(int x, int y, const char *text)
p = QBigFontWorks(); p = QBigFontWorks();
if (!p) if (!p)
{ {
Draw_FunString(x, y, text); Draw_AltFunString(x, y, text);
return; return;
} }
@ -1935,6 +1935,22 @@ qboolean MC_Main_Key (int key, menu_t *menu) //here purly to restart demos.
return false; return false;
} }
static int M_Main_AddExtraOptions(menu_t *mainm, int y)
{
if (Cmd_AliasExist("mod_menu", RESTRICT_LOCAL))
{MC_AddConsoleCommandQBigFont(mainm, 72, y, va("%-14s", Cvar_Get("mod_menu", "Mod Menu", 0, NULL)->string), "mod_menu\n"); y += 20;}
if (Cmd_Exists("xmpp"))
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "Social ", "xmpp\n"); y += 20;}
if (Cmd_Exists("irc"))
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "IRC ", "irc\n"); y += 20;}
if (Cmd_Exists("qi"))
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "Quake Injector", "qi\n"); y += 20;}
if (Cmd_Exists("menu_download"))
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "Updates ", "menu_download\n"); y += 20;}
return y;
}
void M_Menu_Main_f (void) void M_Menu_Main_f (void)
{ {
extern cvar_t m_helpismedia; extern cvar_t m_helpismedia;
@ -2114,16 +2130,7 @@ void M_Menu_Main_f (void)
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "Media ", "menu_media\n"); y += 20;} {MC_AddConsoleCommandQBigFont(mainm, 72, y, "Media ", "menu_media\n"); y += 20;}
else else
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "Help ", "help\n"); y += 20;} {MC_AddConsoleCommandQBigFont(mainm, 72, y, "Help ", "help\n"); y += 20;}
if (Cmd_AliasExist("mod_menu", RESTRICT_LOCAL)) y = M_Main_AddExtraOptions(mainm, y);
{MC_AddConsoleCommandQBigFont(mainm, 72, y, va("%-14s", Cvar_Get("mod_menu", "Mod Menu", 0, NULL)->string), "mod_menu\n"); y += 20;}
if (Cmd_Exists("xmpp"))
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "Social ", "xmpp\n"); y += 20;}
if (Cmd_Exists("irc"))
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "IRC ", "irc\n"); y += 20;}
if (Cmd_Exists("qi"))
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "Quake Injector", "qi\n"); y += 20;}
if (Cmd_Exists("menu_download"))
{MC_AddConsoleCommandQBigFont(mainm, 72, y, "Updates ", "menu_download\n"); y += 20;}
#ifdef FTE_TARGET_WEB #ifdef FTE_TARGET_WEB
MC_AddConsoleCommandQBigFont (mainm, 72, y, "Save Settings ", "menu_quit\n"); y += 20; MC_AddConsoleCommandQBigFont (mainm, 72, y, "Save Settings ", "menu_quit\n"); y += 20;
#else #else
@ -2134,7 +2141,7 @@ void M_Menu_Main_f (void)
} }
else else
{ {
int width; int width, y;
Key_Dest_Add(kdm_emenu); Key_Dest_Add(kdm_emenu);
mainm = M_CreateMenu(0); mainm = M_CreateMenu(0);
@ -2190,6 +2197,8 @@ void M_Menu_Main_f (void)
b->common.width = width; b->common.width = width;
b->common.height = 20; b->common.height = 20;
M_Main_AddExtraOptions(mainm, 112+20);
mainm->cursoritem = (menuoption_t *)MC_AddCursor(mainm, &resel, 54, 32); mainm->cursoritem = (menuoption_t *)MC_AddCursor(mainm, &resel, 54, 32);
} }

View File

@ -7814,6 +7814,7 @@ qboolean CSQC_DrawView(void)
else else
*csqcg.frametime = host_frametime; *csqcg.frametime = host_frametime;
} }
if (csqcg.clframetime) if (csqcg.clframetime)
*csqcg.clframetime = host_frametime; *csqcg.clframetime = host_frametime;

View File

@ -98,7 +98,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#ifdef CONFIG_FILE_NAME #ifdef CONFIG_FILE_NAME
#undef MULTITHREAD #undef MULTITHREAD
#undef BOTLIB_STATIC
#define HEADLESSQUAKE //usable renderers are normally specified via the makefile, but HEADLESS is considered a feature rather than an actual renderer, so usually gets forgotten about... #define HEADLESSQUAKE //usable renderers are normally specified via the makefile, but HEADLESS is considered a feature rather than an actual renderer, so usually gets forgotten about...
//yup, C89 allows this (doesn't like C's token concat though). //yup, C89 allows this (doesn't like C's token concat though).

View File

@ -5003,9 +5003,17 @@ void COM_Version_f (void)
Con_Printf("Games:"); Con_Printf("Games:");
#if defined(Q3SERVER) && defined(Q3CLIENT) #if defined(Q3SERVER) && defined(Q3CLIENT)
Con_Printf(" Quake3"); #ifdef BOTLIB_STATIC
Con_Printf(" Quake3");
#else
Con_Printf(" Quake3^h(no-botlib)^h");
#endif
#elif defined(Q3SERVER) #elif defined(Q3SERVER)
Con_Printf(" Quake3(server)"); #ifdef BOTLIB_STATIC
Con_Printf(" Quake3(server)");
#else
Con_Printf(" Quake3(server,no-botlib)");
#endif
#elif defined(Q3CLIENT) #elif defined(Q3CLIENT)
Con_Printf(" Quake3(client)"); Con_Printf(" Quake3(client)");
#elif defined(Q3BSPS) #elif defined(Q3BSPS)

View File

@ -746,7 +746,7 @@ typedef size_t hashfunc_t(unsigned char *digest, size_t maxdigestsize, size_t nu
hashfunc_t SHA1_m; hashfunc_t SHA1_m;
//int SHA1_m(char *digest, size_t maxdigestsize, size_t numstrings, const char **strings, size_t *stringlens); //int SHA1_m(char *digest, size_t maxdigestsize, size_t numstrings, const char **strings, size_t *stringlens);
//#define SHA1(digest,maxdigestsize,string,stringlen) SHA1_m(digest, maxdigestsize, 1, &string, &stringlen) //#define SHA1(digest,maxdigestsize,string,stringlen) SHA1_m(digest, maxdigestsize, 1, &string, &stringlen)
int SHA1(unsigned char *digest, int maxdigestsize, const unsigned char *string, size_t stringlen); size_t SHA1(unsigned char *digest, size_t maxdigestsize, const unsigned char *string, size_t stringlen);
size_t HMAC(hashfunc_t *hashfunc, unsigned char *digest, size_t maxdigestsize, const unsigned char *data, size_t datalen, const unsigned char *key, size_t keylen); size_t HMAC(hashfunc_t *hashfunc, unsigned char *digest, size_t maxdigestsize, const unsigned char *data, size_t datalen, const unsigned char *key, size_t keylen);
int version_number(void); int version_number(void);

View File

@ -104,7 +104,7 @@
#define Q2CLIENT //q2 client. file formats enabled separately. #define Q2CLIENT //q2 client. file formats enabled separately.
#define Q3CLIENT //q3 client stuff. #define Q3CLIENT //q3 client stuff.
#define Q3SERVER //q3 server stuff. #define Q3SERVER //q3 server stuff.
#define BOTLIB_STATIC //q3 botlib #define AVAIL_BOTLIB //q3 botlib
#define HEXEN2 //runs hexen2 gamecode, supports hexen2 file formats. #define HEXEN2 //runs hexen2 gamecode, supports hexen2 file formats.
#define HUFFNETWORK //crappy network compression. probably needs reseeding. #define HUFFNETWORK //crappy network compression. probably needs reseeding.
#define NETPREPARSE //allows for running both nq+qw on the same server (if not, protocol used must match gamecode). #define NETPREPARSE //allows for running both nq+qw on the same server (if not, protocol used must match gamecode).
@ -172,7 +172,7 @@
//-DNO_OPUS //-DNO_OPUS
//-DNO_SPEEX //disable static speex //-DNO_SPEEX //disable static speex
#ifndef BOTLIB_STATIC #ifndef AVAIL_BOTLIB
-DNO_BOTLIB //disable static botlib -DNO_BOTLIB //disable static botlib
#endif #endif
//-DNO_VORBISFILE //disable static vorbisfile //-DNO_VORBISFILE //disable static vorbisfile

View File

@ -106,7 +106,7 @@
//#define Q2CLIENT //q2 client. file formats enabled separately. //#define Q2CLIENT //q2 client. file formats enabled separately.
//#define Q3CLIENT //q3 client stuff. //#define Q3CLIENT //q3 client stuff.
//#define Q3SERVER //q3 server stuff. //#define Q3SERVER //q3 server stuff.
//#define BOTLIB_STATIC //q3 botlib //#define AVAIL_BOTLIB //q3 botlib
//#define HEXEN2 //runs hexen2 gamecode, supports hexen2 file formats. //#define HEXEN2 //runs hexen2 gamecode, supports hexen2 file formats.
//#define HUFFNETWORK //crappy network compression. probably needs reseeding. //#define HUFFNETWORK //crappy network compression. probably needs reseeding.
#define NETPREPARSE //allows for running both nq+qw on the same server (if not, protocol used must match gamecode). #define NETPREPARSE //allows for running both nq+qw on the same server (if not, protocol used must match gamecode).
@ -173,7 +173,7 @@
-DNO_OPUS -DNO_OPUS
-DNO_SPEEX //disable static speex -DNO_SPEEX //disable static speex
#ifndef BOTLIB_STATIC #ifndef AVAIL_BOTLIB
-DNO_BOTLIB //disable static botlib -DNO_BOTLIB //disable static botlib
#endif #endif
-DNO_VORBISFILE //disable static vorbisfile -DNO_VORBISFILE //disable static vorbisfile

View File

@ -103,7 +103,7 @@
//#define Q2CLIENT //q2 client. file formats enabled separately. //#define Q2CLIENT //q2 client. file formats enabled separately.
//#define Q3CLIENT //q3 client stuff. //#define Q3CLIENT //q3 client stuff.
//#define Q3SERVER //q3 server stuff. //#define Q3SERVER //q3 server stuff.
//#define BOTLIB_STATIC //q3 botlib //#define AVAIL_BOTLIB //q3 botlib
//#define HEXEN2 //runs hexen2 gamecode, supports hexen2 file formats. //#define HEXEN2 //runs hexen2 gamecode, supports hexen2 file formats.
//#define HUFFNETWORK //crappy network compression. probably needs reseeding. //#define HUFFNETWORK //crappy network compression. probably needs reseeding.
//#define NETPREPARSE //allows for running both nq+qw on the same server (if not, protocol used must match gamecode). //#define NETPREPARSE //allows for running both nq+qw on the same server (if not, protocol used must match gamecode).
@ -171,7 +171,7 @@
//-DNO_OPUS //-DNO_OPUS
//-DNO_SPEEX //disable static speex //-DNO_SPEEX //disable static speex
#ifndef BOTLIB_STATIC #ifndef AVAIL_BOTLIB
-DNO_BOTLIB //disable static botlib -DNO_BOTLIB //disable static botlib
#endif #endif
//-DNO_VORBISFILE //disable static vorbisfile //-DNO_VORBISFILE //disable static vorbisfile

View File

@ -91,7 +91,7 @@
#undef AVAIL_FREETYPE //for truetype font rendering #undef AVAIL_FREETYPE //for truetype font rendering
#undef AVAIL_WASAPI //windows advanced sound api #undef AVAIL_WASAPI //windows advanced sound api
#undef AVAIL_DSOUND #undef AVAIL_DSOUND
#undef BOTLIB_STATIC //q3 botlib #undef AVAIL_BOTLIB //q3 botlib
#undef AVAIL_XZDEC //.xz decompression #undef AVAIL_XZDEC //.xz decompression
#undef AVAIL_GZDEC //.gz decompression #undef AVAIL_GZDEC //.gz decompression
#undef AVAIL_DZIP //.dzip special-case archive support #undef AVAIL_DZIP //.dzip special-case archive support
@ -161,7 +161,7 @@
-DNO_SPEEX //disable static speex -DNO_SPEEX //disable static speex
#ifndef BOTLIB_STATIC #ifndef AVAIL_BOTLIB
-DNO_BOTLIB //disable static botlib -DNO_BOTLIB //disable static botlib
#endif #endif
-DNO_VORBISFILE //disable static vorbisfile -DNO_VORBISFILE //disable static vorbisfile

View File

@ -20,6 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//well, linux or cygwin (windows with posix emulation layer), anyway... //well, linux or cygwin (windows with posix emulation layer), anyway...
#define _GNU_SOURCE
#include "quakedef.h" #include "quakedef.h"
#ifdef MULTITHREAD #ifdef MULTITHREAD
@ -104,6 +105,10 @@ void *Sys_CreateThread(char *name, int (*func)(void *), void *args, int priority
} }
pthread_attr_destroy(&attr); pthread_attr_destroy(&attr);
#ifdef __USE_GNU
pthread_setname_np(*thread, name);
#endif
return (void *)thread; return (void *)thread;
} }
#else #else
@ -128,6 +133,10 @@ void *Sys_CreateThread(char *name, int (*func)(void *), void *args, int priority
} }
pthread_attr_destroy(&attr); pthread_attr_destroy(&attr);
#ifdef __USE_GNU
pthread_setname_np(*thread, name);
#endif
return (void *)thread; return (void *)thread;
} }
#endif #endif

View File

@ -2763,7 +2763,8 @@ void GLVID_SwapBuffers (void)
} }
} }
#include "bymorphed.h" #include "fte_eukara64.h"
//#include "bymorphed.h"
void X_StoreIcon(Window wnd) void X_StoreIcon(Window wnd)
{ {
int i; int i;

View File

@ -13,13 +13,13 @@
#include "bothdefs.h" #include "bothdefs.h"
#ifdef WAYLANDQUAKE #ifdef WAYLANDQUAKE
#include "gl_videgl.h" //define this BEFORE the wayland stuff. This means the EGL types will have their (x11) defaults instead of getting mixed up with wayland. we expect to be able to use the void* verions instead for wayland anyway.
#include <wayland-client.h> #include <wayland-client.h>
#include <wayland-egl.h> #include <wayland-egl.h>
#include <linux/input.h> //this is shite. #include <linux/input.h> //this is shite.
#include "quakedef.h" #include "quakedef.h"
#if defined(GLQUAKE) && defined(USE_EGL) #if defined(GLQUAKE) && defined(USE_EGL)
#include "gl_draw.h" #include "gl_draw.h"
#include "gl_videgl.h"
#endif #endif
#if defined(VKQUAKE) #if defined(VKQUAKE)
#include "vk/vkrenderer.h" #include "vk/vkrenderer.h"

View File

@ -7,7 +7,7 @@
#define Hash_BytesForBuckets(b) (sizeof(bucket_t*)*(b)) #define Hash_BytesForBuckets(b) (sizeof(bucket_t*)*(b))
#define STRCMP(s1,s2) (((*s1)!=(*s2)) || strcmp(s1+1,s2+1)) //saves about 2-6 out of 120 - expansion of idea from fastqcc #define STRCMP(s1,s2) (((*s1)!=(*s2)) || (strcmp(s1,s2))) //saves about 2-6 out of 120 - expansion of idea from fastqcc
typedef struct bucket_s { typedef struct bucket_s {
void *data; void *data;
union { union {

View File

@ -1088,8 +1088,8 @@ typedef struct qcc_includechunk_s {
} qcc_includechunk_t; } qcc_includechunk_t;
extern qcc_includechunk_t *currentchunk; extern qcc_includechunk_t *currentchunk;
int QCC_CopyString (char *str); int QCC_CopyString (const char *str);
int QCC_CopyStringLength (char *str, size_t length); int QCC_CopyStringLength (const char *str, size_t length);
@ -1173,4 +1173,4 @@ vfile_t *QCC_AddVFile(const char *name, void *data, size_t size);
void QCC_CatVFile(vfile_t *, const char *fmt, ...); void QCC_CatVFile(vfile_t *, const char *fmt, ...);
void QCC_InsertVFile(vfile_t *, size_t pos, const char *fmt, ...); void QCC_InsertVFile(vfile_t *, size_t pos, const char *fmt, ...);
void *QCC_ReadFile(const char *fname, unsigned char *(*buf_get)(void *ctx, size_t len), void *buf_ctx, size_t *out_size); void *QCC_ReadFile(const char *fname, unsigned char *(*buf_get)(void *ctx, size_t len), void *buf_ctx, size_t *out_size, pbool issourcefile);

View File

@ -4276,32 +4276,20 @@ QCC_sref_t QCC_PR_ParseImmediate (void)
case ev_string: case ev_string:
{ {
int t,l; int t=0,l;
char tmp[8192]; char tmp[8192];
t=l = pr_immediate_strlen; do
if (l+1 > sizeof(tmp))
QCC_PR_ParseError (ERR_NAMETOOLONG, "string immediate is too long");
memcpy(tmp, pr_immediate_string, l);
tmp[l] = 0;
//extra logic to amalgamate any "additional " "string" " immediates", like in C
for(;;)
{ {
l = pr_immediate_strlen;
if (t+l+1 > sizeof(tmp))
QCC_PR_ParseError (ERR_NAMETOOLONG, "string immediate is too long");
memcpy(tmp+t, pr_immediate_string, l);
t+=l;
QCC_PR_Lex (); QCC_PR_Lex ();
if (pr_token_type == tt_immediate && pr_immediate_type == type_string) } while(pr_token_type == tt_immediate && pr_immediate_type == type_string);
{ tmp[t++] = 0;
l = pr_immediate_strlen; cn = QCC_MakeStringConstLength(tmp, t);
if (t+l+1 > sizeof(tmp))
QCC_PR_ParseError (ERR_NAMETOOLONG, "string immediate is too long");
memcpy(tmp+t, pr_immediate_string, l);
tmp[t+l] = 0;
t+=l;
}
else
break;
}
cn = QCC_MakeStringConstLength(tmp, t+1);
} }
return cn; return cn;
default: default:
@ -6415,7 +6403,7 @@ QCC_sref_t QCC_MakeFloatConst(float value)
extern hashtable_t stringconstdefstable, stringconstdefstable_trans; extern hashtable_t stringconstdefstable, stringconstdefstable_trans;
int dotranslate_count; int dotranslate_count;
static QCC_sref_t QCC_MakeStringConstInternal(char *value, size_t length, pbool translate) static QCC_sref_t QCC_MakeStringConstInternal(const char *value, size_t length, pbool translate)
{ {
QCC_def_t *cn; QCC_def_t *cn;
int string; int string;
@ -10618,8 +10606,13 @@ void QCC_PR_ParseStatement (void)
if (patch2) if (patch2)
patch2->a.ofs = &statements[numstatements] - patch2; patch2->a.ofs = &statements[numstatements] - patch2;
if (QCC_PR_StatementBlocksMatch(patch1+1, patch2-patch1, patch2+1, &statements[numstatements] - patch2)) /*FIXME: this doesn't work right
QCC_PR_ParseWarning(0, "Two identical blocks each side of an else"); if (patch1 && patch2)
{
if (QCC_PR_StatementBlocksMatch(patch1+1, patch2-(patch1+1), patch2+1, &statements[numstatements] - (patch2+1)))
QCC_PR_ParseWarning(0, "Two identical blocks each side of an else");
}
*/
} }
} }
else if (patch1) else if (patch1)

View File

@ -476,7 +476,7 @@ typedef struct stringtab_s
} stringtab_t; } stringtab_t;
stringtab_t *stringtablist[256]; stringtab_t *stringtablist[256];
// CopyString returns an offset from the string heap // CopyString returns an offset from the string heap
int QCC_CopyString (char *str) int QCC_CopyString (const char *str)
{ {
int old; int old;
size_t len; size_t len;
@ -528,7 +528,7 @@ int QCC_CopyString (char *str)
return old; return old;
} }
int QCC_CopyStringLength (char *str, size_t length) int QCC_CopyStringLength (const char *str, size_t length)
{ {
int old; int old;
@ -541,11 +541,12 @@ int QCC_CopyStringLength (char *str, size_t length)
if ( (strofs + length) > MAX_STRINGS) if ( (strofs + length) > MAX_STRINGS)
QCC_Error(ERR_INTERNAL, "QCC_CopyString: stringtable size limit exceeded\n"); QCC_Error(ERR_INTERNAL, "QCC_CopyString: stringtable size limit exceeded\n");
memcpy (strings+strofs, str, length); memcpy (strings+strofs, str, length);
strofs += length; strings[strofs+length] = 0;
strofs += length+1;
return old; return old;
} }
int QCC_CopyDupBackString (char *str) int QCC_CopyDupBackString (const char *str)
{ {
size_t length; size_t length;
int old; int old;

View File

@ -8,7 +8,7 @@
LoadFile LoadFile
============== ==============
*/ */
void *QCC_ReadFile(const char *fname, unsigned char *(*buf_get)(void *ctx, size_t len), void *buf_ctx, size_t *out_size) void *QCC_ReadFile(const char *fname, unsigned char *(*buf_get)(void *ctx, size_t len), void *buf_ctx, size_t *out_size, pbool issourcefile)
//unsigned char *PDECL QCC_ReadFile (const char *fname, void *buffer, int len, size_t *sz) //unsigned char *PDECL QCC_ReadFile (const char *fname, void *buffer, int len, size_t *sz)
{ {
size_t len; size_t len;
@ -126,16 +126,21 @@ int main (int argc, char **argv)
funcs.funcs.parms->WriteFile = QCC_WriteFile; funcs.funcs.parms->WriteFile = QCC_WriteFile;
funcs.funcs.parms->Printf = logprintf; funcs.funcs.parms->Printf = logprintf;
funcs.funcs.parms->Sys_Error = Sys_Error; funcs.funcs.parms->Sys_Error = Sys_Error;
logfile = fopen("fteqcc.log", "at"); #ifdef _WIN32
fputs("Args:", logfile); logfile = fopen("fteqcc.log", "wt");
for (i = 0; i < argc; i++) #endif
if (logfile)
{ {
if (strchr(argv[i], ' ')) fputs("Args:", logfile);
fprintf(logfile, " \"%s\"", argv[i]); for (i = 0; i < argc; i++)
else {
fprintf(logfile, " %s", argv[i]); if (strchr(argv[i], ' '))
fprintf(logfile, " \"%s\"", argv[i]);
else
fprintf(logfile, " %s", argv[i]);
}
fprintf(logfile, "\n");
} }
fprintf(logfile, "\n");
sucess = CompileParams(&funcs, NULL, argc, argv); sucess = CompileParams(&funcs, NULL, argc, argv);
qccClearHunk(); qccClearHunk();
if (logfile) if (logfile)

View File

@ -357,7 +357,7 @@ void VARGS SV_Error (char *error, ...)
} }
#ifdef SERVERONLY #ifdef SERVERONLY
void VARGS Host_Error (char *error, ...) void VARGS Host_Error (const char *error, ...)
{ {
va_list argptr; va_list argptr;
char string[1024]; char string[1024];
@ -371,7 +371,7 @@ void VARGS Host_Error (char *error, ...)
#endif #endif
#ifdef SERVERONLY #ifdef SERVERONLY
void VARGS Host_EndGame (char *error, ...) void VARGS Host_EndGame (const char *error, ...)
{ {
va_list argptr; va_list argptr;
char string[1024]; char string[1024];