This repository has been archived by the owner on May 25, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathatl-head.h
1609 lines (1441 loc) · 50.5 KB
/
atl-head.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#include <stdio.h>
#ifdef _AIX
#include <sys/select.h>
#endif
#include <fcntl.h>
#include <time.h>
#include <netdb.h>
#include <signal.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <dirent.h>
#include <stddef.h>
#include <stdlib.h>
#include <ctype.h>
#include <sys/vfs.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/file.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <arpa/telnet.h>
#include <sys/poll.h>
#include <setjmp.h>
#include <stdarg.h>
#include <libxml2/libxml/xmlwriter.h>
#include <locale.h>
#if defined(HAVE_CONFIG)
#include "config.h"
#else
#include "config-sample.h"
#endif
#ifdef HPUX_SB
#define FD_CAST (int *)
#else
#define FD_CAST (fd_set *)
#endif
#ifdef GLIBC207
#define SIGNAL(x,y) sysv_signal(x,y)
#else
#define SIGNAL(x,y) signal(x,y)
#endif
int wrtype,pollerror;
#define WR_IOPHR 1
#define WR_ZVERY 2
#define WR_NEWBIE 3
#define WR_AVOID_PREDMETS 4
#define WR_NOEDITOR 5
#define WR_NOCOL 6
#define WR_WITHCOL 7
#define RESCNUM 500
char rescip[RESCNUM][17];
char rescho[RESCNUM][52];
int rescn;
int resc_resolved;
int resc_cached;
int counter_db(int add);
int pocet_vtipov;
int newusers;
int doplnovanie_predmetov,ryxlost_doplnovania,predmety_dynamic;
int pocet_predmetov,predmety_time,predmety_position,pocet_konverzii;
int zistuj_identitu;
int inyjefuc;
int max_users_was;
int all_logins;
int sayfloodnum;
int passwd_simplex;
int hb_can;
int hb_sec;
int daily_num;
int every_min_num,burkamin,tunelik,brutalis_gate,portalis_gate;
size_t tajmauts,tajmautz;
int writeerror,max_timeouts,max_timeoutz;
#define VERSION "3.3.3"
#define WORK "modifikacie: Spartakus, Rider, Buko, Hruza, Viper"
#define MOZENADAVAT GOD
#define MOZEFARBICKOVAT KIN
#define TIMEOUT 3
#define EXECPREFIX "./"
#define FILESYSTEM "/"
#define LOW_DISK_LIMIT 1024
#define POCET_KUZIEL 16
#define SPELLK 20
#define MAXPP 200
#define INCPP 1
#define NODYNAMIC 0
#define SHOUTDEC 35
#define SHOUTCAN 105
#define SHOUTDYN 85
#define SEMOTEDEC 35
#define SEMOTECAN 105
#define SEMOTEDYN 85
#define SECHODEC 55
#define SECHOCAN 130
#define SECHODYN 120
#define BANNERDEC 70
#define BANNERCAN 140
#define SBANNERDEC 200
#define SBANNERCAN 170
#define SBANNERDYN 200
#define HUGDEC 10
#define HUGCAN 40
#define WAKEDEC 10
#define WAKECAN 40
#define FIGHTDEC 80
#define FIGHTCAN 160
#define FIGHTDECARENA 60
#define FIGHTCANARENA 100
#define KICKDEC 100
#define KICKCAN 120
#define KISSDEC 10
#define KISSCAN 60
#define KIDDEC 50
#define KIDCAN 80
#define TOPICDEC 40
#define TOPICCAN 100
#define THROWDEC 20
#define THROWCAN 50
#define STEALCAN 50
#define THIEFDEC 30
#define VICTIMDEC 10
#define PRIVPUBDEC 40
#define PRIVPUBCAN 100
/* adresare */
#define MISCFILES "misc" /* misc-subory */
#define BACKUP_DIR "backups" /* zalohy */
#define DATAFILES "data" /* data-subory */
#define CLOVECEFILES "saves-clovece" /* ulozene hry clovece */
#define LODICKY_SAVE_DIR "saves-lodicky" /* ulozene hry lodiciek */
#define DAMAFILES "saves-dama" /* ulozene hry damy */
#define MAILSPOOL "mailspool"
#define POMOCFILES "help" /* pomoc-subory */
#define LOGFILES "log" /* logy */
#define ITEMFILES "predmety" /* popisky predmetov */
/* misc-subory */
#define DICT "dict" /* slovnik lamerskyx hesiel */
#define ZOZNAM_USEROV "users_list" /* zoznam userov */
#define ADRESY_USEROV "users_emails" /* e-mailove adresy userov */
#define MULTI_REQUEST "multirequest" /* pokusy requestov na uz pouzite adresy */
#define COM_LEVEL "comlevel" /* prehodene levely k prikazom */
#define NO_QUOTA "noquota" /* kto nema kvotu na postu */
#define HINT_FILE "hints" /* zoznam hintov */
#define NICKBLOCK "nickblock" /* vyblokovane nicky */
#define RESC_CACHE "resc_cache" /* cache pre resolvera */
#define GOT_AUTH "users_auth" /* real identity z forknuteho tisu */
#define IRC_SERVERS "ircserv" /* povolene IRC servre */
#define TALKERS_LIST "talkers" /* zoznam inych talkerov */
#define FORTUNE_FILE "fortune" /* subor s mudrostami */
#define NOTICEBOARD "noticeboard" /* staznosti, ospravedlnenia, navrhy - archiv */
#define NOTICE_DIGEST "notice_digest" /* denny vyber z ^^^ */
#define SITEBAN "siteban" /* vybanovane sites */
#define NEWUSER_SITEBAN "newban" /* sites vybanovane iba na vytvaranie novych uctov */
#define REMOTE_FILE "remote" /* konfigurak connecticutu :-) */
#define STATSFILE "statistika"
#define CHECKFILE "kontrola"
#define CRASHFILE "crash"
#define BOMBFILE "bomb"
#define MAXTIMEOUTS "timeouts.max"
/* datafiles-subory */
#define MENINY_FILE "meniny.dat" /* kalendar */
#define LAB_FILE "labdata.dat" /* labyrint - nazov datoveho suboru */
#define NEWUSER_INFO "newuser_info" /* informacie pre noveho userka - novy nick pri logine */
#define HANGMAN_WORDS "hangman" /* slova do obesenca */
#define LABYRINT_WINNERS "labyrint.win" /* vitazi labu */
#define WEB_BOARD_DAT "webboard.dat" /* kto pisal na board a kde */
/* log-subory */
#define AKLIENT_LOG_USERS "akl_user.log" /* log userov z klienta */
#define AKLIENT_LOG_VER "akl_ver.log" /* log pristupov z verzii klienta */
#define LEVLOG "level.log" /* log promotes/demotes */
#define COMMLOG "command.log" /* command debug log */
#define TLT_LOG "tlt.log"
#define SYSLOG "system.log"
#define WIZLOG "wizzes.log"
#define GAMES_LOG "games.log"
#define SENT_SMS "sentsms.log"
#define SENT_MAIL "sentmail.log"
#define TMPSUFFIX ".talkertmp" /* koncovka docasnych suborov pre vypisy who, boardov a podobne */
/* pocasie-subory */
#define WEATHER_TODAY_FILE "pocasie/weather.today"
#define WEATHER_TOMORROW_FILE "pocasie/weather.tomorrow"
#define WEATHER_STRED_FILE "pocasie/weather.stred"
#define WEATHER_VYCHOD_FILE "pocasie/weather.vychod"
#define WEATHER_ZAPAD_FILE "pocasie/weather.zapad"
#define WEATHER_BLAVA_FILE "pocasie/weather.blava"
#define WEATHER_TATRY_FILE "pocasie/weather.tatry"
#define KOLOS_FILES "amfiteater"
#define KOLOS_PROGRAM "program.atl"
#define KOLOS_BANNER "predstavenie.atl"
/* web-subory */
#define WHO_FOR_WEB "who.raw" /* who pre web - surovy fajl */
/* Status line */
enum statline {NONEMODE,UNKNOWN,LINEMODE,CHARMODE};
#define MAX_CONNECTIONS 5
#define MAX_POLL 2000
#define AUTOSAVE 300
#define HISTORY_LINES 10
#define HISTORY_LEN 20
#define DB_JAIL 1
#define DB_DEMOTE 2
#define DB_BAN 3
#define MAIL_QUOTA 50000 /* odkedy bude upozornovat na preplnenu sxranku */
#define MAIL_LIMIT 55000 /* odkedy uz nebude moct dostavat postu!!! */
#define NUMBER_OF_LOOPS 75 /* kolko desiatok microsekund na resolvnutie */
#define ADRESIZE 512 /* maximalna dlzka hostname */
#define MAX_POCET_LOGINOV 10 /* kolko ludi sa moze z 1 adresy naraz prihlasovat (rata sa len login stage), prevencia proti floodu */
#define PROMPT_LEN 120 /*dlzka promptu!*/
#define REMOTE_NAME_LEN 256
#define REMOTE_DESC_LEN 256
#define ANTI_IDLE_TIME_SEC 0
int size_fds;
struct remote_struct {
char name[REMOTE_NAME_LEN];
char desc[REMOTE_DESC_LEN];
char shortcut;
int port;
struct hostent *he;
struct remote_struct *next;
};
typedef struct remote_struct *RN_OBJECT;
RN_OBJECT remote_start,remote_last,remote_active;
int remote_slot_active;
sigjmp_buf save_state;
extern int h_errno;
#define LAB_ROOMS 65 /* Maximalny pocet miestnosti */
#define LAB_DESC 900 /* Maximalna velkost popisu miestnosti */
#define MAX_LINE 100 /* Maximalna dlzka jedneho riadku z fajlu */
#define OUT_BUFF_SIZE 3000
#define MAX_WORDS 100
#define MAX_IRC_WORDS 15
#define IRC_WORD_LEN 600
#define WORD_LEN 120
#define ARR_SIZE 800
#define MAX_LINES 100
#define NUM_COLS 38
#define MAX_COPIES 10
#define ARENA_ROOM "arena" /* Rooma reprezentujuca arenu */
#define DESC_CHAR_LEN 400 /* Kolko ZNAKOV (aj tyx coolblbosti) moze mat desc */
#define COOLBUF_LEN 1500
#define MAX_LAME 1450 /* Cooltalk */
#define MAX_CISLO 8
#define COOLTALK_LEN 80
#define USER_NAME_LEN 12
#define USER_DESC_LEN 40 /* C00ltalk */
#define AFK_MESG_LEN 120
#define PHRASE_LEN 45
#define MAXSLOHY 4 /* kolko sluoh mozno naraz vypotit .poet-om (flood) */
#define EMAIL_LEN 60
#define PASS_LEN 10 /* only the 1st 8 chars will be used by crypt() though */
#define PASS_MIN_LEN 4
#define PASS_MIN_LEN_WIZ 6
#define WIZPASS_MIN_LEN 3
#define BUFSIZE 900
#define ROOM_NAME_LEN 20
#define ROOM_LABEL_LEN 5
#define TOPIC_LEN 70 /* C00ltalk */
#define MAX_LINKS 8
#define REVB_LINES 10
#define REVIEW_LINES 30
#define REVTELL_LINES 50
#define REVIRC_LINES 50
#define LASTLOG_LINES 50
#define REVIEW_LEN 300
#define HOMEPAGE_LEN 60
#define MPVM 25 /* Maximum predmetov v miestnosti */
#define HANDS 4 /* pocet chapadiel usera */
#define BODY HANDS+3 /* HANDS + cepicka + oblecenie + boty */
struct {
int start;
int end;
int sever[LAB_ROOMS],juh[LAB_ROOMS],vychod[LAB_ROOMS],zapad[LAB_ROOMS],hore[LAB_ROOMS],dole[LAB_ROOMS];
char popiska[LAB_ROOMS][LAB_DESC];
int dostupny;
} lab_room;
struct pager_struct {
int filepos;
int messnum;
struct pager_struct *next;
};
typedef struct pager_struct *PAGER;
struct notify_struct {
char meno[13];
struct notify_struct *next;
};
typedef struct notify_struct *NOTIFY;
struct dama_struct {
struct user_struct *hrac[2];
int plocha[8][8],forcejump,remiza[2],monochrom[2];
int natahu,lastmove[2],disptype[2];
int tah;
};
typedef struct dama_struct* DAMA_OBJECT;
#define PUBLIC 0
#define PRIVATE 1
#define FIXED 2
#define FIXED_PUBLIC 2
#define FIXED_PRIVATE 3
#define GOD_PRIVATE 5
#define NEW 0
#define CIT 1
#define SOL 2
#define WAR 3
#define SAG 4
#define PRI 5
#define WIZ 6
#define KIN 7
#define GOD 8
#define POS 9
#define DB_ARENA 1 /* Nemenit! bo sa presunu body a mena v tabulach (V) */
#define DB_PISKVORKY 2
#define DB_HANGMAN 3
#define DB_QUEST 4
#define DB_DOOM 5
#define DB_LETUN 6
#define DB_REVERSI 7
#define DB_DAMA 8
#define DB_MINY 9
#define DB_BRUTALIS 10
#define USER_TYPE 0
#define CLONE_TYPE 1
#define CLONE_HEAR_NOTHING 0
#define CLONE_HEAR_SWEARS 1
#define CLONE_HEAR_ALL 2
int resolve_ip;
char revshoutbuff[REVIEW_LINES+1][REVIEW_LEN+2];
int revshoutline;
char revbcastbuff[REVB_LINES+1][REVIEW_LEN*2+2];
int revbcastline;
char revsosbuff[REVIEW_LINES+1][REVIEW_LEN+2];
int revsosline;
char revporshbuff[REVIEW_LINES+1][REVIEW_LEN+2];
int revporshline;
char revgossipbuff[REVIEW_LINES+1][REVIEW_LEN+2];
int revgossipline;
char revquestbuff[REVIEW_LINES+1][REVIEW_LEN+2];
int revquestline;
char revwizshoutbuff[REVIEW_LINES+1][REVIEW_LEN+2];
int revwizshoutline;
char lastlog[LASTLOG_LINES+1][REVIEW_LEN+2];
int lastlogline;
struct cl_struct {
struct user_struct *hrac[4],*loadhrac[4];
int monochrom[4],figurka[4][4],usertahs[4],remiza[4];
int natahu,tahov,locked,kocka,loadlock;
char revbuff[REVIEW_LINES+1][REVIEW_LEN+2];
int revline;
};
typedef struct cl_struct* CL_OBJECT;
struct fr_struct {
struct user_struct *hrac[5];
int karty[32];
int active[5];
int natahu,action;
char revbuff[REVIEW_LINES+1][REVIEW_LEN+2];
int revline;
};
typedef struct fr_struct* FR_OBJECT;
struct xa_struct {
struct user_struct *creator;
char *buffer[REVIEW_LINES+1];
char topic[60];
int line,type;
};
typedef struct xa_struct* XA_OBJECT;
struct p_struct {
char name[21];
char dativ[21];
char akuzativ[21];
char inytiv[21];
char food[21];
int type,weight,dur,price,function,amount;
int attack,firerate,seconddur,pp,restrikt,tajm;
long altfunct;
char *enter, *leave, *ustart, *rstart, *ustop,*rstop;
char *uinphr, *uoutphr, *rinphr, *routphr;
char *userphr, *roomphr, *victimphr;
char *special, *picture, *error;
int showpict,ofense,defense;
char *udestroy,*rdestroy;
char *ujoinphr,*rjoinphr,*searchphr;
struct room_struct *spawn;
int spawnarea;
};
typedef struct p_struct* P_OBJECT;
struct co_struct {
int component[4];
int eliminate[4],setowner;
int product,source,destination,mana,heal;
char *usermsg, *roommsg,*missing;
char spell[21];
};
typedef struct co_struct* CO_OBJECT;
struct user_struct {
int id;
int visitor;
char name[USER_NAME_LEN+1];
char desc[DESC_CHAR_LEN+1];
char pass[PASS_LEN+50];
char wizpass[PASS_LEN+50];
char email[EMAIL_LEN+1],requestemail[EMAIL_LEN+1];
char sname[3][20];
int zaradeny;
int sex;
char lasttellfrom[USER_NAME_LEN+1],lasttellto[USER_NAME_LEN+1];
int lasttg;
char prevname[USER_NAME_LEN+1];
char follow[USER_NAME_LEN+1],smsfollow[15];
char sell_to[USER_NAME_LEN+1];
char in_phrase[PHRASE_LEN+1],out_phrase[PHRASE_LEN+1];
char buff[BUFSIZE+10],site[82],last_site[82],page_file[82];
char mail_to[WORD_LEN+1], *revbuff[REVTELL_LINES+1];
char afk_mesg[AFK_MESG_LEN+1],inpstr_old[REVIEW_LEN+2];
struct room_struct *room,*invite_room,*into,*from;
int type,port,site_port,login,socket,attempts;
unsigned int buffpos,filepos;
int vis,ignall,prompt,command_mode,muzzled,muzzletime,charmode_echo;
int level,cloak,misc_op,edit_line,charcnt,warned;
int accreq,last_login_len,ignall_store,clone_hear,afk;
int edit_op,colour,ignore,ignshout,igntell,ignportal,ignbeep,ignio, revline,jailed;
int ignsys,ignfun,ignzvery,igncoltell,ignportalis;
int ignblink,ignpict,ignspell;
time_t last_input,last_login,total_login,read_mail,first_login,idletime;
char *malloc_start,*malloc_end;
struct user_struct *prev,*next,*owner;
int pp, mana;
char homepage[HOMEPAGE_LEN+1];
char lastcommand[23],lastcommand2[23];
int pridavacas;
int lastidle,lastidle2,lastidle3;
char newpass[PASS_LEN+50];
char chanp[USER_NAME_LEN+1];
int has_ignall;
char uname[20],pis[21][21],znak;
int joined,tah,last_x,last_y,game,moves;
int alarm, hang_stage;
char copyto[MAX_COPIES+1][USER_NAME_LEN+1];
char hang_word[60], hang_word_show[60], hang_guess[60];
int lines,storelines,colms,wrap,who_type,rt_on_exit;
int predmet[BODY],dur[BODY],carry;
int zuje, glue, prehana,stars,lsd;
int zuje_t, kridla_t,prehana_t,prehana_t2, muzzle_t;
int lieta, viscount, afro;
char call[21];
char shtable[10][10];
int shmode, shbuild, shstatus, zasah;
int browsing, messnum, lab;
int lastm, autofwd, pagewho, examine, lang,com_priority;
char real_ident[101];
char remote_ident[81];
char subject[150];
int doom;
int doom_energy;
int doom_score;
int doom_ammo[3];
int doom_loading;
int doom_weapon;
int doom_heading;
int doom_x;
int doom_y;
int doom_sayon;
int newtell, tellpos;
int com_counter;
struct macro_struct *macrolist;
struct notify_struct *notifylist,*ignorelist,*combanlist;
int igngossip,quest,flood;
char prompt_string[PROMPT_LEN+2];
int dead;
int rjoke_from;
struct pager_struct *pager;
int pageno;
char ignword[WORD_LEN+1];
int saturate,idle;
int autosave,histpos;
char history[HISTORY_LINES+1][HISTORY_LEN+1];
char remote_name[USER_NAME_LEN+1],remote_passwd[PASS_LEN+100];
int remote_login_socket,remote_login;
struct remote_struct *remote[MAX_CONNECTIONS];
int remote_socket[MAX_CONNECTIONS], ircsocknum;
int actual_remote_socket,fds,remote_fds[MAX_CONNECTIONS];
int akl;
char irc_chan[50], irc_nick[21], irc_defnick[21], irc_name[51], irc_serv[12], *revirc[REVIRC_LINES+1];
char channels[10][50];
pid_t lynx;
int sayflood, revircline, irc_reg;
int statline, statlcount, newline, statlcan, remtelopt;
struct blackjack_game_struct *bj_game;
int ignlook;
int reversi_plan[8][8];
struct user_struct *reversi_sh; /*SpoluHrac*/
int reversi_natahu;
int reversi_znak;
int reversi_cislotahu;
int reversi_jept; /*Je Posledny Tah*/
int reversi_ptX,reversi_ptY; /*Posledny Tah X Y*/
unsigned char **miny_tab;
unsigned int miny_x,miny_y,miny_h;
struct dama_struct *dama;
struct cl_struct *clovece;
int chrac,clovecewin,dhrac;
struct user_struct *clovece_starter,*dama_opp;
char ipcka[20];
int col[7];
struct user_struct *farar_starter;
struct fr_struct *farar;
int fhrac,fararwin,cps,goafkafter,killmeafter;
char reserved[10];
int commused[11],ignafktell,igngames,mailnotify,ignautopromote;
int totaljailtime,killed,totalmuzzletime,nontimejails;
int gold,swapped,shoutswears,sayswears,hangups,hangupz;
int ignxannel,ignnongreenhorn,multiply,lastrevt,lastrevs,lastrevi;
struct xa_struct *xannel;
struct user_struct *invite2xannel,*nox;
int sell_price,sell_what,ep_line,affected,affecttime,affpermanent;
int smsssent,smsday,allowsms,smswait,smsgate,smschars;
char mobile[21],logoutmsg[61];
int team,way,weapon,hidden,reveal,attacking;
int kills,deaths,health,heal,deathtype,head,body,feets,target;
int switches,shortcutwarning,temp,wizactivity,age,agecode;
int longestsession,mail2sms,timeinrevt,miscoptime;
int macro_num,notify_num,ap,websecond;
int skip,exams,kontrola,messsize,special;
char findstr[20],request[7];
char shoutmsg[21],shoutmsg2[21],gossipmsg[21],gossipmsg2[21];
char saymsg[21],saymsg2[21],tellmsg[21],tellmsg2[21];
char wizshmsg[21],wizshmsg2[21];
char where[31];
xmlTextWriterPtr xml_writer;
xmlBufferPtr xml_buffer;
int output_format;
};
typedef struct user_struct* UR_OBJECT;
UR_OBJECT user_first,user_last, remote_user_active;
struct pollfd fds[MAX_POLL];
struct room_struct {
char name[ROOM_NAME_LEN+1];
char name_en[ROOM_NAME_LEN+1];
char label[ROOM_LABEL_LEN+1];
char *desc_sk;
char *desc_en;
char topic[COOLBUF_LEN+1];
char *revbuff[REVIEW_LINES+1];
char from[ROOM_NAME_LEN+21];
char into[ROOM_NAME_LEN+21];
char where[ROOM_NAME_LEN+21];
char lemmein[USER_NAME_LEN+1];
char topicmaker[USER_NAME_LEN+1];
int countdown;
int access;
int revline;
int group;
int mesg_cnt;
int sndproof;
int invisible;
int logging;
char link_label[MAX_LINKS][ROOM_LABEL_LEN+1];
int predmet[MPVM+1];
int dur[MPVM+1];
struct room_struct *link[MAX_LINKS];
struct room_struct *next;
};
typedef struct room_struct *RM_OBJECT;
RM_OBJECT room_first,room_last,create_room();
#define syserror "Prepac, nastala systemova chyba"
#define nosuchroom "Taka miestnost neexistuje.\n"
#define nosuchroom_en "There is no such room.\n"
#define nosuchuser "Taky uzivatel neexistuje.\n"
#define notloggedon "Nikto s takym menom nie je momentalne prihlaseny.\n"
#define invisenter2 "Neznamy vstupil do miestnosti...\n"
#define invisenter(user) pohl(user,"Neznamy vstupil do miestnosti...\n","Neznama vstupila do miestnosti...\n")
#define invisleave2 "Neznamy opustil miestnost...\n"
#define invisleave(user) pohl(user,"Neznamy opustil miestnost...\n","Neznama opustila miestnost...\n")
#define invisname(user) pohl(user,"\253Im","\253Iz")
#define invisname2(user) pohl(user,"Neznamy","Neznama")
#define nocolors "Nemozes pouzivat farby.\n"
#define noswearing "U nas sa nenadava, ty grobian!\n"
#define NOEXITS "noexits"
#define ZALAR_TLT_CONSUMPTION 30
#define T_SIZE ARR_SIZE*3
void query_com(UR_OBJECT user,char *inpstr);
char ipcka_glob[20];
char text[T_SIZE+2];
char texthb[T_SIZE+2];
char word[MAX_WORDS+1][WORD_LEN*2];
char irc_word[MAX_IRC_WORDS+1][IRC_WORD_LEN+1];
char irc_lw[IRC_WORD_LEN+1];
char wrd[10][100];
char progname[40],confile[40];
char motd2_file[100];
char teamname[5][31];
char *motd;
time_t boot_time;
jmp_buf jmpvar;
int port[2],listen_sock[2],wizport_level,minlogin_level;
int colour_def,password_echo,ignore_sigterm;
int max_users,max_clones,num_of_users,num_of_logins,heartbeat,disable_web;
int login_idle_time,user_idle_time,config_line;
unsigned int word_count;
int tyear,tmonth,tday,tmday,twday,thour,tmin,tsec;
int mesg_life,system_logging,prompt_def,no_prompt;
int force_listen,gatecrash_level,min_private_users;
int ignore_mp_level,max_sms,last_memory,smscycle;
int destructed,mesg_check_hour,mesg_check_min,net_idle_time;
int ban_swearing,crash_action,april;
unsigned int lastrand;
int time_out_afks,allow_caps_in_name,rs_countdown,pp_zapnute;
int charecho_def,time_out_maxlevel,zvery_speed,visit;
int max_id,backuptime,sendvec;
time_t rs_announce,rs_which;
UR_OBJECT rs_user;
UR_OBJECT current_user;
#define MAXCARRY 40
#define MAX_PREDMETY 300
#define MAX_CONVERT 100
P_OBJECT predmet[MAX_PREDMETY+1];
CO_OBJECT convert[MAX_CONVERT];
char *long_date();
struct macro_struct *defaultmacrolist;
struct room_struct *testroom;
#ifndef AUTHUSER_H
#define AUTHUSER_H
extern unsigned short auth_tcpport;
extern int auth_rtimeout;
extern char *auth_xline();
extern int auth_fd();
extern int auth_fd2();
extern int auth_tcpsock();
extern char *auth_tcpuser(register unsigned long in,register unsigned short local,register unsigned short remote);
extern char *auth_tcpuser2(register unsigned long inlocal,register unsigned long inremote,register unsigned short local,register unsigned short remote);
extern char *auth_tcpuser3();
extern char *auth_tcpuser4();
extern char *auth_sockuser(register int s,register unsigned short local,register unsigned short remote);
extern char *auth_sockuser2(register int s,register unsigned short local,register unsigned short remote,int rtimeout);
#endif
#define MAXSTRING 150 /* maximalna dlzka stringu v scenari */
#define ZERO 0
long play_nxt(void);
long asctomin(char string[], int upd);
char *chrcat(char *dest, char src);
RN_OBJECT create_remote(UR_OBJECT user);
int init_remote_connections(UR_OBJECT user);
int connect_to_site();
int exec_remote_com();
void remote_close();
/* D00M */
#define D_LINES 7 /* Velkost okna s DOOMom */
#define D_COLMS 100 /* Buffer pre dlzku okna */
#define D_LOCAT 21 /* Pocet lokaci v grfile */
#define D_MAPX 5 /* X-ova velkost mapy (sirka) */
#define D_MAPY 5 /* Y-ova velkost mapy (vyska) */
#define D_AMMO 20 /* Gulovnica */
#define D_GRAPH "doom/graph.doom"
#define D_DATA "doom/data.doom"
int doom_status;
int doom_players;
char doom_grf[D_LOCAT][D_LINES][D_COLMS];
char doom_map[D_MAPY][D_MAPX][5];
extern UR_OBJECT doom_get_user(int x,int y);
extern UR_OBJECT doom_check_view(UR_OBJECT user);
extern void doom(UR_OBJECT user,char *inpstr);
extern void doom_showmap(UR_OBJECT user);
extern void write_doom(UR_OBJECT user,int location);
extern void doom_checkround(int x,int y);
extern void doom_load_users(void);
extern void doom_loser(UR_OBJECT user);
extern int doom_join(UR_OBJECT user);
extern int doom_check(int x,int y,int smer);
extern int doom_init(void);
extern int doom_points_check(UR_OBJECT user);
extern void doom_text(UR_OBJECT user,char *msg,int beep);
extern void doom_quit(UR_OBJECT user);
extern void doom_who(UR_OBJECT user);
extern void doom_wall(UR_OBJECT user,char *msg);
struct {
int time; /* Uz bude sluzit len pocas playovania */
int hodina, minuta; /* Hodina a minuta zaciatku dalsieho predstavenia */
char on; /* flag: 0-caka hru; 1-hra; 2-vypnute */
char name[80]; /* dalsi citany "scenar", meno suboru */
char nazov[80];
FILE *file; /* subor so "scenarom", resp. pointer nan */
} play;
int logcommands;
unsigned short auth_tcpport;
int auth_rtimeout;
#define SIZ 500
#define MAX_CHAR_BUFF 380
#ifdef FNONBLOCK /* SYSV,AIX,SOLARIS,IRIX,HP-UX */
# define NBLOCK_CMD FNONBLOCK
#else
# ifdef O_NDELAY /* BSD,LINUX,SOLARIS,IRIX */
# define NBLOCK_CMD O_NDELAY
# else
# ifdef FNDELAY /* BSD,LINUX,SOLARIS,IRIX */
# define NBLOCK_CMD FNDELAY
# else
# ifdef FNBIO /* SYSV */
# define NBLOCK_CMD FNBIO
# else
# ifdef FNONBIO /* ? */
# define NBLOCK_CMD FNONBIO
# else
# ifdef FNONBLK /* IRIX */
# define NBLOCK_CMD FNONBLK
# else
# define NBLOCK_CMD 0
# endif
# endif
# endif
# endif
# endif
#endif
#define talker_signature "-------\nAtlantis talker (telnet %s %d, %s)\n"
#define QLEADER 6 /* min. level "questleadra" */
#define QUEST_DIR "quest"
struct {
int queston; /* Flag ci bezi ci nje */
int lastquest; /* Iba jeden quest za den */
char lq_time[10]; /* Kedy bol posl. quest */
char lq_leader[13]; /* Leader posl. questu */
char lq_winner[13]; /* Vitaz posl. questu */
char questfilename[80]; /* Zaznam questu - filename */
} quest;
int ship_timer;
#define SHIPPING_ISLAND "ostrov"
#define SHIPPING_HOME "pristav"
#define SHIPPING_SHIP "plachetnica"
#define PORTALIS_KISS "luka"
#define BRUTALIS "brutalis"
char *alt_island_desc;
char *alt_home_desc;
char *alt_plachetnica_desc;
void make_travel();
void link_room(RM_OBJECT, RM_OBJECT);
void unlink_room(RM_OBJECT, RM_OBJECT);
void link_room_oneway(RM_OBJECT room,RM_OBJECT rm);
#define FLYER_TIMEOUT 15
#define FLYER_ROOM "letun"
#define FLYER_HOME "vzdusny_pristav"
#define FLYER_LAND "namestie"
struct {
int pozicia; /* Pozicia letuna */
int vykon; /* Vykon eletioveho cerpadla */
int mind; /* Posobenie silou vole */
int vyska; /* ...co to asi bude... */
int palivo; /* Stava! */
int vzdialenost; /* Kolko uz toho preletel... */
int timeout; /* Nespiiime, startujeme! */
int gotta_write; /* ci zapise skore a ci nie */
char pilot[20]; /* Kto to bude pilotovat */
} flyer;
struct {
int on; /* ci guest mode prave bezi */
int getuser; /* ci ma vediet getnut usera guest */
UR_OBJECT user; /* pointer na usera guestoweho */
UR_OBJECT moderator; /* pointer na moderatora */
UR_OBJECT talk; /* pointer na toho kto moze polozit otazku */
char name[40]; /* meno - pojde do descu a do sayu */
} guest;
#define GUEST_ROOM "krcma"
void flyer_fly();
int check_crash_flyer();
void eject(UR_OBJECT user);
#define MAX_COMMANDS 5
#define TRUE 1
#define FALSE 0
#define OUTPUT_FORMAT_PLAIN 1
#define OUTPUT_FORMAT_XML 2
#define INPUT_SEP '\\' /* cim sa bude separovatj */
#define NUM_MAC_PARAM 10 /* max. pocet parametrof macra */
struct macro_struct {
char *name;
char *value;
int star;
int is_running;
struct macro_struct *next;
};
typedef struct macro_struct *MACRO;
enum result {SUCCESS,FAIL};
void free_macrolist(MACRO *list);
void free_macro(MACRO macro);
int save_macros(MACRO *list,char *filename);
int load_macros(MACRO *list,int id);
void macro(MACRO *list,char *input,UR_OBJECT user,int is_action);
void global_macros(UR_OBJECT user);
void delete_macro(UR_OBJECT user, MACRO *list,char *name);
int update_macro(UR_OBJECT user, MACRO macro,char *value);
void add_macro(MACRO *list,char *name,char *value);
MACRO allocate_macro(char *macroname,char *macrovalue);
MACRO ismacro(MACRO *list,MACRO *deflist,char *name);
MACRO findmacro(MACRO *list,MACRO *deflist,char *name);
MACRO findprevmacro(MACRO *list,char *name);
void parse(UR_OBJECT user,char *string, int irc);
int macroexpand(MACRO *list,MACRO *deflist,char *expansion,UR_OBJECT user, int irc);
void fix_separators(char *input,char *output);
char todigit(char c);
void check_death();
void got_line(UR_OBJECT user,char *inpstr);
void free_notifylist(NOTIFY *list);
int load_notifylist(NOTIFY *list,int id,int noti);
int delete_notify(NOTIFY *list, char *meno);
void add_notify(NOTIFY *list, char *name);
#define DEFAULT_BJ_BET 10
#define USE_MONEY_SYSTEM 0
struct blackjack_game_struct {
short int deck[60],hand[10],dealer_hand[10],bet,cardpos;
};
typedef struct blackjack_game_struct *BJ_GAME;
RM_OBJECT get_room(char *name,UR_OBJECT user);
RM_OBJECT get_linked_room(char *name,RM_OBJECT room);
char *meniny(int mday, int mmonth);
char *datum_menin(char *meno);
char *get_temp_file();
char *pohl(UR_OBJECT user, char *muz, char *zena);
char *zwjpohl(int vec, char *muz, char *zena, char *ono, char *ich);
int expand_predmet(char *vec1);
void zazuvackuj(char *inpstr, int ok);
void zachlastaj(char *inpstr, int ok);
void zachlastaj2(char *inpstr, int ok);
void zalamerizuj(char *inpstr, int ok);
void debilneho(char *inpstr, int ok);
void pohaluz_predmetom(char *inpstr,unsigned int ok,int vec);
void do_funct_stuff(UR_OBJECT user,char *inpstr,int start);
char *real_user(UR_OBJECT gdo);
char *sklonuj(UR_OBJECT juzer, int pad);
char *skloncislo(int pocet,char *squirrel,char *squirrle,char *squirrelov);
char *lamerize(char buf[]);
char *lame_color(char buf[],int typ);
char *revert(char vstup[]);
char *colour_com_strip2(char *str,int usercol);
char nxtznak(char *string);
int check_passwd_simplex(char *passwd);
char *expand_password(char *pass);
void zrus_pager_haldu(UR_OBJECT user);
void aklient_log(char *meno);
int skontroluj();
int quotacheck(char *username);
int showfile(UR_OBJECT user, char filename[90]);
int showrow(UR_OBJECT user);
void write_user(UR_OBJECT user,char *str);
void write_level(int level,int above,char *str,UR_OBJECT user);
void writesys(int level, int above,char *str,UR_OBJECT user);
void write_room(RM_OBJECT rm, char *str);
void write_room_except(RM_OBJECT rm, char *str, UR_OBJECT user);
void write_room_except2users(RM_OBJECT rm, char *str, UR_OBJECT user, UR_OBJECT user2);
void write_syslog(char *str,int write_time);
void record(RM_OBJECT rm,char *str);
void record_tell(UR_OBJECT user,char *str);
void record_shout(char *str);
void record_portalisshout(char *lbl,char *str);
void record_gossip(char *str);
void record_quest(char *str);
void record_wizshout(char *str);
void record_lastlog(UR_OBJECT user, int spent, char *dovod);
int more(UR_OBJECT user,int sock,char *filename);
int sqlmore(UR_OBJECT user,int sock,char* queryname);
int mailmore(UR_OBJECT user);
char *sqldatum(char *str,int telnet_cols,int type);
char *boarddate(char *dejt);