From 5cfe00df82a69f44187b1cd77fe3d6865cf3425f Mon Sep 17 00:00:00 2001 From: fusion32 Date: Tue, 1 Jul 2025 09:26:06 -0300 Subject: `reader.cc` --- reference/game.c | 6791 ++++++---------------------------------------------- reference/types.hh | 17 - 2 files changed, 685 insertions(+), 6123 deletions(-) (limited to 'reference') diff --git a/reference/game.c b/reference/game.c index c24661d..955fb2a 100644 --- a/reference/game.c +++ b/reference/game.c @@ -1,6096 +1,740 @@ -void _init(void) - -{ - call_gmon_start(); - frame_dummy(); - __do_global_ctors_aux(); - return; -} - - - -void FUN_0804a82c(void) - -{ - (*(code *)(undefined *)0x0)(); - return; -} - - - -// std::filebuf::~filebuf() - -void __thiscall std::filebuf::~filebuf(filebuf *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::istream::peek() - -void std::istream::peek(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_cond_wait(pthread_cond_t *__cond,pthread_mutex_t *__mutex) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_detach(pthread_t __th) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_attr_init(pthread_attr_t *__attr) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int sigfillset(sigset_t *__set) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int usleep(__useconds_t __useconds) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __divdi3(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __cxa_allocate_exception(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int rename(char *__old,char *__new) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int sigaction(int __sig,sigaction *__act,sigaction *__oact) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -char * strchr(char *__s,int __c) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - +// DBFUNCS.CC -> PLAYERLOADER.CC ? +//============================================================================== // WARNING: Unknown calling convention -- yet parameter storage is locked -// std::istream::get() -void std::istream::get(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int ungetc(int __c,FILE *__stream) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __cxa_pure_virtual(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::filebuf::filebuf() - -void __thiscall std::filebuf::filebuf(filebuf *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -__pid_t getpid(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::string::_Rep::_M_dispose(std::allocator const&) - -void std::string::_Rep::_M_dispose(allocator *param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_attr_setstacksize(pthread_attr_t *__attr,size_t __stacksize) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::ios_base::~ios_base() - -void __thiscall std::ios_base::~ios_base(ios_base *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int isprint(int param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::ostream::TEMPNAMEPLACEHOLDERVALUE(long) - -void __thiscall std::ostream::operator<<(ostream *this,long param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -ssize_t write(int __fd,void *__buf,size_t __n) +void PlayerDataPath(void) { - do { - // WARNING: Do nothing block with infinite loop - } while( true ); + uint in_stack_00000004; + char *in_stack_0000000c; + + sprintf(in_stack_0000000c,"%s/%02ld/%ld.%s",USERPATH,in_stack_00000004 % 100); + return; } -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int poll(pollfd *__fds,nfds_t __nfds,int __timeout) +bool PlayerDataExists(ulong CharacterID) { - do { - // WARNING: Do nothing block with infinite loop - } while( true ); + bool bVar1; + char local_100c [4]; + char FileName [4096]; + + sprintf(local_100c,"%s/%02ld/%ld.%s",USERPATH,CharacterID % 100,CharacterID,&DAT_080f6560); + bVar1 = FileExists(local_100c); + return bVar1; } -// WARNING: Unknown calling convention -- yet parameter storage is locked +// WARNING: Removing unreachable block (ram,0x0806d081) +// WARNING: Removing unreachable block (ram,0x0806d0da) +// WARNING: Removing unreachable block (ram,0x0806d08b) +// WARNING: Removing unreachable block (ram,0x0806d095) +// WARNING: Removing unreachable block (ram,0x0806d0c7) +// WARNING: Removing unreachable block (ram,0x0806d0a0) -tm * localtime(time_t *__timer) +bool LoadPlayerData(TPlayerData *Slot) { - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int strcmp(char *__s1,char *__s2) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int close(int __fd) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::istream::~istream() - -void __thiscall std::istream::~istream(istream *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int fprintf(FILE *__stream,char *__format,...) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -__pid_t fork(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -char * getenv(char *__name) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -__mode_t umask(__mode_t __mask) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_create(pthread_t *__newthread,pthread_attr_t *__attr,__start_routine *__start_routine, - void *__arg) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int unlink(char *__name) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int sigblock(int __mask) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::terminate() - -void std::terminate(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int vsnprintf(char *__s,size_t __maxlen,char *__format,__gnuc_va_list __arg) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -char * strerror(int __errnum) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_cancel(pthread_t __th) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __cxa_call_unexpected(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::ios::clear(std::_Ios_Iostate) - -void std::ios::clear(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __cxa_atexit(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// operator delete(void*) - -void operator_delete(void *param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int * __errno_location(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -long ftell(FILE *__stream) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int accept(int __fd,sockaddr *__addr,socklen_t *__addr_len) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_attr_setstack(pthread_attr_t *__attr,void *__stackaddr,size_t __stacksize) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -char * inet_ntoa(in_addr __in) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::ios_base::ios_base() - -void __thiscall std::ios_base::ios_base(ios_base *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int puts(char *__s) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int listen(int __fd,int __n) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::istream::TEMPNAMEPLACEHOLDERVALUE(int&) - -void __thiscall std::istream::operator>>(istream *this,int *param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void * malloc(size_t __size) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int sched_yield(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -__pid_t setsid(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_mutex_init(pthread_mutex_t *__mutex,pthread_mutexattr_t *__mutexattr) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -size_t strftime(char *__s,size_t __maxsize,char *__format,tm *__tp) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_mutex_destroy(pthread_mutex_t *__mutex) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pipe(int *__pipedes) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -size_t fread(void *__ptr,size_t __size,size_t __n,FILE *__stream) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void * memmove(void *__dest,void *__src,size_t __n) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int setitimer(__itimer_which_t __which,itimerval *__new,itimerval *__old) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::ostream::~ostream() - -void __thiscall std::ostream::~ostream(ostream *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __cxa_rethrow(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::__basic_file::~__basic_file() - -void __thiscall std::__basic_file::~__basic_file(__basic_file *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int shmget(key_t __key,size_t __size,int __shmflg) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void abort(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __cxa_throw(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::filebuf::open(char const*, std::_Ios_Openmode) - -int std::filebuf::open(char *__file,int __oflag,...) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int __xstat(int __ver,char *__filename,stat *__stat_buf) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int setsockopt(int __fd,int __level,int __optname,void *__optval,socklen_t __optlen) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -long sysconf(int __name) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int execv(char *__path,char **__argv) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int getpeername(int __fd,sockaddr *__addr,socklen_t *__len) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int fseek(FILE *__stream,long __off,int __whence) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -__pid_t waitpid(__pid_t __pid,int *__stat_loc,int __options) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -time_t time(time_t *__timer) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int __sigpause(int __sig_or_mask,int __is_sig) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_mutex_lock(pthread_mutex_t *__mutex) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int execlp(char *__file,char *__arg,...) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::streambuf::~streambuf() - -void __thiscall std::streambuf::~streambuf(streambuf *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int chdir(char *__path) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::locale::~locale() - -void __thiscall std::locale::~locale(locale *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::filebuf::close() - -int std::filebuf::close(int __fd) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -char * strstr(char *__haystack,char *__needle) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -size_t strlen(char *__s) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -uint sleep(uint __seconds) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __cxa_end_catch(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __strtol_internal(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int rand_r(uint *__seed) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::__throw_logic_error(char const*) - -void std::__throw_logic_error(char *param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_cond_signal(pthread_cond_t *__cond) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::ios::~ios() - -void __thiscall std::ios::~ios(ios *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::bad_alloc::~bad_alloc() - -void __thiscall std::bad_alloc::~bad_alloc(bad_alloc *this) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int sigprocmask(int __how,sigset_t *__set,sigset_t *__oset) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -in_addr_t inet_addr(char *__cp) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __gxx_personality_v0(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_cond_init(pthread_cond_t *__cond,pthread_condattr_t *__cond_attr) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int shmdt(void *__shmaddr) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::string::_Rep::_S_create(unsigned int, std::allocator const&) - -void std::string::_Rep::_S_create(uint param_1,allocator *param_2) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int putc(int __c,FILE *__stream) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __libc_start_main(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::string::reserve(unsigned int) - -void std::string::reserve(uint param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::istream::istream(std::streambuf*) - -void __thiscall std::istream::istream(istream *this,streambuf *param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int dup2(int __fd,int __fd2) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -char * strcat(char *__dest,char *__src) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_attr_destroy(pthread_attr_t *__attr) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int printf(char *__format,...) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int bind(int __fd,sockaddr *__addr,socklen_t __len) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int fcntl(int __fd,int __cmd,...) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void * memcpy(void *__dest,void *__src,size_t __n) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::__throw_length_error(char const*) - -void std::__throw_length_error(char *param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int fclose(FILE *__stream) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -char * ctime(time_t *__timer) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int gethostbyname_r(char *__name,hostent *__result_buf,char *__buf,size_t __buflen, - hostent **__result,int *__h_errnop) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int shmctl(int __shmid,int __cmd,shmid_ds *__buf) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::ostream::TEMPNAMEPLACEHOLDERVALUE(unsigned long) - -void __thiscall std::ostream::operator<<(ostream *this,ulong param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int closedir(DIR *__dirp) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void srand(uint __seed) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -DIR * opendir(char *__name) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int snprintf(char *__s,size_t __maxlen,char *__format,...) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int sigemptyset(sigset_t *__set) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::stringbuf::stringbuf(std::string const&, std::_Ios_Openmode) - -void __thiscall std::stringbuf::stringbuf(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_join(pthread_t __th,void **__thread_return) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void pthread_exit(void *__retval) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void exit(int __status) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int sscanf(char *__s,char *__format,...) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void free(void *__ptr) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void __cxa_begin_catch(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void * memset(void *__s,int __c,size_t __n) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int connect(int __fd,sockaddr *__addr,socklen_t __len) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_cond_destroy(pthread_cond_t *__cond) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -char * strncpy(char *__dest,char *__src,size_t __n) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::__default_alloc_template::deallocate(void*, unsigned int) - -void std::__default_alloc_template::deallocate(void *param_1,uint param_2) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -FILE * fopen(char *__filename,char *__modes) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int sigwait(sigset_t *__set,int *__sig) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void _Unwind_Resume(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::istream::get(char*, int, char) - -void std::istream::get(char *param_1,int param_2,char param_3) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int pthread_mutex_unlock(pthread_mutex_t *__mutex) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// operator new[](unsigned int) - -void * operator_new__(uint param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int kill(__pid_t __pid,int __sig) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int getc(FILE *__stream) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// operator delete[](void*) - -void operator_delete__(void *param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int sprintf(char *__s,char *__format,...) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::ios::init(std::streambuf*) - -int std::ios::init(EVP_PKEY_CTX *ctx) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -size_t fwrite(void *__ptr,size_t __size,size_t __n,FILE *__s) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// std::ostream::ostream(std::streambuf*) - -void __thiscall std::ostream::ostream(ostream *this,streambuf *param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int socket(int __domain,int __type,int __protocol) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -dirent * readdir(DIR *__dirp) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// std::string::_M_mutate(unsigned int, unsigned int, unsigned int) - -void std::string::_M_mutate(uint param_1,uint param_2,uint param_3) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -int rand(void) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -ssize_t read(int __fd,void *__buf,size_t __nbytes) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked -// operator new(unsigned int) - -void * operator_new(uint param_1) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -uint alarm(uint __seconds) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void * shmat(int __shmid,void *__shmaddr,int __shmflg) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -char * strcpy(char *__dest,char *__src) - -{ - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void processEntry _start(undefined4 param_1,undefined4 param_2) - -{ - undefined1 auStack_4 [4]; - - __libc_start_main(main,param_2,&stack0x00000004,__libc_csu_init,__libc_csu_fini,param_1, - auStack_4); - do { - // WARNING: Do nothing block with infinite loop - } while( true ); -} - - - -void call_gmon_start(void) - -{ - __gmon_start__(); - return; -} - - - -void __do_global_dtors_aux(void) - -{ - code *pcVar1; - - if (completed_1 == '\0') { - completed_1 = 0; - pcVar1 = *(code **)p_0; - while (pcVar1 != (code *)0x0) { - p_0 = p_0 + 4; - (*pcVar1)(); - pcVar1 = *(code **)p_0; - } - completed_1 = '\x01'; - } - return; -} - - - -// WARNING: Removing unreachable block (ram,0x0804b29c) - -void frame_dummy(void) - -{ - return; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - } - return; -} - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_BeADaemon(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void SetPrintFunction(TPrintFunction *Function) - -{ - PrintFunction = Function; - return; -} - - - -void SetErrorFunction(TErrorFunction *Function) - -{ - ErrorFunction = Function; - return; -} - - - -void SilentHandler(int param_1,char *param_2) - -{ - return; -} - - - -void SilentHandler(char *param_1) - -{ - return; -} - - - -void LogfileHandler(int param_1,char *Text) - -{ - FILE *__stream; - int iVar1; - FILE *f; - - if (StandardLogfile[0] != '\0') { - __stream = fopen(StandardLogfile,"at"); - if (__stream != (FILE *)0x0) { - fprintf(__stream,"%s",Text); - iVar1 = fclose(__stream); - if (iVar1 != 0) { - __errno_location(); - error(&DAT_080eeb60); - return; - } - } - } - return; -} - - - -void LogfileHandler(char *Text) - -{ - FILE *__stream; - int iVar1; - int *piVar2; - FILE *f; - - if (StandardLogfile[0] != '\0') { - __stream = fopen(StandardLogfile,"at"); - if (__stream != (FILE *)0x0) { - fprintf(__stream,"%s",Text); - iVar1 = fclose(__stream); - if (iVar1 != 0) { - piVar2 = __errno_location(); - error(&DAT_080eeb60,*piVar2); - } - } - } - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void print(void) - -{ - int in_stack_00000004; - char *in_stack_00000008; - char local_40c [4]; - char s [1024]; - - vsnprintf(local_40c,0x400,in_stack_00000008,&stack0x0000000c); - if (PrintFunction == (TPrintFunction *)0x0) { - printf("%s",local_40c); - } - else { - (*PrintFunction)(in_stack_00000004,local_40c); - } - return; -} - -int val(char c) - -{ - int iVar1; - - if ((byte)(c - 0x30U) < 10) { - iVar1 = c + -0x30; - } - else if ((byte)(c + 0xbfU) < 6) { - iVar1 = c + -0x37; - } - else if ((byte)(c + 0x9fU) < 6) { - iVar1 = c + -0x57; - } - else { - iVar1 = 0; - } - return iVar1; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -long random(void) - -{ - int iVar1; - int iVar2; - int range; - int in_stack_00000004; - int in_stack_00000008; - - iVar1 = (in_stack_00000008 - in_stack_00000004) + 1; - if (0 < iVar1) { - iVar2 = rand(); - in_stack_00000004 = iVar2 % iVar1 + in_stack_00000004; - } - return in_stack_00000004; -} - - - -bool FileExists(char *FileName) - -{ - int *piVar1; - int iVar2; - bool bVar3; - undefined1 local_6c [4]; - stat Buffer; - - piVar1 = __errno_location(); - *piVar1 = 0; - iVar2 = __xstat(3,FileName,(stat *)local_6c); - bVar3 = true; - if (iVar2 != 0) { - if (*piVar1 != 2) { - error("FileExists: Unerwarteter Fehlercode %d.\n",*piVar1); - } - bVar3 = false; - } - return bVar3; -} - - - -void TreatAllFiles(char *Directory,char *Extension,TFileHandlerFunction *Function) - -{ - uint *__dest; - dirent *DirectoryEntry; - DIR *__dirp; - dirent *pdVar1; - char *pcVar2; - size_t sVar3; - int iVar4; - uint uVar5; - uint uVar6; - uint *puVar7; - uint *puVar8; - DIR *WorkingDirectory; - bool bVar9; - char local_105c [4]; - char Name [64]; - char FileName [4096]; - - __dirp = opendir(Directory); - if (__dirp != (DIR *)0x0) { - while (pdVar1 = readdir(__dirp), pdVar1 != (dirent *)0x0) { - __dest = (uint *)(Name + 0x3c); - strcpy((char *)__dest,pdVar1->d_name); - puVar8 = __dest; - do { - puVar7 = puVar8; - uVar5 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar6 = uVar5 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar6 == 0); - bVar9 = (uVar5 & 0x8080) == 0; - if (bVar9) { - uVar6 = uVar6 >> 0x10; - } - if (bVar9) { - puVar8 = (uint *)((int)puVar7 + 6); - } - pcVar2 = (char *)strlen(Extension); - puVar7 = __dest; - if (pcVar2 < (char *)((int)puVar8 + - ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)__dest))) { - do { - puVar8 = puVar7; - uVar5 = *puVar8 + 0xfefefeff & ~*puVar8; - uVar6 = uVar5 & 0x80808080; - puVar7 = puVar8 + 1; - } while (uVar6 == 0); - bVar9 = (uVar5 & 0x8080) == 0; - if (bVar9) { - uVar6 = uVar6 >> 0x10; - } - puVar7 = (uint *)((int)puVar8 + 6); - if (!bVar9) { - puVar7 = puVar8 + 1; - } - sVar3 = strlen(Extension); - iVar4 = strcmp((char *)((int)puVar7 + - ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - sVar3)), - Extension); - if (iVar4 == 0) { - local_105c[0] = '\0'; - local_105c[1] = '\0'; - local_105c[2] = '\0'; - local_105c[3] = '\0'; - Name[0] = '\0'; - Name[1] = '\0'; - Name[2] = '\0'; - Name[3] = '\0'; - Name[4] = '\0'; - Name[5] = '\0'; - Name[6] = '\0'; - Name[7] = '\0'; - Name[0xc] = '\0'; - Name[0xd] = '\0'; - Name[0xe] = '\0'; - Name[0xf] = '\0'; - Name[0x10] = '\0'; - Name[0x11] = '\0'; - Name[0x12] = '\0'; - Name[0x13] = '\0'; - Name[0x14] = '\0'; - Name[0x15] = '\0'; - Name[0x16] = '\0'; - Name[0x17] = '\0'; - Name[0x18] = '\0'; - Name[0x19] = '\0'; - Name[0x1a] = '\0'; - Name[0x1b] = '\0'; - Name[0x1c] = '\0'; - Name[0x1d] = '\0'; - Name[0x1e] = '\0'; - Name[0x1f] = '\0'; - Name[8] = '\0'; - Name[9] = '\0'; - Name[10] = '\0'; - Name[0xb] = '\0'; - Name[0x20] = '\0'; - Name[0x21] = '\0'; - Name[0x22] = '\0'; - Name[0x23] = '\0'; - Name[0x24] = '\0'; - Name[0x25] = '\0'; - Name[0x26] = '\0'; - Name[0x27] = '\0'; - Name[0x28] = '\0'; - Name[0x29] = '\0'; - Name[0x2a] = '\0'; - Name[0x2b] = '\0'; - Name[0x30] = '\0'; - Name[0x31] = '\0'; - Name[0x32] = '\0'; - Name[0x33] = '\0'; - Name[0x34] = '\0'; - Name[0x35] = '\0'; - Name[0x36] = '\0'; - Name[0x37] = '\0'; - Name[0x2c] = '\0'; - Name[0x2d] = '\0'; - Name[0x2e] = '\0'; - Name[0x2f] = '\0'; - Name[0x38] = '\0'; - Name[0x39] = '\0'; - Name[0x3a] = '\0'; - Name[0x3b] = '\0'; - puVar8 = __dest; - do { - puVar7 = puVar8; - uVar5 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar6 = uVar5 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar6 == 0); - bVar9 = (uVar5 & 0x8080) == 0; - if (bVar9) { - uVar6 = uVar6 >> 0x10; - } - if (bVar9) { - puVar8 = (uint *)((int)puVar7 + 6); - } - sVar3 = strlen(Extension); - strncpy(local_105c,(char *)__dest, - (size_t)((int)puVar8 + - (((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)__dest) - - sVar3))); - (*Function)(Directory,local_105c,Extension); - } - } - } - closedir(__dirp); - } - return; -} - - - -void SendMail(char *Address,char *Subject,char *Text) - -{ - uint *puVar1; - int iVar2; - size_t sVar3; - int iVar4; - __pid_t _Var5; - int *piVar6; - uint *puVar7; - uint *puVar8; - uint uVar9; - uint uVar10; - char_0_ *Content; - bool bVar11; - int iStack_b0; - uint auStack_94 [4]; - undefined4 local_84; - int inode [2]; - stat StatBuffer; - - iStack_b0 = 0x804e4b9; - sVar3 = strlen(Text); - iVar2 = -(sVar3 + 0x7df & 0xfffffff0); - *(undefined1 *)((int)auStack_94 + iVar2) = 0; - puVar1 = (uint *)((int)auStack_94 + iVar2); - puVar8 = puVar1; - do { - puVar7 = puVar8; - uVar9 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar10 = uVar9 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar10 == 0); - bVar11 = (uVar9 & 0x8080) == 0; - if (bVar11) { - uVar10 = uVar10 >> 0x10; - } - if (bVar11) { - puVar8 = (uint *)((int)puVar7 + 6); - } - *(char **)(&stack0xffffff58 + iVar2) = "From: %s\n"; - *(uint *)((int)auStack_94 + iVar2 + -0x18) = - (int)puVar8 + (-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)); - *(char **)(&stack0xffffff5c + iVar2) = SendMail::sender; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e519; - sprintf(*(char **)((int)auStack_94 + iVar2 + -0x18),*(char **)(&stack0xffffff58 + iVar2)); - puVar8 = puVar1; - do { - puVar7 = puVar8; - uVar9 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar10 = uVar9 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar10 == 0); - bVar11 = (uVar9 & 0x8080) == 0; - if (bVar11) { - uVar10 = uVar10 >> 0x10; - } - if (bVar11) { - puVar8 = (uint *)((int)puVar7 + 6); - } - *(char **)(&stack0xffffff58 + iVar2) = "To: %s\n"; - *(uint *)((int)auStack_94 + iVar2 + -0x18) = - (int)puVar8 + (-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)); - *(char **)(&stack0xffffff5c + iVar2) = Address; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e567; - sprintf(*(char **)((int)auStack_94 + iVar2 + -0x18),*(char **)(&stack0xffffff58 + iVar2)); - puVar8 = puVar1; - do { - puVar7 = puVar8; - uVar9 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar10 = uVar9 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar10 == 0); - bVar11 = (uVar9 & 0x8080) == 0; - if (bVar11) { - uVar10 = uVar10 >> 0x10; - } - if (bVar11) { - puVar8 = (uint *)((int)puVar7 + 6); - } - *(char **)(&stack0xffffff58 + iVar2) = "Subject: %s\n"; - *(uint *)((int)auStack_94 + iVar2 + -0x18) = - (int)puVar8 + (-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)); - *(char **)(&stack0xffffff5c + iVar2) = Subject; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e5b7; - sprintf(*(char **)((int)auStack_94 + iVar2 + -0x18),*(char **)(&stack0xffffff58 + iVar2)); - puVar8 = puVar1; - do { - puVar7 = puVar8; - uVar9 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar10 = uVar9 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar10 == 0); - bVar11 = (uVar9 & 0x8080) == 0; - if (bVar11) { - uVar10 = uVar10 >> 0x10; - } - if (bVar11) { - puVar8 = (uint *)((int)puVar7 + 6); - } - *(char **)(&stack0xffffff58 + iVar2) = "Reply-To: %s\n"; - *(uint *)((int)auStack_94 + iVar2 + -0x18) = - (int)puVar8 + (-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)); - *(char **)(&stack0xffffff5c + iVar2) = SendMail::replyto; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e609; - sprintf(*(char **)((int)auStack_94 + iVar2 + -0x18),*(char **)(&stack0xffffff58 + iVar2)); - puVar8 = puVar1; - do { - puVar7 = puVar8; - uVar9 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar10 = uVar9 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar10 == 0); - bVar11 = (uVar9 & 0x8080) == 0; - if (bVar11) { - uVar10 = uVar10 >> 0x10; - } - if (bVar11) { - puVar8 = (uint *)((int)puVar7 + 6); - } - *(char **)(&stack0xffffff58 + iVar2) = "X-Mailer: %s\n"; - *(uint *)((int)auStack_94 + iVar2 + -0x18) = - (int)puVar8 + (-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)); - *(char **)(&stack0xffffff5c + iVar2) = SendMail::xmailer; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e659; - sprintf(*(char **)((int)auStack_94 + iVar2 + -0x18),*(char **)(&stack0xffffff58 + iVar2)); - puVar8 = puVar1; - do { - puVar7 = puVar8; - uVar9 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar10 = uVar9 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar10 == 0); - *(char **)(&stack0xffffff58 + iVar2) = "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; - bVar11 = (uVar9 & 0x8080) == 0; - if (bVar11) { - uVar10 = uVar10 >> 0x10; - } - if (bVar11) { - puVar8 = (uint *)((int)puVar7 + 6); - } - *(uint *)((int)auStack_94 + iVar2 + -0x18) = - (int)puVar8 + (-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)); - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e6a0; - sprintf(*(char **)((int)auStack_94 + iVar2 + -0x18),*(char **)(&stack0xffffff58 + iVar2)); - puVar8 = puVar1; - do { - puVar7 = puVar8; - uVar9 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar10 = uVar9 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar10 == 0); - *(char **)(&stack0xffffff58 + iVar2) = "\n"; - bVar11 = (uVar9 & 0x8080) == 0; - if (bVar11) { - uVar10 = uVar10 >> 0x10; - } - if (bVar11) { - puVar8 = (uint *)((int)puVar7 + 6); - } - *(uint *)((int)auStack_94 + iVar2 + -0x18) = - (int)puVar8 + (-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)); - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e6f0; - sprintf(*(char **)((int)auStack_94 + iVar2 + -0x18),*(char **)(&stack0xffffff58 + iVar2)); - puVar8 = puVar1; - do { - puVar7 = puVar8; - uVar9 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar10 = uVar9 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar10 == 0); - *(char **)(&stack0xffffff5c + iVar2) = Text; - *(char **)(&stack0xffffff58 + iVar2) = "%s\n"; - bVar11 = (uVar9 & 0x8080) == 0; - if (bVar11) { - uVar10 = uVar10 >> 0x10; - } - if (bVar11) { - puVar8 = (uint *)((int)puVar7 + 6); - } - *(uint *)((int)auStack_94 + iVar2 + -0x18) = - (int)puVar8 + (-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)); - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e744; - sprintf(*(char **)((int)auStack_94 + iVar2 + -0x18),*(char **)(&stack0xffffff58 + iVar2)); - *(undefined4 *)((int)auStack_94 + iVar2 + -0x18) = 3; - *(int **)(&stack0xffffff5c + iVar2) = inode + 1; - *(char **)(&stack0xffffff58 + iVar2) = SendMail::mailer; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e761; - iVar4 = __xstat(*(int *)((int)auStack_94 + iVar2 + -0x18),*(char **)(&stack0xffffff58 + iVar2), - *(stat **)(&stack0xffffff5c + iVar2)); - if (iVar4 == 0) { - *(undefined4 **)((int)auStack_94 + iVar2 + -0x18) = &local_84; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e78f; - iVar4 = pipe(*(int **)((int)auStack_94 + iVar2 + -0x18)); - if (iVar4 == 0) { - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e7a6; - _Var5 = fork(); - if (-1 < _Var5) { - puVar8 = puVar1; - if (_Var5 == 0) { - *(undefined4 *)(&stack0xffffff58 + iVar2) = 0; - *(undefined4 *)((int)auStack_94 + iVar2 + -0x18) = local_84; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e86a; - dup2(*(int *)((int)auStack_94 + iVar2 + -0x18), - *(int *)(&stack0xffffff58 + iVar2)); - *(undefined4 *)((int)auStack_94 + iVar2 + -0x18) = local_84; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e875; - iVar4 = close(*(int *)((int)auStack_94 + iVar2 + -0x18)); - if (iVar4 < 0) { - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e8e8; - piVar6 = __errno_location(); - iVar4 = *piVar6; - *(undefined **)((int)auStack_94 + iVar2 + -0x18) = &DAT_080eefa0; - *(int *)(&stack0xffffff58 + iVar2) = iVar4; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e8fa; - error(*(char **)((int)auStack_94 + iVar2 + -0x18)); - } - *(int *)((int)auStack_94 + iVar2 + -0x18) = inode[0]; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e884; - iVar4 = close(*(int *)((int)auStack_94 + iVar2 + -0x18)); - if (iVar4 < 0) { - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e8cf; - piVar6 = __errno_location(); - iVar4 = *piVar6; - *(undefined **)((int)auStack_94 + iVar2 + -0x18) = &DAT_080eef60; - *(int *)(&stack0xffffff58 + iVar2) = iVar4; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e8e1; - error(*(char **)((int)auStack_94 + iVar2 + -0x18)); - } - *(undefined4 *)(&stack0xffffff68 + iVar2) = 0; - *(char **)(&stack0xffffff64 + iVar2) = Address; - *(undefined **)(&stack0xffffff5c + iVar2) = &DAT_080eeb56; - *(char **)(&stack0xffffff60 + iVar2) = SendMail::envelope; - *(char **)(&stack0xffffff58 + iVar2) = SendMail::mailer; - *(char **)((int)auStack_94 + iVar2 + -0x18) = SendMail::mailer; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e8be; - execlp(*(char **)((int)auStack_94 + iVar2 + -0x18), - *(char **)(&stack0xffffff58 + iVar2)); - *(undefined4 *)((int)auStack_94 + iVar2 + -0x18) = 0; - // WARNING: Subroutine does not return - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e8ca; - exit(*(int *)((int)auStack_94 + iVar2 + -0x18)); - } - do { - puVar7 = puVar8; - uVar9 = *puVar7 + 0xfefefeff & ~*puVar7; - uVar10 = uVar9 & 0x80808080; - puVar8 = puVar7 + 1; - } while (uVar10 == 0); - *(uint **)(&stack0xffffff58 + iVar2) = puVar1; - bVar11 = (uVar9 & 0x8080) == 0; - if (bVar11) { - uVar10 = uVar10 >> 0x10; - } - if (bVar11) { - puVar8 = (uint *)((int)puVar7 + 6); - } - *(uint *)(&stack0xffffff5c + iVar2) = - (int)puVar8 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)puVar1); - *(int *)((int)auStack_94 + iVar2 + -0x18) = inode[0]; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e805; - write(*(int *)((int)auStack_94 + iVar2 + -0x18),*(void **)(&stack0xffffff58 + iVar2) - ,*(size_t *)(&stack0xffffff5c + iVar2)); - *(undefined4 *)((int)auStack_94 + iVar2 + -0x18) = local_84; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e810; - iVar4 = close(*(int *)((int)auStack_94 + iVar2 + -0x18)); - if (iVar4 < 0) { - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e843; - piVar6 = __errno_location(); - iVar4 = *piVar6; - *(undefined **)((int)auStack_94 + iVar2 + -0x18) = &DAT_080eef20; - *(int *)(&stack0xffffff58 + iVar2) = iVar4; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e855; - error(*(char **)((int)auStack_94 + iVar2 + -0x18)); - } - *(int *)((int)auStack_94 + iVar2 + -0x18) = inode[0]; - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e81f; - iVar4 = close(*(int *)((int)auStack_94 + iVar2 + -0x18)); - if (-1 < iVar4) { - return; - } - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e82c; - piVar6 = __errno_location(); - iVar4 = *piVar6; - *(undefined **)((int)auStack_94 + iVar2 + -0x18) = &DAT_080eeee0; - *(int *)(&stack0xffffff58 + iVar2) = iVar4; - goto LAB_0804e775; - } - *(undefined **)((int)auStack_94 + iVar2 + -0x18) = &DAT_080eefe0; - } - else { - *(char **)((int)auStack_94 + iVar2 + -0x18) = "SendMail: Kann Pipe nicht anlegen.\n"; - } - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e79f; - error(*(char **)((int)auStack_94 + iVar2 + -0x18)); - } - else { - *(undefined **)((int)auStack_94 + iVar2 + -0x18) = &DAT_080eee60; - *(char **)(&stack0xffffff58 + iVar2) = SendMail::mailer; -LAB_0804e775: - *(undefined4 *)((int)&iStack_b0 + iVar2) = 0x804e77a; - error(*(char **)((int)auStack_94 + iVar2 + -0x18)); - } - return; -} - - - -// WARNING: Variable defined which should be unmapped: status -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void RemoveZombie(void) - -{ - int local_8; - int status; - - waitpid(-1,&local_8,3); - return; -} - - - -ulong PackAbsoluteCoordinate(int x,int y,int z) - -{ - return (x + -0x6000) * 0x40000 + (y + -0x6000) * 0x10 + z; -} - - - -ulong PackRelativeCoordinate(int dx,int dy,int dz) - -{ - return (dx + 0x2000) * 0x40000 + (dy + 0x2000) * 0x10 + dz + 8; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void UnpackAbsoluteCoordinate(void) - -{ - uint in_stack_00000004; - int *in_stack_00000008; - int *in_stack_0000000c; - uint *in_stack_00000010; - - *in_stack_00000008 = (in_stack_00000004 >> 0x12) + 0x6000; - *in_stack_0000000c = (in_stack_00000004 >> 4 & 0x3fff) + 0x6000; - *in_stack_00000010 = in_stack_00000004 & 0xf; - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void UnpackRelativeCoordinate(void) - -{ - uint in_stack_00000004; - int *in_stack_00000008; - int *in_stack_0000000c; - int *in_stack_00000010; - - *in_stack_00000008 = (in_stack_00000004 >> 0x12) - 0x2000; - *in_stack_0000000c = (in_stack_00000004 >> 4 & 0x3fff) - 0x2000; - *in_stack_00000010 = (in_stack_00000004 & 0xf) - 8; - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - StaticStringTable.firstNode = (listnode<> *)0x0; - StaticStringTable.lastNode = (listnode<> *)0x0; - __cxa_atexit(__tcf_0,0,&__dso_handle); - DynamicStringTable.firstNode = (listnode<> *)0x0; - DynamicStringTable.lastNode = (listnode<> *)0x0; - __cxa_atexit(__tcf_1,0,&__dso_handle); - } - return; -} - -void __tcf_0(void *param_1) - -{ - listnode<> *plVar1; - listnode<> *plVar2; - listnode<> *plVar3; - - if (StaticStringTable.firstNode != (listnode<> *)0x0) { - do { - plVar2 = StaticStringTable.firstNode; - if (StaticStringTable.firstNode == (listnode<> *)0x0) { - error("list::remove: node ist NULL.\n"); - } - else { - plVar3 = (StaticStringTable.firstNode)->prev; - if (plVar3 == (listnode<> *)0x0) { - plVar3 = (StaticStringTable.firstNode)->prev; - StaticStringTable.firstNode = (StaticStringTable.firstNode)->next; - } - else { - plVar3->next = (StaticStringTable.firstNode)->next; - } - plVar1 = plVar2->next; - if (plVar1 != (listnode<> *)0x0) { - plVar1->prev = plVar3; - plVar3 = StaticStringTable.lastNode; - } - StaticStringTable.lastNode = plVar3; - operator_delete(plVar2); - } - } while (StaticStringTable.firstNode != (listnode<> *)0x0); - } - return; -} - - - -void __tcf_1(void *param_1) - -{ - listnode<> *plVar1; - listnode<> *plVar2; - listnode<> *plVar3; - - if (DynamicStringTable.firstNode != (listnode<> *)0x0) { - do { - plVar2 = DynamicStringTable.firstNode; - if (DynamicStringTable.firstNode == (listnode<> *)0x0) { - error("list::remove: node ist NULL.\n"); - } - else { - plVar3 = (DynamicStringTable.firstNode)->prev; - if (plVar3 == (listnode<> *)0x0) { - plVar3 = (DynamicStringTable.firstNode)->prev; - DynamicStringTable.firstNode = (DynamicStringTable.firstNode)->next; - } - else { - plVar3->next = (DynamicStringTable.firstNode)->next; - } - plVar1 = plVar2->next; - if (plVar1 != (listnode<> *)0x0) { - plVar1->prev = plVar3; - plVar3 = DynamicStringTable.lastNode; - } - DynamicStringTable.lastNode = plVar3; - operator_delete(plVar2); - } - } while (DynamicStringTable.firstNode != (listnode<> *)0x0); - } - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_StaticStringTable(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - bool bVar1; - - if ((__priority == 0xffff) && (__initialize_p == 1)) { - ObjectTypes.initialized = false; - ObjectTypes.max = 5000; - ObjectTypes.space = 0x1389; - ObjectTypes.min = 0; - ObjectTypes.start = 0; - ObjectTypes.block = 1000; - ObjectTypes.entry = (TObjectType *)operator_new__(0x19f1f4); - __cxa_atexit(__tcf_0,0,&__dso_handle); - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[1].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[2].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[3].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[4].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[5].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[6].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[7].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[8].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[9].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[10].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0xb].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0xc].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0xd].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0xe].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0xf].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x10].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x11].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x12].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x13].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x14].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x15].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x16].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x17].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x18].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x19].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x1a].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x1b].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x1c].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x1d].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x1e].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x1f].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x20].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x21].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x22].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x23].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x24].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x25].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x26].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x27].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x28].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x29].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x2a].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x2b].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x2c].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x2d].TypeID = 0; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x2e].TypeID = 0; - bVar1 = false; - if ((ObjectTypes.min < 1) && ((uint)ObjectTypes.max < 0x80000000)) { - bVar1 = true; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - bVar1 = false; - SpecialObjects[0x2f].TypeID = 0; - if ((ObjectTypes.min < 1) && (bVar1 = true, ObjectTypes.max < 0)) { - bVar1 = false; - } - if (!bVar1) { - error(&DAT_080f0a80,0); - } - SpecialObjects[0x30].TypeID = 0; - } - return; -} - -void __tcf_0(void *param_1) - -{ - if (ObjectTypes.entry == (TObjectType *)0x0) { - return; - } - operator_delete__(ObjectTypes.entry); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_FlagNames(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - Semaphore::Semaphore(&LogfileMutex,1); - __cxa_atexit(__tcf_0,0,&__dso_handle); - } - return; -} - -void __tcf_0(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&LogfileMutex,in_stack_00000008); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_IsGameServer(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - TCronEntry *pTVar1; - int iVar2; - - if (__priority == 0xffff) { - if (__initialize_p == 1) { - NONE.ObjectID = 0; - CronEntry.initialized = false; - CronEntry.init.Obj.ObjectID = 0; - CronEntry.min = 0; - CronEntry.max = 0x100; - CronEntry.start = 0; - CronEntry.space = 0x101; - CronEntry.block = 0x100; - CronEntry.entry = (TCronEntry *)operator_new__(0x1010); - iVar2 = 0x100; - pTVar1 = CronEntry.entry; - do { - (pTVar1->Obj).ObjectID = 0; - iVar2 = iVar2 + -1; - pTVar1 = pTVar1 + 1; - } while (iVar2 != -1); - __cxa_atexit(__tcf_0,0,&__dso_handle); - } - if (__initialize_p == 1) { - DepotInfo.initialized = false; - DepotInfo.max = 4; - DepotInfo.space = 5; - DepotInfo.min = 0; - DepotInfo.start = 0; - DepotInfo.block = 5; - DepotInfo.entry = (TDepotInfo *)operator_new__(0x78); - __cxa_atexit(__tcf_1,0,&__dso_handle); - Mark.initialized = false; - Mark.space = 5; - Mark.min = 0; - Mark.max = 4; - Mark.start = 0; - Mark.block = 5; - Mark.entry = (TMark *)operator_new__(0xa0); - __cxa_atexit(__tcf_2,0,&__dso_handle); - TDynamicWriteBuffer::TDynamicWriteBuffer(&HelpBuffer,0x10000); - __cxa_atexit(__tcf_3,0,&__dso_handle); - } - } - return; -} - -void __tcf_0(void *param_1) - -{ - if (CronEntry.entry == (TCronEntry *)0x0) { - return; - } - operator_delete__(CronEntry.entry); - return; -} - - - -void __tcf_1(void *param_1) - -{ - if (DepotInfo.entry == (TDepotInfo *)0x0) { - return; - } - operator_delete__(DepotInfo.entry); - return; -} - - - -void __tcf_2(void *param_1) - -{ - if (Mark.entry == (TMark *)0x0) { - return; - } - operator_delete__(Mark.entry); - return; -} - - - -void __tcf_3(void *param_1) - -{ - int in_stack_00000008; - - TDynamicWriteBuffer::~TDynamicWriteBuffer(&HelpBuffer,in_stack_00000008); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_InstanceAttributeNames(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - THelpDepot *pTVar1; - undefined4 *puVar2; - int iVar3; - int local_20; - THouse *local_1c; - - if (__priority == 0xffff) { - if (__initialize_p == 1) { - NONE.ObjectID = 0; - HouseArea.initialized = false; - HouseArea.max = 99; - HouseArea.min = 0; - HouseArea.start = 0; - HouseArea.space = 100; - HouseArea.block = 0x32; - HouseArea.entry = (THouseArea *)operator_new__(0x4b0); - __cxa_atexit(__tcf_0,0,&__dso_handle); - vector<>::vector(&House.init.Subowner,0,4,5); - // try { // try from 08060b2c to 08060b30 has its CatchHandler @ 08060c98 - vector<>::vector(&House.init.Guest,0,9,10); - House.initialized = false; - House.min = 0; - House.max = 99; - House.space = 100; - House.start = 0; - House.block = 100; - // try { // try from 08060b78 to 08060b7c has its CatchHandler @ 08060d52 - puVar2 = (undefined4 *)operator_new__(0x141e4); - *puVar2 = 100; - local_20 = 99; - local_1c = (THouse *)(puVar2 + 1); - do { - // try { // try from 08060bb7 to 08060bbb has its CatchHandler @ 08060d4a - vector<>::vector(&local_1c->Subowner,0,4,5); - // try { // try from 08060bdf to 08060be3 has its CatchHandler @ 08060cb7 - vector<>::vector(&local_1c->Guest,0,9,10); - local_20 = local_20 + -1; - local_1c = local_1c + 1; - } while (local_20 != -1); - House.entry = (THouse *)(puVar2 + 1); - __cxa_atexit(__tcf_1,0,&__dso_handle); - } - if (__initialize_p == 1) { - HelpDepot.initialized = false; - HelpDepot.start = 1; - HelpDepot.init.Box.ObjectID = 0; - HelpDepot.max = 10; - HelpDepot.min = 1; - HelpDepot.space = 10; - HelpDepot.block = 10; - HelpDepot.entry = (THelpDepot *)operator_new__(0x78); - iVar3 = 9; - pTVar1 = HelpDepot.entry; - do { - (pTVar1->Box).ObjectID = 0; - iVar3 = iVar3 + -1; - pTVar1 = pTVar1 + 1; - } while (iVar3 != -1); - __cxa_atexit(__tcf_2,0,&__dso_handle); - } - } - return; -} - -void __tcf_0(void *param_1) - -{ - if (HouseArea.entry == (THouseArea *)0x0) { - return; - } - operator_delete__(HouseArea.entry); - return; -} - - - -void __tcf_1(void *param_1) - -{ - THouseGuest *pTVar1; - THouse *pTVar2; - THouse *pTVar3; - - if (House.entry != (THouse *)0x0) { - pTVar2 = House.entry + House.entry[-1].Help; - while (House.entry != pTVar2) { - pTVar3 = pTVar2 + -1; - pTVar1 = pTVar2[-1].Guest.entry; - if (pTVar1 != (THouseGuest *)0x0) { - operator_delete__(pTVar1); - } - pTVar1 = pTVar2[-1].Subowner.entry; - pTVar2 = pTVar3; - if (pTVar1 != (THouseGuest *)0x0) { - operator_delete__(pTVar1); - } - } - operator_delete__(&House.entry[-1].Help); - } - if (House.init.Guest.entry != (THouseGuest *)0x0) { - operator_delete__(House.init.Guest.entry); - } - if (House.init.Subowner.entry != (THouseGuest *)0x0) { - operator_delete__(House.init.Subowner.entry); - return; - } - return; -} - - - -void __tcf_2(void *param_1) - -{ - if (HelpDepot.entry == (THelpDepot *)0x0) { - return; - } - operator_delete__(HelpDepot.entry); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_HouseArea(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - Semaphore::Semaphore(&ProtocolMutex,1); - __cxa_atexit(__tcf_0,0,&__dso_handle); - Semaphore::Semaphore(&ProtocolBufferEmpty,1000); - __cxa_atexit(__tcf_1,0,&__dso_handle); - Semaphore::Semaphore(&ProtocolBufferFull,0); - __cxa_atexit(__tcf_2,0,&__dso_handle); - Semaphore::Semaphore(&OrderBufferEmpty,2000); - __cxa_atexit(__tcf_3,0,&__dso_handle); - Semaphore::Semaphore(&OrderBufferFull,0); - __cxa_atexit(__tcf_4,0,&__dso_handle); - } - return; -} - -void __tcf_0(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&ProtocolMutex,in_stack_00000008); - return; -} - - - -void __tcf_1(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&ProtocolBufferEmpty,in_stack_00000008); - return; -} - - - -void __tcf_2(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&ProtocolBufferFull,in_stack_00000008); - return; -} - - - -void __tcf_3(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&OrderBufferEmpty,in_stack_00000008); - return; -} - - - -void __tcf_4(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&OrderBufferFull,in_stack_00000008); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I__Z12InitProtocolv(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - } - return; -} - - - -// DWARF original prototype: void load(TOutfit * this, TReadScriptFile * Script) - -void __thiscall TOutfit::load(TOutfit *this,TReadScriptFile *Script) - -{ - int iVar1; - anon_union_4_2_730cd3ca_for_TOutfit_2 *paVar2; - - // try { // try from 0806c05d to 0806c0af has its CatchHandler @ 0806c0b7 - TReadScriptFile::readSymbol(Script,'('); - iVar1 = TReadScriptFile::readNumber(Script); - this->OutfitID = iVar1; - TReadScriptFile::readSymbol(Script,','); - if (this->OutfitID == 0) { - iVar1 = TReadScriptFile::readNumber(Script); - (this->field_1).ObjectType = (ushort)iVar1; - } - else { - paVar2 = (anon_union_4_2_730cd3ca_for_TOutfit_2 *)TReadScriptFile::readBytesequence(Script); - this->field_1 = *paVar2; - } - TReadScriptFile::readSymbol(Script,')'); - return; -} - - - -// DWARF original prototype: void save(TOutfit * this, TWriteScriptFile * Script) - -void __thiscall TOutfit::save(TOutfit *this,TWriteScriptFile *Script) - -{ - // try { // try from 0806c0ed to 0806c156 has its CatchHandler @ 0806c160 - TWriteScriptFile::writeText(Script,"("); - TWriteScriptFile::writeNumber(Script,this->OutfitID); - TWriteScriptFile::writeText(Script,","); - if (this->OutfitID == 0) { - TWriteScriptFile::writeNumber(Script,(uint)(this->field_1).ObjectType); - } - else { - TWriteScriptFile::writeBytesequence(Script,(this->field_1).Colors,4); - } - TWriteScriptFile::writeText(Script,")"); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void PlayerDataPath(void) - -{ - uint in_stack_00000004; - char *in_stack_0000000c; - - sprintf(in_stack_0000000c,"%s/%02ld/%ld.%s",USERPATH,in_stack_00000004 % 100); - return; -} - - - -bool PlayerDataExists(ulong CharacterID) - -{ - bool bVar1; - char local_100c [4]; - char FileName [4096]; - - sprintf(local_100c,"%s/%02ld/%ld.%s",USERPATH,CharacterID % 100,CharacterID,&DAT_080f6560); - bVar1 = FileExists(local_100c); - return bVar1; -} - - - -// WARNING: Removing unreachable block (ram,0x0806d081) -// WARNING: Removing unreachable block (ram,0x0806d0da) -// WARNING: Removing unreachable block (ram,0x0806d08b) -// WARNING: Removing unreachable block (ram,0x0806d095) -// WARNING: Removing unreachable block (ram,0x0806d0c7) -// WARNING: Removing unreachable block (ram,0x0806d0a0) - -bool LoadPlayerData(TPlayerData *Slot) - -{ - bool bVar1; - char cVar2; - int SkillNr; - int iVar3; - uint uVar4; - int iVar5; - uchar *puVar6; - anon_union_4_2_730cd3ca_for_TOutfit_2 *paVar7; - int DepotNr; - int SkillNr_2; - int *piVar8; - char *pcVar9; - undefined1 uVar10; - char *pcVar11; - undefined1 auStack_500c [3]; - bool FileOk; - TReadScriptFile Script; - undefined1 local_102c [4]; - TDynamicWriteBuffer HelpBuffer; - char FileName [4096]; - - if (Slot == (TPlayerData *)0x0) { - pcVar11 = "LoadPlayerData: Slot ist NULL.\n"; - } - else { - uVar4 = Slot->CharacterID; - if (uVar4 != 0) { - piVar8 = &HelpBuffer.super_TWriteBuffer.Position; - pcVar11 = USERPATH; - sprintf((char *)piVar8,"%s/%02ld/%ld.%s",USERPATH,uVar4 % 100,uVar4,&DAT_080f6560); - bVar1 = FileExists((char *)piVar8); - if (!bVar1) { - Slot->Race = 1; - iVar3 = 0; - Slot->Profession = 0; - (Slot->OriginalOutfit).OutfitID = 0; - (Slot->OriginalOutfit).field_1 = (anon_union_4_2_730cd3ca_for_TOutfit_2)0x0; - (Slot->CurrentOutfit).OutfitID = 0; - (Slot->CurrentOutfit).field_1 = (anon_union_4_2_730cd3ca_for_TOutfit_2)0x0; - Slot->LastLoginTime = 0; - Slot->LastLogoutTime = 0; - Slot->startx = 0; - Slot->starty = 0; - Slot->startz = 0; - Slot->posx = 0; - Slot->posy = 0; - Slot->posz = 0; - Slot->PlayerkillerEnd = 0; - do { - Slot->Minimum[iVar3] = -0x80000000; - iVar3 = iVar3 + 1; - } while (iVar3 < 0x19); - puVar6 = Slot->SpellList; - for (iVar3 = 0x40; iVar3 != 0; iVar3 = iVar3 + -1) { - puVar6[0] = '\0'; - puVar6[1] = '\0'; - puVar6[2] = '\0'; - puVar6[3] = '\0'; - puVar6 = puVar6 + 4; - } - uVar4 = 2000; - piVar8 = Slot->QuestValues; - if (((uint)piVar8 & 4) != 0) { - piVar8 = Slot->QuestValues + 1; - uVar4 = 0x7cc; - Slot->QuestValues[0] = 0; - } - for (uVar4 = uVar4 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) { - *piVar8 = 0; - piVar8 = piVar8 + 1; - } - Slot->MurderTimestamps[0] = 0; - Slot->MurderTimestamps[1] = 0; - Slot->MurderTimestamps[2] = 0; - Slot->MurderTimestamps[3] = 0; - Slot->MurderTimestamps[4] = 0; - Slot->MurderTimestamps[5] = 0; - Slot->MurderTimestamps[6] = 0; - Slot->MurderTimestamps[8] = 0; - Slot->MurderTimestamps[9] = 0; - Slot->MurderTimestamps[10] = 0; - Slot->MurderTimestamps[0xb] = 0; - Slot->MurderTimestamps[0xc] = 0; - Slot->MurderTimestamps[7] = 0; - Slot->MurderTimestamps[0xd] = 0; - Slot->MurderTimestamps[0xe] = 0; - Slot->MurderTimestamps[0xf] = 0; - Slot->MurderTimestamps[0x10] = 0; - Slot->InventorySize = 0; - iVar3 = 0; - Slot->MurderTimestamps[0x11] = 0; - Slot->MurderTimestamps[0x12] = 0; - Slot->MurderTimestamps[0x13] = 0; - Slot->Inventory = (uchar *)0x0; - do { - Slot->Depot[iVar3] = (uchar *)0x0; - Slot->DepotSize[iVar3] = 0; - iVar3 = iVar3 + 1; - } while (iVar3 < 9); - return true; - } - TDynamicWriteBuffer::TDynamicWriteBuffer((TDynamicWriteBuffer *)local_102c,0x4000); - // try { // try from 0806c499 to 0806c49d has its CatchHandler @ 0806d1cf - TReadScriptFile::TReadScriptFile((TReadScriptFile *)auStack_500c); - // try { // try from 0806c4ab to 0806c5b3 has its CatchHandler @ 0806d1c6 - TReadScriptFile::open((TReadScriptFile *)auStack_500c,(char *)piVar8,(int)pcVar11); - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - pcVar11 = TReadScriptFile::readString((TReadScriptFile *)auStack_500c); - strcpy(Slot->Name,pcVar11); - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->Race = iVar3; - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->Profession = iVar3; - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - // try { // try from 0806c5c8 to 0806c626 has its CatchHandler @ 0806d12c - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'('); - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - (Slot->OriginalOutfit).OutfitID = iVar3; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - if ((Slot->OriginalOutfit).OutfitID == 0) { - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - (Slot->OriginalOutfit).field_1.ObjectType = (ushort)iVar3; - } - else { - // try { // try from 0806d10d to 0806d111 has its CatchHandler @ 0806d12c - paVar7 = (anon_union_4_2_730cd3ca_for_TOutfit_2 *) - TReadScriptFile::readBytesequence((TReadScriptFile *)auStack_500c); - (Slot->OriginalOutfit).field_1 = *paVar7; - } - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')'); - // try { // try from 0806c630 to 0806c64a has its CatchHandler @ 0806d1c6 - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - // try { // try from 0806c65f to 0806c6bd has its CatchHandler @ 0806d12c - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'('); - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - (Slot->CurrentOutfit).OutfitID = iVar3; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - if ((Slot->CurrentOutfit).OutfitID == 0) { - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - (Slot->CurrentOutfit).field_1.ObjectType = (ushort)iVar3; - } - else { - // try { // try from 0806d0f5 to 0806d0f9 has its CatchHandler @ 0806d12c - paVar7 = (anon_union_4_2_730cd3ca_for_TOutfit_2 *) - TReadScriptFile::readBytesequence((TReadScriptFile *)auStack_500c); - (Slot->CurrentOutfit).field_1 = *paVar7; - } - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')'); - // try { // try from 0806c6c7 to 0806d062 has its CatchHandler @ 0806d1c6 - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->LastLoginTime = iVar3; - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->LastLogoutTime = iVar3; - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - TReadScriptFile::readCoordinate((TReadScriptFile *)auStack_500c); - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - TReadScriptFile::readCoordinate((TReadScriptFile *)auStack_500c); - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->PlayerkillerEnd = iVar3; - iVar3 = 0; - do { - Slot->Minimum[iVar3] = -0x80000000; - iVar3 = iVar3 + 1; - uVar10 = iVar3 == 0x18; - } while (iVar3 < 0x19); - do { - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - pcVar11 = TReadScriptFile::getIdentifier((TReadScriptFile *)auStack_500c); - iVar3 = 6; - pcVar9 = "skill"; - do { - if (iVar3 == 0) break; - iVar3 = iVar3 + -1; - uVar10 = *pcVar11 == *pcVar9; - pcVar11 = pcVar11 + 1; - pcVar9 = pcVar9 + 1; - } while ((bool)uVar10); - if (!(bool)uVar10) goto LAB_0806cb0a; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'('); - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - bVar1 = false; - if ((-1 < iVar3) && (iVar3 < 0x19)) { - bVar1 = true; - } - uVar10 = !bVar1; - if ((bool)uVar10) { - TReadScriptFile::error((TReadScriptFile *)auStack_500c,"illegal skill number"); - } - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->Actual[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->Maximum[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->Minimum[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->DeltaAct[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->MagicDeltaAct[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->Cycle[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->MaxCycle[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->Count[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->MaxCount[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->AddLevel[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->Experience[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->FactorPercent[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->NextLevel[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->Delta[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')'); - } while( true ); - } - pcVar11 = &DAT_080f6720; - } - error(pcVar11); - return false; -LAB_0806cb0a: - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); -LAB_0806cb3b: - TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); - if (_auStack_500c != SPECIAL) goto LAB_0806cb7f; - cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); - if (cVar2 != '}') goto code_r0x0806cb64; - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); - while( true ) { - TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); - if (_auStack_500c != SPECIAL) goto LAB_0806cc5a; - cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); - if (cVar2 == '}') break; - if (_auStack_500c != SPECIAL) goto LAB_0806cc5a; - cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); - if (cVar2 != ',') { - if ((_auStack_500c != SPECIAL) || - (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != '(')) - { -LAB_0806cc5a: - TReadScriptFile::error((TReadScriptFile *)auStack_500c,"\'(\' expected"); - } - iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - bVar1 = false; - if ((-1 < iVar3) && (iVar3 < 500)) { - bVar1 = true; - } - if (!bVar1) { - TReadScriptFile::error((TReadScriptFile *)auStack_500c,"illegal quest number"); - } - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); - iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); - Slot->QuestValues[iVar3] = iVar5; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')'); - } - } - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); -LAB_0806cd45: - TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); - if (_auStack_500c != SPECIAL) goto LAB_0806cd89; - cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); - if (cVar2 != '}') goto code_r0x0806cd6e; - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); - HelpBuffer.super_TWriteBuffer.Size = 0; -LAB_0806cdfa: - TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); - if (_auStack_500c != SPECIAL) goto LAB_0806ce42; - cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); - if (cVar2 != '}') goto code_r0x0806ce27; - TDynamicWriteBuffer::writeByte((TDynamicWriteBuffer *)local_102c,0xff); - Slot->InventorySize = HelpBuffer.super_TWriteBuffer.Size; - puVar6 = (uchar *)operator_new__(HelpBuffer.super_TWriteBuffer.Size); - Slot->Inventory = puVar6; - memcpy(puVar6,HelpBuffer.super_TWriteBuffer.super_TWriteStream._vptr_TWriteStream, - Slot->InventorySize); - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - pcVar11 = (char *)0x7b; - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); - iVar3 = 0; - do { - Slot->Depot[iVar3] = (uchar *)0x0; - iVar3 = iVar3 + 1; - } while (iVar3 < 9); -LAB_0806cf45: - TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); - if (_auStack_500c == SPECIAL) goto code_r0x0806cf5c; - goto LAB_0806cf8d; -code_r0x0806cb64: - if ((_auStack_500c != SPECIAL) || - (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) { -LAB_0806cb7f: - iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c); - bVar1 = false; - if ((-1 < iVar3) && (iVar3 < 0x100)) { - bVar1 = true; - } - if (!bVar1) { - TReadScriptFile::error((TReadScriptFile *)auStack_500c,"illegal spell number"); - } - Slot->SpellList[iVar3] = '\x01'; - } - goto LAB_0806cb3b; -code_r0x0806cd6e: - if ((_auStack_500c != SPECIAL) || - (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) { -LAB_0806cd89: - iVar3 = 1; - do { - Slot->MurderTimestamps[iVar3 + -1] = Slot->MurderTimestamps[iVar3]; - iVar3 = iVar3 + 1; - } while (iVar3 < 0x14); - iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c); - Slot->MurderTimestamps[0x13] = iVar3; - } - goto LAB_0806cd45; -code_r0x0806ce27: - if ((_auStack_500c != SPECIAL) || - (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) { -LAB_0806ce42: - iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c); - TDynamicWriteBuffer::writeByte((TDynamicWriteBuffer *)local_102c,(uchar)iVar3); - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - LoadObjects((TReadScriptFile *)auStack_500c,(TWriteStream *)local_102c,false); - } - goto LAB_0806cdfa; -code_r0x0806cf5c: - cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); - if (cVar2 == '}') { - TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); - if (_auStack_500c != ENDOFFILE) { - pcVar11 = "end of file expected"; - TReadScriptFile::error((TReadScriptFile *)auStack_500c,"end of file expected"); - } - TReadScriptFile::close((TReadScriptFile *)auStack_500c,(int)pcVar11); - // try { // try from 0806d073 to 0806d077 has its CatchHandler @ 0806d1cf - TReadScriptFile::~TReadScriptFile((TReadScriptFile *)auStack_500c,(int)pcVar11); - TDynamicWriteBuffer::~TDynamicWriteBuffer((TDynamicWriteBuffer *)local_102c,(int)pcVar11); - return true; - } - if ((_auStack_500c != SPECIAL) || - (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) { -LAB_0806cf8d: - iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c); - TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); - TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); - HelpBuffer.super_TWriteBuffer.Size = 0; - LoadObjects((TReadScriptFile *)auStack_500c,(TWriteStream *)local_102c,false); - Slot->DepotSize[iVar3] = HelpBuffer.super_TWriteBuffer.Size; - puVar6 = (uchar *)operator_new__(HelpBuffer.super_TWriteBuffer.Size); - Slot->Depot[iVar3] = puVar6; - pcVar11 = (char *)HelpBuffer.super_TWriteBuffer.super_TWriteStream; - memcpy(puVar6,HelpBuffer.super_TWriteBuffer.super_TWriteStream._vptr_TWriteStream, - Slot->DepotSize[iVar3]); - } - goto LAB_0806cf45; -} - - - -void SavePlayerData(TPlayerData *Slot) - -{ - uint uVar1; - bool bVar2; - bool FirstSpell; - byte bVar3; - time_t tVar4; - int Number; - int SpellNr; - int *piVar5; - int Limitation; - int iVar6; - char *pcVar7; - undefined *__fd; - undefined1 local_203c; - bool FirstDepot; - bool FirstPosition; - bool FirstMurder; - TReadBuffer Buffer; - TWriteScriptFile Script; - char local_101c [4]; - char FileName [4096]; - - if (Slot == (TPlayerData *)0x0) { - pcVar7 = "SavePlayerData: Slot ist NULL.\n"; - } - else { - uVar1 = Slot->CharacterID; - if (uVar1 != 0) { - pcVar7 = USERPATH; - sprintf(local_101c,"%s/%02ld/%ld.%s",USERPATH,uVar1 % 100,uVar1,&DAT_080f6560); - // try { // try from 0806d29e to 0806d2a2 has its CatchHandler @ 0806de36 - TWriteScriptFile::TWriteScriptFile((TWriteScriptFile *)&Buffer.Position); - // try { // try from 0806d2b6 to 0806d3b6 has its CatchHandler @ 0806de30 - TWriteScriptFile::open((TWriteScriptFile *)&Buffer.Position,local_101c,(int)pcVar7); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"ID = "); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->CharacterID); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Name = "); - TWriteScriptFile::writeString((TWriteScriptFile *)&Buffer.Position,Slot->Name); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Race = "); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->Race); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Profession = "); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->Profession); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"OriginalOutfit = "); - // try { // try from 0806d3cb to 0806d431 has its CatchHandler @ 0806ddc3 - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"("); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,(Slot->OriginalOutfit).OutfitID); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - if ((Slot->OriginalOutfit).OutfitID == 0) { - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position, - (uint)(Slot->OriginalOutfit).field_1.ObjectType); - } - else { - // try { // try from 0806ddad to 0806ddb1 has its CatchHandler @ 0806ddc3 - TWriteScriptFile::writeBytesequence - ((TWriteScriptFile *)&Buffer.Position, - (Slot->OriginalOutfit).field_1.Colors,4); - } - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")"); - // try { // try from 0806d43b to 0806d455 has its CatchHandler @ 0806de30 - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"CurrentOutfit = "); - // try { // try from 0806d46a to 0806d4d0 has its CatchHandler @ 0806ddc3 - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"("); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,(Slot->CurrentOutfit).OutfitID); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - if ((Slot->CurrentOutfit).OutfitID == 0) { - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position, - (uint)(Slot->CurrentOutfit).field_1.ObjectType); - } - else { - // try { // try from 0806dd8b to 0806dd8f has its CatchHandler @ 0806ddc3 - TWriteScriptFile::writeBytesequence - ((TWriteScriptFile *)&Buffer.Position,(Slot->CurrentOutfit).field_1.Colors - ,4); - } - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")"); - // try { // try from 0806d4da to 0806dd20 has its CatchHandler @ 0806de30 - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"LastLogin = "); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->LastLoginTime); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"LastLogout = "); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->LastLogoutTime) - ; - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"StartPosition = "); - TWriteScriptFile::writeCoordinate - ((TWriteScriptFile *)&Buffer.Position,Slot->startx,Slot->starty,Slot->startz); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"CurrentPosition = "); - TWriteScriptFile::writeCoordinate - ((TWriteScriptFile *)&Buffer.Position,Slot->posx,Slot->posy,Slot->posz); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"PlayerkillerEnd = "); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,Slot->PlayerkillerEnd); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - iVar6 = 0; - piVar5 = Slot->Delta; - do { - if (piVar5[-0x113] != -0x80000000) { - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Skill = ("); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x145]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,piVar5[-300]) - ; - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x113]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0xfa]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0xe1]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,piVar5[-200]) - ; - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0xaf]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x96]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x7d]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,piVar5[-100]) - ; - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x4b]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x32]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x19]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,*piVar5); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")"); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - } - iVar6 = iVar6 + 1; - piVar5 = piVar5 + 1; - } while (iVar6 < 0x19); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Spells = {"); - bVar2 = true; - iVar6 = 0; - do { - if (Slot->SpellList[iVar6] != '\0') { - if (!bVar2) { - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - } - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6); - bVar2 = false; - } - iVar6 = iVar6 + 1; - } while (iVar6 < 0x100); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"QuestValues = {"); - bVar2 = true; - iVar6 = 0; - do { - if (Slot->QuestValues[iVar6] != 0) { - if (!bVar2) { - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - } - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"("); - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeNumber - ((TWriteScriptFile *)&Buffer.Position,Slot->QuestValues[iVar6]); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")"); - bVar2 = false; - } - iVar6 = iVar6 + 1; - } while (iVar6 < 500); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Murders = {"); - bVar2 = true; - iVar6 = 0; - tVar4 = time((time_t *)0x0); - do { - Number = Slot->MurderTimestamps[iVar6]; - if (tVar4 + -0x278d00 < Number) { - if (!bVar2) { - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - Number = Slot->MurderTimestamps[iVar6]; - } - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Number); - bVar2 = false; - } - iVar6 = iVar6 + 1; - } while (iVar6 < 0x14); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Inventory = {"); - if (Slot->Inventory != (uchar *)0x0) { - TReadBuffer::TReadBuffer - ((TReadBuffer *)&local_203c,Slot->Inventory,Slot->InventorySize); - bVar2 = true; - while (bVar3 = TReadBuffer::readByte((TReadBuffer *)&local_203c), bVar3 != 0xff) { - if (bVar2) { - bVar2 = false; - } - else { - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText - ((TWriteScriptFile *)&Buffer.Position," "); - } - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,(uint)bVar3); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position," Content="); - SaveObjects((TReadStream *)&local_203c,(TWriteScriptFile *)&Buffer.Position); - } - } - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Depots = {"); - bVar2 = true; - iVar6 = 0; - do { - if (Slot->Depot[iVar6] != (uchar *)0x0) { - if (bVar2) { - bVar2 = false; - } - else { - // try { // try from 0806dd45 to 0806dd6d has its CatchHandler @ 0806de30 - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,", "); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::writeText - ((TWriteScriptFile *)&Buffer.Position," "); - } - TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6); - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position," Content="); - TReadBuffer::TReadBuffer - ((TReadBuffer *)&local_203c,Slot->Depot[iVar6],Slot->DepotSize[iVar6]) - ; - SaveObjects((TReadStream *)&local_203c,(TWriteScriptFile *)&Buffer.Position); - } - iVar6 = iVar6 + 1; - } while (iVar6 < 9); - __fd = &DAT_080f2aa0; - TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); - TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); - TWriteScriptFile::close((TWriteScriptFile *)&Buffer.Position,(int)__fd); - // try { // try from 0806dd2a to 0806dd2e has its CatchHandler @ 0806de36 - TWriteScriptFile::~TWriteScriptFile((TWriteScriptFile *)&Buffer.Position,(int)__fd); - return; - } - pcVar7 = &DAT_080f6800; - } - error(pcVar7); - return; -} - - - -void UnlinkPlayerData(ulong CharacterID) - -{ - char local_100c [4]; - char FileName [4096]; - - sprintf(local_100c,"%s/%02ld/%ld.%s",USERPATH,CharacterID % 100,CharacterID,&DAT_080f6560); - unlink(local_100c); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I__ZN7TOutfit4loadER15TReadScriptFile(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - } - return; -} - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I__Z7GetName6Object(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void RandomShuffle(int *Buffer,int Size) - -{ - int iVar1; - long lVar2; - int Exchange; - int Help; - int Position; - int iVar3; - - if (Buffer == (int *)0x0) { - error("RandomShuffle: Buffer ist NULL.\n"); - return; - } - iVar3 = 0; - if (0 < Size + -1) { - do { - lVar2 = random(); - if (lVar2 != iVar3) { - iVar1 = Buffer[iVar3]; - Buffer[iVar3] = Buffer[lVar2]; - Buffer[lVar2] = iVar1; - } - iVar3 = iVar3 + 1; - } while (iVar3 < Size + -1); - } - return; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - TMoveUseDatabase *this; - int local_14; - - if (__priority == 0xffff) { - if (__initialize_p == 1) { - NONE.ObjectID = 0; - MoveUseConditions.initialized = false; - MoveUseConditions.min = 1; - MoveUseConditions.max = 1000; - MoveUseConditions.start = 1; - MoveUseConditions.space = 1000; - MoveUseConditions.block = 1000; - MoveUseConditions.entry = (TMoveUseCondition *)operator_new__(28000); - __cxa_atexit(__tcf_0,0,&__dso_handle); - MoveUseActions.initialized = false; - MoveUseActions.min = 1; - MoveUseActions.start = 1; - MoveUseActions.max = 1000; - MoveUseActions.space = 1000; - MoveUseActions.block = 1000; - MoveUseActions.entry = (TMoveUseAction *)operator_new__(24000); - __cxa_atexit(__tcf_1,0,&__dso_handle); - local_14 = 4; - this = MoveUseDatabases; - do { - // try { // try from 080722f5 to 080722f9 has its CatchHandler @ 08072413 - vector<>::vector(&this->Rules,1,100,100); - this->NumberOfRules = 0; - this = this + 1; - local_14 = local_14 + -1; - } while (local_14 != -1); - __cxa_atexit(__tcf_2,0,&__dso_handle); - } - if (__initialize_p == 1) { - DelayedMail.initialized = false; - DelayedMail.max = 10; - DelayedMail.min = 0; - DelayedMail.start = 0; - DelayedMail.space = 0xb; - DelayedMail.block = 10; - DelayedMail.entry = (TDelayedMail *)operator_new__(0xb0); - __cxa_atexit(__tcf_3,0,&__dso_handle); - } - } - return; -} - -void __tcf_0(void *param_1) - -{ - if (MoveUseConditions.entry == (TMoveUseCondition *)0x0) { - return; - } - operator_delete__(MoveUseConditions.entry); - return; -} - - - -void __tcf_1(void *param_1) - -{ - if (MoveUseActions.entry == (TMoveUseAction *)0x0) { - return; - } - operator_delete__(MoveUseActions.entry); - return; -} - - - -void __tcf_2(void *param_1) - -{ - TMoveUseRule *pTVar1; - TMoveUseDatabase *pTVar2; - TMoveUseDatabase *pTVar3; - - pTVar2 = (TMoveUseDatabase *)&DAT_081c0710; - while (pTVar2 != MoveUseDatabases) { - pTVar3 = pTVar2 + -1; - pTVar1 = pTVar2[-1].Rules.entry; - pTVar2 = pTVar3; - if (pTVar1 != (TMoveUseRule *)0x0) { - operator_delete__(pTVar1); - } - } - return; -} - - - -void __tcf_3(void *param_1) - -{ - if (DelayedMail.entry == (TDelayedMail *)0x0) { - return; - } - operator_delete__(DelayedMail.entry); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_MoveUseConditions(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - } - return; -} - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_SpellSyllable(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - - - -// DWARF original prototype: void -// ~basic_stringbuf(basic_stringbuf,std::allocator_> * this, int -// __in_chrg) - -void __thiscall basic_stringbuf<>::~basic_stringbuf(basic_stringbuf<> *this,int __in_chrg) - -{ - int *piVar1; - int iVar2; - int iVar3; - size_t __size; - - *(undefined4 *)this = 0x8128a08; - iVar3 = *(int *)(this + 0x50); - LOCK(); - piVar1 = (int *)(iVar3 + -4); - iVar2 = *piVar1; - *piVar1 = *piVar1 + -1; - UNLOCK(); - if (iVar2 < 1) { - // try { // try from 0808deb4 to 0808deb8 has its CatchHandler @ 0808debb - std::__default_alloc_template::deallocate - ((void *)(iVar3 + -0xc),*(int *)(iVar3 + -8) + 0xd); - } - *(undefined4 *)this = 0x81289c8; - this[0x10] = (basic_stringbuf<>)0x0; - *(undefined4 *)(this + 8) = 0; - *(undefined4 *)(this + 0xc) = 0; - *(undefined4 *)(this + 0x2c) = 0; - std::locale::~locale((locale *)(this + 0x30)); - return; -} - - - -// DWARF original name: _S_construct - -char * basic_string<>::_S_construct<>(void) - -{ - undefined1 uVar1; - uint *puVar2; - uint *__dest; - _Rep *__r; - uint __n; - void *in_stack_00000004; - void *in_stack_00000008; - allocator *in_stack_0000000c; - - __n = (int)in_stack_00000008 - (int)in_stack_00000004; - if (in_stack_00000004 == in_stack_00000008) { - LOCK(); - std::string::_S_empty_rep_storage._8_4_ = std::string::_S_empty_rep_storage._8_4_ + 1; - UNLOCK(); - __dest = (uint *)(std::string::_S_empty_rep_storage + 0xc); - } - else { - if (in_stack_00000004 == (void *)0x0) { - std::__throw_logic_error("attempt to create string with null pointer"); - } - puVar2 = (uint *)std::string::_Rep::_S_create(__n,in_stack_0000000c); - __dest = puVar2 + 3; - memcpy(__dest,in_stack_00000004,__n); - uVar1 = std::string::_Rep::_S_terminal; - *puVar2 = __n; - *(undefined1 *)(__n + 0xc + (int)puVar2) = uVar1; - } - return (char *)__dest; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - undefined4 *puVar1; - TParty *this; - int iVar2; - TChannel *this_00; - int local_18; - - if (__priority == 0xffff) { - if (__initialize_p == 1) { - NONE.ObjectID = 0; - TChannel::TChannel(&Channel.init); - Channel.max = 0x12; - Channel.space = 0x13; - Channel.min = 0; - Channel.start = 0; - Channel.block = 10; - Channel.initialized = false; - // try { // try from 0808e13b to 0808e13f has its CatchHandler @ 0808e23b - puVar1 = (undefined4 *)operator_new__(0x808); - *puVar1 = 0x13; - local_18 = 0x12; - this_00 = (TChannel *)(puVar1 + 1); - do { - // try { // try from 0808e158 to 0808e15c has its CatchHandler @ 0808e1a5 - TChannel::TChannel(this_00); - local_18 = local_18 + -1; - this_00 = this_00 + 1; - } while (local_18 != -1); - Channel.entry = (TChannel *)(puVar1 + 1); - __cxa_atexit(__tcf_0,0,&__dso_handle); - } - if (__initialize_p == 1) { - Statements.Entry = (TStatement *)operator_new__(0x7000); - Statements.Size = 0x400; - Statements.Head = -1; - Statements.Tail = 0; - __cxa_atexit(__tcf_1,0,&__dso_handle); - Listeners.Entry = (TListener *)operator_new__(0x2000); - Listeners.Size = 0x400; - Listeners.Head = -1; - Listeners.Tail = 0; - __cxa_atexit(__tcf_2,0,&__dso_handle); - TParty::TParty(&Party.init); - Party.min = 0; - Party.max = 100; - Party.start = 0; - Party.space = 0x65; - Party.block = 0x32; - Party.initialized = false; - // try { // try from 0808e009 to 0808e00d has its CatchHandler @ 0808e2b2 - puVar1 = (undefined4 *)operator_new__(0x1e00); - *puVar1 = 0x65; - iVar2 = 100; - this = (TParty *)(puVar1 + 1); - do { - // try { // try from 0808e021 to 0808e025 has its CatchHandler @ 0808e240 - TParty::TParty(this); - iVar2 = iVar2 + -1; - this = this + 1; - } while (iVar2 != -1); - Party.entry = (TParty *)(puVar1 + 1); - __cxa_atexit(__tcf_3,0,&__dso_handle); - } - } - return; -} - -void __tcf_0(void *param_1) - -{ - ulong *puVar1; - TChannel *pTVar2; - TChannel *pTVar3; - - if (Channel.entry != (TChannel *)0x0) { - pTVar2 = Channel.entry + Channel.entry[-1].InvitedPlayers; - while (Channel.entry != pTVar2) { - pTVar3 = pTVar2 + -1; - puVar1 = pTVar2[-1].InvitedPlayer.entry; - if (puVar1 != (ulong *)0x0) { - operator_delete__(puVar1); - } - puVar1 = pTVar2[-1].Subscriber.entry; - pTVar2 = pTVar3; - if (puVar1 != (ulong *)0x0) { - operator_delete__(puVar1); - } - } - operator_delete__(&Channel.entry[-1].InvitedPlayers); - } - if (Channel.init.InvitedPlayer.entry != (ulong *)0x0) { - operator_delete__(Channel.init.InvitedPlayer.entry); - } - if (Channel.init.Subscriber.entry != (ulong *)0x0) { - operator_delete__(Channel.init.Subscriber.entry); - return; - } - return; -} - - - -void __tcf_1(void *param_1) - -{ - if (Statements.Entry == (TStatement *)0x0) { - return; - } - operator_delete__(Statements.Entry); - return; -} - - - -void __tcf_2(void *param_1) - -{ - if (Listeners.Entry == (TListener *)0x0) { - return; - } - operator_delete__(Listeners.Entry); - return; -} - - - -void __tcf_3(void *param_1) - -{ - ulong *puVar1; - TParty *pTVar2; - TParty *pTVar3; - - if (Party.entry != (TParty *)0x0) { - pTVar2 = Party.entry + Party.entry[-1].InvitedPlayers; - while (Party.entry != pTVar2) { - pTVar3 = pTVar2 + -1; - puVar1 = pTVar2[-1].InvitedPlayer.entry; - if (puVar1 != (ulong *)0x0) { - operator_delete__(puVar1); - } - puVar1 = pTVar2[-1].Member.entry; - pTVar2 = pTVar3; - if (puVar1 != (ulong *)0x0) { - operator_delete__(puVar1); - } - } - operator_delete__(&Party.entry[-1].InvitedPlayers); - } - if (Party.init.InvitedPlayer.entry != (ulong *)0x0) { - operator_delete__(Party.init.InvitedPlayer.entry); - } - if (Party.init.Member.entry != (ulong *)0x0) { - operator_delete__(Party.init.Member.entry); - return; - } - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_Channel(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - vector<> *pvVar1; - priority_queue_entry<> *ppVar2; - vector<> *pvVar3; - priority_queue_entry<> *ppVar4; - int i; - int iVar5; - TRaceData *this; - int local_14; - - if (__priority == 0xffff) { - if (__initialize_p == 1) { - NONE.ObjectID = 0; - CreatureList.initialized = true; - CreatureList.max = 10000; - CreatureList.space = 0x2711; - CreatureList.block = 1000; - CreatureList.start = 0; - CreatureList.min = 0; - CreatureList.init = (TCreature *)0x0; - CreatureList.entry = (TCreature **)operator_new__(0x9c44); - iVar5 = 0; - if (0 < CreatureList.space) { - do { - CreatureList.entry[iVar5] = (TCreature *)0x0; - iVar5 = iVar5 + 1; - } while (iVar5 < CreatureList.space); - } - __cxa_atexit(__tcf_0,0,&__dso_handle); - } - if (__initialize_p == 1) { - local_14 = 0x1ff; - this = RaceData; - do { - // try { // try from 0809dd7f to 0809dd83 has its CatchHandler @ 0809de53 - TRaceData::TRaceData(this); - local_14 = local_14 + -1; - this = this + 1; - } while (local_14 != -1); - __cxa_atexit(__tcf_1,0,&__dso_handle); - } - if (__initialize_p == 1) { - pvVar3 = (vector<> *)operator_new(0x24); - pvVar3->min = 1; - pvVar3->max = 5000; - pvVar3->start = 1; - pvVar3->space = 5000; - pvVar3->block = 1000; - pvVar3->initialized = false; - // try { // try from 0809dd38 to 0809dd3c has its CatchHandler @ 0809dee5 - ppVar4 = (priority_queue_entry<> *)operator_new__(40000); - pvVar3->entry = ppVar4; - ToDoQueue.Entries = 0; - ToDoQueue.Entry = pvVar3; - __cxa_atexit(__tcf_2,0,&__dso_handle); - pvVar1 = (vector<> *)operator_new(0x24); - pvVar1->min = 1; - pvVar1->max = 100; - pvVar1->start = 1; - pvVar1->space = 100; - pvVar1->block = 100; - pvVar1->initialized = false; - // try { // try from 0809dcc6 to 0809dcca has its CatchHandler @ 0809df01 - ppVar2 = (priority_queue_entry<> *)operator_new__(800); - pvVar1->entry = ppVar2; - AttackWaveQueue.Entries = 0; - AttackWaveQueue.Entry = pvVar1; - __cxa_atexit(__tcf_3,0,&__dso_handle); - } - } - return; -} - -void __tcf_0(void *param_1) - -{ - if (CreatureList.entry == (TCreature **)0x0) { - return; - } - operator_delete__(CreatureList.entry); - return; -} - - - -void __tcf_1(void *param_1) - -{ - int *piVar1; - int *piVar2; - ulong *puVar3; - - puVar3 = &NextCreatureID; - piVar1 = KilledCreatures + 0x24; - while ((TRaceData *)puVar3 != RaceData) { - piVar2 = piVar1 + -0x54; - puVar3 = (ulong *)((int)puVar3 + -0x150); - if ((void *)piVar1[-0x2d] != (void *)0x0) { - operator_delete__((void *)piVar1[-0x2d]); - } - if ((void *)piVar1[-0x40] != (void *)0x0) { - operator_delete__((void *)piVar1[-0x40]); - } - if ((void *)piVar1[-0x4b] != (void *)0x0) { - operator_delete__((void *)piVar1[-0x4b]); - } - piVar1 = piVar2; - if ((void *)*piVar2 != (void *)0x0) { - operator_delete__((void *)*piVar2); - } - } - return; -} - - - -void __tcf_2(void *param_1) - -{ - vector<> *pvVar1; - - pvVar1 = ToDoQueue.Entry; - if (ToDoQueue.Entry != (vector<> *)0x0) { - if ((ToDoQueue.Entry)->entry != (priority_queue_entry<> *)0x0) { - operator_delete__((ToDoQueue.Entry)->entry); - } - operator_delete(pvVar1); - return; - } - return; -} - - - -void __tcf_3(void *param_1) - -{ - vector<> *pvVar1; - - pvVar1 = AttackWaveQueue.Entry; - if (AttackWaveQueue.Entry != (vector<> *)0x0) { - if ((AttackWaveQueue.Entry)->entry != (priority_queue_entry<> *)0x0) { - operator_delete__((AttackWaveQueue.Entry)->entry); - } - operator_delete(pvVar1); - return; - } - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_HashList(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - int i; - int iVar1; - - if (__priority == 0xffff) { - if (__initialize_p == 1) { - NONE.ObjectID = 0; - PlayerList.initialized = true; - PlayerList.max = 100; - PlayerList.space = 0x65; - PlayerList.block = 10; - PlayerList.start = 0; - PlayerList.min = 0; - PlayerList.init = (TPlayer *)0x0; - PlayerList.entry = (TPlayer **)operator_new__(0x194); - iVar1 = 0; - if (0 < PlayerList.space) { - do { - PlayerList.entry[iVar1] = (TPlayer *)0x0; - iVar1 = iVar1 + 1; - } while (iVar1 < PlayerList.space); - } - __cxa_atexit(__tcf_0,0,&__dso_handle); - } - if (__initialize_p == 1) { - Semaphore::Semaphore(&PlayerMutex,1); - __cxa_atexit(__tcf_1,0,&__dso_handle); - Semaphore::Semaphore(&PlayerDataPoolMutex,1); - __cxa_atexit(__tcf_2,0,&__dso_handle); - PlayerIndexInternalNodes.Units = (list<> *)operator_new(8); - (PlayerIndexInternalNodes.Units)->firstNode = (listnode<> *)0x0; - (PlayerIndexInternalNodes.Units)->lastNode = (listnode<> *)0x0; - PlayerIndexInternalNodes.firstFreeItem = (storeitem<> *)0x0; - __cxa_atexit(__tcf_3,0,&__dso_handle); - PlayerIndexLeafNodes.Units = (list<> *)operator_new(8); - (PlayerIndexLeafNodes.Units)->firstNode = (listnode<> *)0x0; - (PlayerIndexLeafNodes.Units)->lastNode = (listnode<> *)0x0; - PlayerIndexLeafNodes.firstFreeItem = (storeitem<> *)0x0; - __cxa_atexit(__tcf_4,0,&__dso_handle); - } - } - return; -} - -void __tcf_0(void *param_1) - -{ - if (PlayerList.entry == (TPlayer **)0x0) { - return; - } - operator_delete__(PlayerList.entry); - return; -} - - - -void __tcf_1(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&PlayerMutex,in_stack_00000008); - return; -} - - - -void __tcf_2(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&PlayerDataPoolMutex,in_stack_00000008); - return; -} - - - -void __tcf_3(void *param_1) - -{ - listnode<> *plVar1; - list<> *plVar2; - listnode<> *plVar3; - - plVar2 = PlayerIndexInternalNodes.Units; - if (PlayerIndexInternalNodes.Units != (list<> *)0x0) { - plVar1 = (PlayerIndexInternalNodes.Units)->firstNode; - while (plVar1 != (listnode<> *)0x0) { - plVar3 = plVar1->prev; - if (plVar3 == (listnode<> *)0x0) { - plVar2->firstNode = plVar1->next; - plVar3 = plVar1->prev; - } - else { - plVar3->next = plVar1->next; - } - if (plVar1->next == (listnode<> *)0x0) { - plVar2->lastNode = plVar3; - } - else { - plVar1->next->prev = plVar3; - } - operator_delete(plVar1); - plVar1 = plVar2->firstNode; - } - operator_delete(plVar2); - return; - } - return; -} - - - -void __tcf_4(void *param_1) - -{ - listnode<> *plVar1; - list<> *plVar2; - listnode<> *plVar3; - - plVar2 = PlayerIndexLeafNodes.Units; - if (PlayerIndexLeafNodes.Units != (list<> *)0x0) { - plVar1 = (PlayerIndexLeafNodes.Units)->firstNode; - while (plVar1 != (listnode<> *)0x0) { - plVar3 = plVar1->prev; - if (plVar3 == (listnode<> *)0x0) { - plVar2->firstNode = plVar1->next; - plVar3 = plVar1->prev; - } - else { - plVar3->next = plVar1->next; - } - if (plVar1->next == (listnode<> *)0x0) { - plVar2->lastNode = plVar3; - } - else { - plVar1->next->prev = plVar3; - } - operator_delete(plVar1); - plVar1 = plVar2->firstNode; - } - operator_delete(plVar2); - return; - } - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_PlayerList(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - int i; - int iVar1; - - if (__priority == 0xffff) { - if (__initialize_p == 1) { - NONE.ObjectID = 0; - NonplayerList.initialized = true; - NonplayerList.max = 10000; - NonplayerList.min = 0; - NonplayerList.space = 0x2711; - NonplayerList.init = (TNonplayer *)0x0; - NonplayerList.start = 0; - NonplayerList.block = 1000; - NonplayerList.entry = (TNonplayer **)operator_new__(0x9c44); - iVar1 = 0; - if (0 < NonplayerList.space) { - do { - NonplayerList.entry[iVar1] = (TNonplayer *)0x0; - iVar1 = iVar1 + 1; - } while (iVar1 < NonplayerList.space); - } - __cxa_atexit(__tcf_0,0,&__dso_handle); - } - if (__initialize_p == 1) { - Monsterhome.initialized = false; - Monsterhome.space = 5000; - Monsterhome.min = 1; - Monsterhome.max = 5000; - Monsterhome.start = 1; - Monsterhome.block = 1000; - Monsterhome.entry = (TMonsterhome *)operator_new__(180000); - __cxa_atexit(__tcf_1,0,&__dso_handle); - } - } - return; -} - -void __tcf_0(void *param_1) - -{ - if (NonplayerList.entry == (TNonplayer **)0x0) { - return; - } - operator_delete__(NonplayerList.entry); - return; -} - - - -void __tcf_1(void *param_1) - -{ - if (Monsterhome.entry == (TMonsterhome *)0x0) { - return; - } - operator_delete__(Monsterhome.entry); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_NonplayerList(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - } - return; -} - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I__ZN9TShortwayC2EP9TCreatureii(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - } - return; -} - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I__ZN7TCombatC2Ev(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - } - return; -} - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I__Z14GetSkillByNamePc(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -double __cmath_power(double __x,uint __n) - -{ - double dVar1; - uint uVar2; - double __y; - - dVar1 = 1.0; - if ((__n & 1) != 0) { - dVar1 = __x; - } - for (uVar2 = __n >> 1; uVar2 != 0; uVar2 = uVar2 >> 1) { - __x = __x * __x; - if ((uVar2 & 1) != 0) { - dVar1 = dVar1 * __x; - } - } - return dVar1; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - TConnection *pTVar1; - int local_14; - - if (__priority == 0xffff) { - if (__initialize_p == 1) { - NONE.ObjectID = 0; - local_14 = 1099; - pTVar1 = Connections; - do { - // try { // try from 080cac40 to 080cac44 has its CatchHandler @ 080cac8c - TXTEASymmetricKey::TXTEASymmetricKey(&pTVar1->SymmetricKey); - pTVar1->State = CONNECTION_FREE; - pTVar1 = pTVar1 + 1; - local_14 = local_14 + -1; - } while (local_14 != -1); - __cxa_atexit(__tcf_0,0,&__dso_handle); - } - if (__initialize_p == 1) { - Semaphore::Semaphore(&ConnectionMutex,1); - __cxa_atexit(__tcf_1,0,&__dso_handle); - } - } - return; -} - -void __tcf_0(void *param_1) - -{ - int unaff_EBX; - TConnection **ppTVar1; - - for (ppTVar1 = &FirstSendingConnection; (TConnection *)ppTVar1 != Connections; - ppTVar1 = (TConnection **)((int)ppTVar1 + -0x51f8)) { - TXTEASymmetricKey::~TXTEASymmetricKey - (&((TConnection *)((int)ppTVar1 + -0x51f8))->SymmetricKey,unaff_EBX); - } - return; -} - - - -void __tcf_1(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&ConnectionMutex,in_stack_00000008); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_Connections(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - } - return; -} - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I__Z13BeginSendDataP11TConnection(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; + bool bVar1; + char cVar2; + int SkillNr; + int iVar3; + uint uVar4; + int iVar5; + uchar *puVar6; + anon_union_4_2_730cd3ca_for_TOutfit_2 *paVar7; + int DepotNr; + int SkillNr_2; + int *piVar8; + char *pcVar9; + undefined1 uVar10; + char *pcVar11; + undefined1 auStack_500c [3]; + bool FileOk; + TReadScriptFile Script; + undefined1 local_102c [4]; + TDynamicWriteBuffer HelpBuffer; + char FileName [4096]; + + if (Slot == (TPlayerData *)0x0) { + pcVar11 = "LoadPlayerData: Slot ist NULL.\n"; } - return; -} - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I__Z14CommandAllowedP11TConnectiont(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - vlong::vlong(&RSA_EXPONENT,0x10001); - __cxa_atexit(__tcf_0,0,&__dso_handle); - Semaphore::Semaphore(&CommunicationThreadMutex,1); - __cxa_atexit(__tcf_1,0,&__dso_handle); - TRSAPrivateKey::TRSAPrivateKey(&PrivateKey); - __cxa_atexit(__tcf_2,0,&__dso_handle); - Semaphore::Semaphore(&RSAMutex,1); - __cxa_atexit(__tcf_3,0,&__dso_handle); - TQueryManagerConnectionPool::TQueryManagerConnectionPool(&QueryManagerConnectionPool,10); - __cxa_atexit(__tcf_4,0,&__dso_handle); - Waitinglist.Units = (list<> *)operator_new(8); - (Waitinglist.Units)->firstNode = (listnode<> *)0x0; - (Waitinglist.Units)->lastNode = (listnode<> *)0x0; - Waitinglist.firstFreeItem = (storeitem<> *)0x0; - __cxa_atexit(__tcf_5,0,&__dso_handle); + else { + uVar4 = Slot->CharacterID; + if (uVar4 != 0) { + piVar8 = &HelpBuffer.super_TWriteBuffer.Position; + pcVar11 = USERPATH; + sprintf((char *)piVar8,"%s/%02ld/%ld.%s",USERPATH,uVar4 % 100,uVar4,&DAT_080f6560); + bVar1 = FileExists((char *)piVar8); + if (!bVar1) { + Slot->Race = 1; + iVar3 = 0; + Slot->Profession = 0; + (Slot->OriginalOutfit).OutfitID = 0; + (Slot->OriginalOutfit).field_1 = (anon_union_4_2_730cd3ca_for_TOutfit_2)0x0; + (Slot->CurrentOutfit).OutfitID = 0; + (Slot->CurrentOutfit).field_1 = (anon_union_4_2_730cd3ca_for_TOutfit_2)0x0; + Slot->LastLoginTime = 0; + Slot->LastLogoutTime = 0; + Slot->startx = 0; + Slot->starty = 0; + Slot->startz = 0; + Slot->posx = 0; + Slot->posy = 0; + Slot->posz = 0; + Slot->PlayerkillerEnd = 0; + do { + Slot->Minimum[iVar3] = -0x80000000; + iVar3 = iVar3 + 1; + } while (iVar3 < 0x19); + puVar6 = Slot->SpellList; + for (iVar3 = 0x40; iVar3 != 0; iVar3 = iVar3 + -1) { + puVar6[0] = '\0'; + puVar6[1] = '\0'; + puVar6[2] = '\0'; + puVar6[3] = '\0'; + puVar6 = puVar6 + 4; + } + uVar4 = 2000; + piVar8 = Slot->QuestValues; + if (((uint)piVar8 & 4) != 0) { + piVar8 = Slot->QuestValues + 1; + uVar4 = 0x7cc; + Slot->QuestValues[0] = 0; + } + for (uVar4 = uVar4 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) { + *piVar8 = 0; + piVar8 = piVar8 + 1; + } + Slot->MurderTimestamps[0] = 0; + Slot->MurderTimestamps[1] = 0; + Slot->MurderTimestamps[2] = 0; + Slot->MurderTimestamps[3] = 0; + Slot->MurderTimestamps[4] = 0; + Slot->MurderTimestamps[5] = 0; + Slot->MurderTimestamps[6] = 0; + Slot->MurderTimestamps[8] = 0; + Slot->MurderTimestamps[9] = 0; + Slot->MurderTimestamps[10] = 0; + Slot->MurderTimestamps[0xb] = 0; + Slot->MurderTimestamps[0xc] = 0; + Slot->MurderTimestamps[7] = 0; + Slot->MurderTimestamps[0xd] = 0; + Slot->MurderTimestamps[0xe] = 0; + Slot->MurderTimestamps[0xf] = 0; + Slot->MurderTimestamps[0x10] = 0; + Slot->InventorySize = 0; + iVar3 = 0; + Slot->MurderTimestamps[0x11] = 0; + Slot->MurderTimestamps[0x12] = 0; + Slot->MurderTimestamps[0x13] = 0; + Slot->Inventory = (uchar *)0x0; + do { + Slot->Depot[iVar3] = (uchar *)0x0; + Slot->DepotSize[iVar3] = 0; + iVar3 = iVar3 + 1; + } while (iVar3 < 9); + return true; + } + TDynamicWriteBuffer::TDynamicWriteBuffer((TDynamicWriteBuffer *)local_102c,0x4000); + // try { // try from 0806c499 to 0806c49d has its CatchHandler @ 0806d1cf + TReadScriptFile::TReadScriptFile((TReadScriptFile *)auStack_500c); + // try { // try from 0806c4ab to 0806c5b3 has its CatchHandler @ 0806d1c6 + TReadScriptFile::open((TReadScriptFile *)auStack_500c,(char *)piVar8,(int)pcVar11); + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + pcVar11 = TReadScriptFile::readString((TReadScriptFile *)auStack_500c); + strcpy(Slot->Name,pcVar11); + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->Race = iVar3; + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->Profession = iVar3; + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + // try { // try from 0806c5c8 to 0806c626 has its CatchHandler @ 0806d12c + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'('); + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + (Slot->OriginalOutfit).OutfitID = iVar3; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + if ((Slot->OriginalOutfit).OutfitID == 0) { + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + (Slot->OriginalOutfit).field_1.ObjectType = (ushort)iVar3; + } + else { + // try { // try from 0806d10d to 0806d111 has its CatchHandler @ 0806d12c + paVar7 = (anon_union_4_2_730cd3ca_for_TOutfit_2 *) + TReadScriptFile::readBytesequence((TReadScriptFile *)auStack_500c); + (Slot->OriginalOutfit).field_1 = *paVar7; + } + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')'); + // try { // try from 0806c630 to 0806c64a has its CatchHandler @ 0806d1c6 + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + // try { // try from 0806c65f to 0806c6bd has its CatchHandler @ 0806d12c + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'('); + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + (Slot->CurrentOutfit).OutfitID = iVar3; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + if ((Slot->CurrentOutfit).OutfitID == 0) { + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + (Slot->CurrentOutfit).field_1.ObjectType = (ushort)iVar3; + } + else { + // try { // try from 0806d0f5 to 0806d0f9 has its CatchHandler @ 0806d12c + paVar7 = (anon_union_4_2_730cd3ca_for_TOutfit_2 *) + TReadScriptFile::readBytesequence((TReadScriptFile *)auStack_500c); + (Slot->CurrentOutfit).field_1 = *paVar7; + } + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')'); + // try { // try from 0806c6c7 to 0806d062 has its CatchHandler @ 0806d1c6 + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->LastLoginTime = iVar3; + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->LastLogoutTime = iVar3; + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + TReadScriptFile::readCoordinate((TReadScriptFile *)auStack_500c); + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + TReadScriptFile::readCoordinate((TReadScriptFile *)auStack_500c); + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->PlayerkillerEnd = iVar3; + iVar3 = 0; + do { + Slot->Minimum[iVar3] = -0x80000000; + iVar3 = iVar3 + 1; + uVar10 = iVar3 == 0x18; + } while (iVar3 < 0x19); + do { + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + pcVar11 = TReadScriptFile::getIdentifier((TReadScriptFile *)auStack_500c); + iVar3 = 6; + pcVar9 = "skill"; + do { + if (iVar3 == 0) break; + iVar3 = iVar3 + -1; + uVar10 = *pcVar11 == *pcVar9; + pcVar11 = pcVar11 + 1; + pcVar9 = pcVar9 + 1; + } while ((bool)uVar10); + if (!(bool)uVar10) goto LAB_0806cb0a; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'('); + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + bVar1 = false; + if ((-1 < iVar3) && (iVar3 < 0x19)) { + bVar1 = true; + } + uVar10 = !bVar1; + if ((bool)uVar10) { + TReadScriptFile::error((TReadScriptFile *)auStack_500c,"illegal skill number"); + } + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->Actual[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->Maximum[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->Minimum[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->DeltaAct[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->MagicDeltaAct[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->Cycle[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->MaxCycle[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->Count[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->MaxCount[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->AddLevel[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->Experience[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->FactorPercent[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->NextLevel[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->Delta[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')'); + } while( true ); + } + pcVar11 = &DAT_080f6720; } - return; -} - -void __tcf_0(void *param_1) - -{ - int in_stack_00000008; - - vlong::~vlong(&RSA_EXPONENT,in_stack_00000008); - return; -} - - - -void __tcf_1(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&CommunicationThreadMutex,in_stack_00000008); - return; -} - - - -void __tcf_2(void *param_1) - -{ - int in_stack_00000008; - - TRSAPrivateKey::~TRSAPrivateKey(&PrivateKey,in_stack_00000008); - return; -} - - - -void __tcf_3(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&RSAMutex,in_stack_00000008); - return; -} - - - -void __tcf_4(void *param_1) - -{ - int in_stack_00000008; - int in_stack_fffffff8; - - Semaphore::~Semaphore(&QueryManagerConnectionPool.QueryManagerConnectionMutex,in_stack_fffffff8) - ; - Semaphore::~Semaphore(&QueryManagerConnectionPool.FreeQueryManagerConnections,in_stack_00000008) - ; - return; -} - - - -void __tcf_5(void *param_1) - -{ - listnode<> *plVar1; - list<> *plVar2; - listnode<> *plVar3; - - plVar2 = Waitinglist.Units; - if (Waitinglist.Units != (list<> *)0x0) { - plVar1 = (Waitinglist.Units)->firstNode; - while (plVar1 != (listnode<> *)0x0) { - plVar3 = plVar1->prev; - if (plVar3 == (listnode<> *)0x0) { - plVar2->firstNode = plVar1->next; - plVar3 = plVar1->prev; - } - else { - plVar3->next = plVar1->next; + error(pcVar11); + return false; +LAB_0806cb0a: + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); +LAB_0806cb3b: + TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); + if (_auStack_500c != SPECIAL) goto LAB_0806cb7f; + cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); + if (cVar2 != '}') goto code_r0x0806cb64; + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); + while( true ) { + TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); + if (_auStack_500c != SPECIAL) goto LAB_0806cc5a; + cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); + if (cVar2 == '}') break; + if (_auStack_500c != SPECIAL) goto LAB_0806cc5a; + cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); + if (cVar2 != ',') { + if ((_auStack_500c != SPECIAL) || + (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != '(')) + { +LAB_0806cc5a: + TReadScriptFile::error((TReadScriptFile *)auStack_500c,"\'(\' expected"); } - if (plVar1->next == (listnode<> *)0x0) { - plVar2->lastNode = plVar3; + iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + bVar1 = false; + if ((-1 < iVar3) && (iVar3 < 500)) { + bVar1 = true; } - else { - plVar1->next->prev = plVar3; + if (!bVar1) { + TReadScriptFile::error((TReadScriptFile *)auStack_500c,"illegal quest number"); } - operator_delete(plVar1); - plVar1 = plVar2->firstNode; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,','); + iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c); + Slot->QuestValues[iVar3] = iVar5; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')'); } - operator_delete(plVar2); - return; } - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I_TCPSocket(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - Semaphore::Semaphore(&OrderBufferEmpty,200); - __cxa_atexit(__tcf_0,0,&__dso_handle); - Semaphore::Semaphore(&OrderBufferFull,0); - __cxa_atexit(__tcf_1,0,&__dso_handle); - TDynamicWriteBuffer::TDynamicWriteBuffer(&HelpBuffer,0x10000); - __cxa_atexit(__tcf_2,0,&__dso_handle); + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); +LAB_0806cd45: + TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); + if (_auStack_500c != SPECIAL) goto LAB_0806cd89; + cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); + if (cVar2 != '}') goto code_r0x0806cd6e; + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); + HelpBuffer.super_TWriteBuffer.Size = 0; +LAB_0806cdfa: + TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); + if (_auStack_500c != SPECIAL) goto LAB_0806ce42; + cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); + if (cVar2 != '}') goto code_r0x0806ce27; + TDynamicWriteBuffer::writeByte((TDynamicWriteBuffer *)local_102c,0xff); + Slot->InventorySize = HelpBuffer.super_TWriteBuffer.Size; + puVar6 = (uchar *)operator_new__(HelpBuffer.super_TWriteBuffer.Size); + Slot->Inventory = puVar6; + memcpy(puVar6,HelpBuffer.super_TWriteBuffer.super_TWriteStream._vptr_TWriteStream, + Slot->InventorySize); + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + pcVar11 = (char *)0x7b; + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{'); + iVar3 = 0; + do { + Slot->Depot[iVar3] = (uchar *)0x0; + iVar3 = iVar3 + 1; + } while (iVar3 < 9); +LAB_0806cf45: + TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); + if (_auStack_500c == SPECIAL) goto code_r0x0806cf5c; + goto LAB_0806cf8d; +code_r0x0806cb64: + if ((_auStack_500c != SPECIAL) || + (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) { +LAB_0806cb7f: + iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c); + bVar1 = false; + if ((-1 < iVar3) && (iVar3 < 0x100)) { + bVar1 = true; + } + if (!bVar1) { + TReadScriptFile::error((TReadScriptFile *)auStack_500c,"illegal spell number"); + } + Slot->SpellList[iVar3] = '\x01'; } - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void InitReaderBuffers(void) - -{ - ReplyPointerWrite = 0; - OrderPointerWrite = 0; - OrderPointerRead = 0; - ReplyPointerRead = 0; - return; -} - - - -void InsertOrder(TReaderThreadOrderType OrderType,int SectorX,int SectorY,int SectorZ, - ulong CharacterID) - -{ - int iVar1; - ulong CharacterID_local; - int SectorZ_local; - - if (199 < OrderPointerWrite - OrderPointerRead) { - error(&DAT_0810da40); - } - Semaphore::down(&OrderBufferEmpty); - iVar1 = OrderPointerWrite % 200; - OrderBuffer[iVar1].SectorY = SectorY; - OrderPointerWrite = OrderPointerWrite + 1; - OrderBuffer[iVar1].OrderType = OrderType; - OrderBuffer[iVar1].SectorX = SectorX; - OrderBuffer[iVar1].SectorZ = SectorZ; - OrderBuffer[iVar1].CharacterID = CharacterID; - Semaphore::up(&OrderBufferFull); - return; -} - - - -void GetOrder(TReaderThreadOrderType *OrderType,int *SectorX,int *SectorY,int *SectorZ, - ulong *CharacterID) - -{ - int iVar1; - ulong *CharacterID_local; - int *SectorZ_local; - int *SectorY_local; - - Semaphore::down(&OrderBufferFull); - iVar1 = OrderPointerRead % 200; - *OrderType = OrderBuffer[iVar1].OrderType; - *SectorX = OrderBuffer[iVar1].SectorX; - *SectorY = OrderBuffer[OrderPointerRead % 200].SectorY; - *SectorZ = OrderBuffer[OrderPointerRead % 200].SectorZ; - iVar1 = OrderPointerRead % 200; - OrderPointerRead = OrderPointerRead + 1; - *CharacterID = OrderBuffer[iVar1].CharacterID; - Semaphore::up(&OrderBufferEmpty); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void InsertReply(void) - -{ - int iVar1; - TReaderThreadReplyType in_stack_00000004; - int in_stack_00000008; - int in_stack_0000000c; - int in_stack_00000010; - uchar *in_stack_00000014; - int in_stack_00000018; - - iVar1 = ReplyPointerWrite - ReplyPointerRead; - while (199 < iVar1) { - error("InsertReply (Reader): Puffer ist voll; warte...\n"); - DelayThread(5,0); - iVar1 = ReplyPointerWrite - ReplyPointerRead; - } - iVar1 = ReplyPointerWrite % 200; - ReplyPointerWrite = ReplyPointerWrite + 1; - ReplyBuffer[iVar1].ReplyType = in_stack_00000004; - ReplyBuffer[iVar1].SectorX = in_stack_00000008; - ReplyBuffer[iVar1].SectorY = in_stack_0000000c; - ReplyBuffer[iVar1].SectorZ = in_stack_00000010; - ReplyBuffer[iVar1].Data = in_stack_00000014; - ReplyBuffer[iVar1].Size = in_stack_00000018; - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -bool GetReply(void) - -{ - int iVar1; - bool bVar2; - TReaderThreadReplyType *in_stack_00000004; - int *in_stack_00000008; - int *in_stack_0000000c; - int *in_stack_00000010; - undefined4 *in_stack_00000014; - int *in_stack_00000018; - - bVar2 = ReplyPointerRead != ReplyPointerWrite; - if (bVar2) { - iVar1 = ReplyPointerRead % 200; - *in_stack_00000004 = ReplyBuffer[iVar1].ReplyType; - *in_stack_00000008 = ReplyBuffer[iVar1].SectorX; - *in_stack_0000000c = ReplyBuffer[ReplyPointerRead % 200].SectorY; - *in_stack_00000010 = ReplyBuffer[ReplyPointerRead % 200].SectorZ; - iVar1 = ReplyPointerRead % 200; - *in_stack_00000014 = ReplyBuffer[iVar1].Data; - *in_stack_00000018 = ReplyBuffer[iVar1].Size; - ReplyPointerRead = ReplyPointerRead + 1; + goto LAB_0806cb3b; +code_r0x0806cd6e: + if ((_auStack_500c != SPECIAL) || + (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) { +LAB_0806cd89: + iVar3 = 1; + do { + Slot->MurderTimestamps[iVar3 + -1] = Slot->MurderTimestamps[iVar3]; + iVar3 = iVar3 + 1; + } while (iVar3 < 0x14); + iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c); + Slot->MurderTimestamps[0x13] = iVar3; + } + goto LAB_0806cd45; +code_r0x0806ce27: + if ((_auStack_500c != SPECIAL) || + (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) { +LAB_0806ce42: + iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c); + TDynamicWriteBuffer::writeByte((TDynamicWriteBuffer *)local_102c,(uchar)iVar3); + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + LoadObjects((TReadScriptFile *)auStack_500c,(TWriteStream *)local_102c,false); + } + goto LAB_0806cdfa; +code_r0x0806cf5c: + cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c); + if (cVar2 == '}') { + TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c); + if (_auStack_500c != ENDOFFILE) { + pcVar11 = "end of file expected"; + TReadScriptFile::error((TReadScriptFile *)auStack_500c,"end of file expected"); + } + TReadScriptFile::close((TReadScriptFile *)auStack_500c,(int)pcVar11); + // try { // try from 0806d073 to 0806d077 has its CatchHandler @ 0806d1cf + TReadScriptFile::~TReadScriptFile((TReadScriptFile *)auStack_500c,(int)pcVar11); + TDynamicWriteBuffer::~TDynamicWriteBuffer((TDynamicWriteBuffer *)local_102c,(int)pcVar11); + return true; } - return bVar2; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void TerminateReaderOrder(void) - -{ - int iVar1; - - if (199 < OrderPointerWrite - OrderPointerRead) { - error(&DAT_0810da40); - } - Semaphore::down(&OrderBufferEmpty); - iVar1 = OrderPointerWrite % 200; - OrderBuffer[iVar1].SectorX = 0; - OrderPointerWrite = OrderPointerWrite + 1; - OrderBuffer[iVar1].OrderType = ORDER_TERMINATE; - OrderBuffer[iVar1].SectorY = 0; - OrderBuffer[iVar1].SectorZ = 0; - OrderBuffer[iVar1].CharacterID = 0; - Semaphore::up(&OrderBufferFull); - return; -} - - - -void LoadSectorOrder(int SectorX,int SectorY,int SectorZ) - -{ - int iVar1; - - if (199 < OrderPointerWrite - OrderPointerRead) { - error(&DAT_0810da40); - } - Semaphore::down(&OrderBufferEmpty); - iVar1 = OrderPointerWrite % 200; - OrderBuffer[iVar1].SectorX = SectorX; - OrderPointerWrite = OrderPointerWrite + 1; - OrderBuffer[iVar1].OrderType = ORDER_LOADSECTOR; - OrderBuffer[iVar1].SectorY = SectorY; - OrderBuffer[iVar1].SectorZ = SectorZ; - OrderBuffer[iVar1].CharacterID = 0; - Semaphore::up(&OrderBufferFull); - return; -} - - - -void LoadCharacterOrder(ulong CharacterID) - -{ - int iVar1; - - if (199 < OrderPointerWrite - OrderPointerRead) { - error(&DAT_0810da40); - } - Semaphore::down(&OrderBufferEmpty); - iVar1 = OrderPointerWrite % 200; - OrderPointerWrite = OrderPointerWrite + 1; - OrderBuffer[iVar1].OrderType = ORDER_LOADCHARACTER; - OrderBuffer[iVar1].SectorX = 0; - OrderBuffer[iVar1].SectorY = 0; - OrderBuffer[iVar1].CharacterID = CharacterID; - OrderBuffer[iVar1].SectorZ = 0; - Semaphore::up(&OrderBufferFull); - return; + if ((_auStack_500c != SPECIAL) || + (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) { +LAB_0806cf8d: + iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c); + TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c); + TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'='); + HelpBuffer.super_TWriteBuffer.Size = 0; + LoadObjects((TReadScriptFile *)auStack_500c,(TWriteStream *)local_102c,false); + Slot->DepotSize[iVar3] = HelpBuffer.super_TWriteBuffer.Size; + puVar6 = (uchar *)operator_new__(HelpBuffer.super_TWriteBuffer.Size); + Slot->Depot[iVar3] = puVar6; + pcVar11 = (char *)HelpBuffer.super_TWriteBuffer.super_TWriteStream; + memcpy(puVar6,HelpBuffer.super_TWriteBuffer.super_TWriteStream._vptr_TWriteStream, + Slot->DepotSize[iVar3]); + } + goto LAB_0806cf45; } -void ProcessLoadSectorOrder(int SectorX,int SectorY,int SectorZ) +void SavePlayerData(TPlayerData *Slot) { - byte b; - bool bVar1; - char cVar2; - uchar *Help; - byte *pbVar3; - uchar *__dest; - int iVar4; - int iVar5; - int DataSize; - char *pcVar6; - undefined1 uVar7; - TDynamicWriteBuffer *__s; - char *pcVar8; - uchar *Data; - bool Refreshable; - int yy; - int xx; - TReadScriptFile Script; - undefined1 local_101c [4]; + uint uVar1; + bool bVar2; + bool FirstSpell; + byte bVar3; + time_t tVar4; + int Number; + int SpellNr; + int *piVar5; + int Limitation; + int iVar6; + char *pcVar7; + undefined *__fd; + undefined1 local_203c; + bool FirstDepot; + bool FirstPosition; + bool FirstMurder; + TReadBuffer Buffer; + TWriteScriptFile Script; + char local_101c [4]; char FileName [4096]; - __s = (TDynamicWriteBuffer *)local_101c; - pcVar8 = ORIGMAPPATH; - sprintf((char *)__s,"%s/%04u-%04u-%02u.sec",ORIGMAPPATH,SectorX,SectorY,SectorZ); - bVar1 = FileExists((char *)__s); - if (bVar1) { - // try { // try from 080df909 to 080df90d has its CatchHandler @ 080dfbf7 - TReadScriptFile::TReadScriptFile((TReadScriptFile *)&xx); - // try { // try from 080df915 to 080dfb32 has its CatchHandler @ 080dfbc0 - TReadScriptFile::open((TReadScriptFile *)&xx,(char *)__s,(int)pcVar8); - Data._3_1_ = 0; - yy = -1; - b = 0xff; - HelpBuffer.super_TWriteBuffer.Position = 0; - while (TReadScriptFile::nextToken((TReadScriptFile *)&xx), xx != 0) { - if ((xx != 6) || - (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)&xx), cVar2 != ',')) { - if (xx == 4) { - pbVar3 = TReadScriptFile::getBytesequence((TReadScriptFile *)&xx); - yy = (int)*pbVar3; - b = pbVar3[1]; - __s = (TDynamicWriteBuffer *)0x3a; - TReadScriptFile::readSymbol((TReadScriptFile *)&xx,':'); - Data._3_1_ = 0; - } - else if (xx == 1) { - uVar7 = yy == -1; - if ((bool)uVar7) { - pcVar8 = "coordinate expected"; - TReadScriptFile::error((TReadScriptFile *)&xx,"coordinate expected"); - __s = (TDynamicWriteBuffer *)pcVar8; + if (Slot == (TPlayerData *)0x0) { + pcVar7 = "SavePlayerData: Slot ist NULL.\n"; + } + else { + uVar1 = Slot->CharacterID; + if (uVar1 != 0) { + pcVar7 = USERPATH; + sprintf(local_101c,"%s/%02ld/%ld.%s",USERPATH,uVar1 % 100,uVar1,&DAT_080f6560); + // try { // try from 0806d29e to 0806d2a2 has its CatchHandler @ 0806de36 + TWriteScriptFile::TWriteScriptFile((TWriteScriptFile *)&Buffer.Position); + // try { // try from 0806d2b6 to 0806d3b6 has its CatchHandler @ 0806de30 + TWriteScriptFile::open((TWriteScriptFile *)&Buffer.Position,local_101c,(int)pcVar7); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"ID = "); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->CharacterID); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Name = "); + TWriteScriptFile::writeString((TWriteScriptFile *)&Buffer.Position,Slot->Name); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Race = "); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->Race); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Profession = "); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->Profession); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"OriginalOutfit = "); + // try { // try from 0806d3cb to 0806d431 has its CatchHandler @ 0806ddc3 + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"("); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,(Slot->OriginalOutfit).OutfitID); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + if ((Slot->OriginalOutfit).OutfitID == 0) { + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position, + (uint)(Slot->OriginalOutfit).field_1.ObjectType); + } + else { + // try { // try from 0806ddad to 0806ddb1 has its CatchHandler @ 0806ddc3 + TWriteScriptFile::writeBytesequence + ((TWriteScriptFile *)&Buffer.Position, + (Slot->OriginalOutfit).field_1.Colors,4); + } + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")"); + // try { // try from 0806d43b to 0806d455 has its CatchHandler @ 0806de30 + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"CurrentOutfit = "); + // try { // try from 0806d46a to 0806d4d0 has its CatchHandler @ 0806ddc3 + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"("); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,(Slot->CurrentOutfit).OutfitID); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + if ((Slot->CurrentOutfit).OutfitID == 0) { + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position, + (uint)(Slot->CurrentOutfit).field_1.ObjectType); + } + else { + // try { // try from 0806dd8b to 0806dd8f has its CatchHandler @ 0806ddc3 + TWriteScriptFile::writeBytesequence + ((TWriteScriptFile *)&Buffer.Position,(Slot->CurrentOutfit).field_1.Colors + ,4); + } + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")"); + // try { // try from 0806d4da to 0806dd20 has its CatchHandler @ 0806de30 + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"LastLogin = "); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->LastLoginTime); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"LastLogout = "); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->LastLogoutTime) + ; + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"StartPosition = "); + TWriteScriptFile::writeCoordinate + ((TWriteScriptFile *)&Buffer.Position,Slot->startx,Slot->starty,Slot->startz); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"CurrentPosition = "); + TWriteScriptFile::writeCoordinate + ((TWriteScriptFile *)&Buffer.Position,Slot->posx,Slot->posy,Slot->posz); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"PlayerkillerEnd = "); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,Slot->PlayerkillerEnd); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + iVar6 = 0; + piVar5 = Slot->Delta; + do { + if (piVar5[-0x113] != -0x80000000) { + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Skill = ("); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x145]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,piVar5[-300]) + ; + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x113]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0xfa]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0xe1]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,piVar5[-200]) + ; + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0xaf]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x96]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x7d]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,piVar5[-100]) + ; + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x4b]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x32]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x19]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,*piVar5); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")"); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + } + iVar6 = iVar6 + 1; + piVar5 = piVar5 + 1; + } while (iVar6 < 0x19); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Spells = {"); + bVar2 = true; + iVar6 = 0; + do { + if (Slot->SpellList[iVar6] != '\0') { + if (!bVar2) { + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + } + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6); + bVar2 = false; + } + iVar6 = iVar6 + 1; + } while (iVar6 < 0x100); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"QuestValues = {"); + bVar2 = true; + iVar6 = 0; + do { + if (Slot->QuestValues[iVar6] != 0) { + if (!bVar2) { + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + } + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"("); + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeNumber + ((TWriteScriptFile *)&Buffer.Position,Slot->QuestValues[iVar6]); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")"); + bVar2 = false; + } + iVar6 = iVar6 + 1; + } while (iVar6 < 500); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Murders = {"); + bVar2 = true; + iVar6 = 0; + tVar4 = time((time_t *)0x0); + do { + Number = Slot->MurderTimestamps[iVar6]; + if (tVar4 + -0x278d00 < Number) { + if (!bVar2) { + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + Number = Slot->MurderTimestamps[iVar6]; } - pcVar8 = TReadScriptFile::getIdentifier((TReadScriptFile *)&xx); - iVar4 = 8; - pcVar6 = "refresh"; - do { - if (iVar4 == 0) break; - iVar4 = iVar4 + -1; - uVar7 = *pcVar8 == *pcVar6; - pcVar8 = pcVar8 + 1; - pcVar6 = pcVar6 + 1; - } while ((bool)uVar7); - if ((bool)uVar7) { - Data._3_1_ = 1; + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Number); + bVar2 = false; + } + iVar6 = iVar6 + 1; + } while (iVar6 < 0x14); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Inventory = {"); + if (Slot->Inventory != (uchar *)0x0) { + TReadBuffer::TReadBuffer + ((TReadBuffer *)&local_203c,Slot->Inventory,Slot->InventorySize); + bVar2 = true; + while (bVar3 = TReadBuffer::readByte((TReadBuffer *)&local_203c), bVar3 != 0xff) { + if (bVar2) { + bVar2 = false; } - pcVar8 = TReadScriptFile::getIdentifier((TReadScriptFile *)&xx); - iVar4 = 8; - pcVar6 = "content"; - do { - if (iVar4 == 0) break; - iVar4 = iVar4 + -1; - uVar7 = *pcVar8 == *pcVar6; - pcVar8 = pcVar8 + 1; - pcVar6 = pcVar6 + 1; - } while ((bool)uVar7); - if ((bool)uVar7) { - TReadScriptFile::readSymbol((TReadScriptFile *)&xx,'='); - if (Data._3_1_ != 0) { - TDynamicWriteBuffer::writeByte(&HelpBuffer,(uchar)yy); - TDynamicWriteBuffer::writeByte(&HelpBuffer,b); - } - __s = &HelpBuffer; - LoadObjects((TReadScriptFile *)&xx,(TWriteStream *)&HelpBuffer, - (bool)(Data._3_1_ ^ 1)); + else { + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,","); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText + ((TWriteScriptFile *)&Buffer.Position," "); } + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,(uint)bVar3); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position," Content="); + SaveObjects((TReadStream *)&local_203c,(TWriteScriptFile *)&Buffer.Position); } } - } - TReadScriptFile::close((TReadScriptFile *)&xx,(int)__s); - iVar4 = HelpBuffer.super_TWriteBuffer.Position; - if (HelpBuffer.super_TWriteBuffer.Position != 0) { - __dest = (uchar *)operator_new__(HelpBuffer.super_TWriteBuffer.Position); - __s = (TDynamicWriteBuffer *)HelpBuffer.super_TWriteBuffer.Data; - memcpy(__dest,HelpBuffer.super_TWriteBuffer.Data,iVar4); - iVar5 = ReplyPointerWrite - ReplyPointerRead; - while (199 < iVar5) { - error("InsertReply (Reader): Puffer ist voll; warte...\n"); - __s = (TDynamicWriteBuffer *)0x0; - DelayThread(5,0); - iVar5 = ReplyPointerWrite - ReplyPointerRead; - } - iVar5 = ReplyPointerWrite % 200; - ReplyBuffer[iVar5].ReplyType = REPLY_SECTORDATA; - ReplyPointerWrite = ReplyPointerWrite + 1; - ReplyBuffer[iVar5].SectorX = SectorX; - ReplyBuffer[iVar5].SectorY = SectorY; - ReplyBuffer[iVar5].SectorZ = SectorZ; - ReplyBuffer[iVar5].Data = __dest; - ReplyBuffer[iVar5].Size = iVar4; - } - // try { // try from 080dfbb6 to 080dfbba has its CatchHandler @ 080dfbf7 - TReadScriptFile::~TReadScriptFile((TReadScriptFile *)&xx,(int)__s); - } - return; -} - - - -void ProcessLoadCharacterOrder(ulong CharacterID) - -{ - TPlayerData *Slot; - __pid_t _Var1; - pid_t pVar2; - TPlayerData *PlayerData; - int iVar3; - - while( true ) { - Slot = AssignPlayerPoolSlot(CharacterID,true); - if (Slot == (TPlayerData *)0x0) { - error(&DAT_0810db00); - return; - } - _Var1 = getpid(); - if (Slot->Locked == _Var1) break; - pVar2 = GetGameThreadPID(); - if (Slot->Locked == pVar2) { + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Depots = {"); + bVar2 = true; + iVar6 = 0; + do { + if (Slot->Depot[iVar6] != (uchar *)0x0) { + if (bVar2) { + bVar2 = false; + } + else { + // try { // try from 0806dd45 to 0806dd6d has its CatchHandler @ 0806de30 + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,", "); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::writeText + ((TWriteScriptFile *)&Buffer.Position," "); + } + TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6); + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position," Content="); + TReadBuffer::TReadBuffer + ((TReadBuffer *)&local_203c,Slot->Depot[iVar6],Slot->DepotSize[iVar6]) + ; + SaveObjects((TReadStream *)&local_203c,(TWriteScriptFile *)&Buffer.Position); + } + iVar6 = iVar6 + 1; + } while (iVar6 < 9); + __fd = &DAT_080f2aa0; + TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}"); + TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position); + TWriteScriptFile::close((TWriteScriptFile *)&Buffer.Position,(int)__fd); + // try { // try from 0806dd2a to 0806dd2e has its CatchHandler @ 0806de36 + TWriteScriptFile::~TWriteScriptFile((TWriteScriptFile *)&Buffer.Position,(int)__fd); return; } - DecreasePlayerPoolSlotSticky(Slot); - DelayThread(1,0); - } - IncreasePlayerPoolSlotSticky(Slot); - ReleasePlayerPoolSlot(Slot); - iVar3 = ReplyPointerWrite - ReplyPointerRead; - while (199 < iVar3) { - error("InsertReply (Reader): Puffer ist voll; warte...\n"); - DelayThread(5,0); - iVar3 = ReplyPointerWrite - ReplyPointerRead; - } - iVar3 = ReplyPointerWrite % 200; - ReplyBuffer[iVar3].ReplyType = REPLY_CHARACTERDATA; - ReplyBuffer[iVar3].SectorX = 0; - ReplyBuffer[iVar3].SectorY = 0; - ReplyBuffer[iVar3].SectorZ = 0; - ReplyBuffer[iVar3].Data = (uchar *)0x0; - ReplyBuffer[iVar3].Size = CharacterID; - ReplyPointerWrite = ReplyPointerWrite + 1; - return; -} - - - -int ReaderThreadLoop(void *param_1) - -{ - int SectorX; - TReaderThreadOrderType TVar1; - int SectorY; - int SectorZ; - ulong CharacterID; - int iVar2; - -LAB_080dfd60: - do { - while( true ) { - Semaphore::down(&OrderBufferFull); - iVar2 = OrderPointerRead % 200; - SectorX = OrderBuffer[iVar2].SectorX; - TVar1 = OrderBuffer[iVar2].OrderType; - OrderPointerRead = OrderPointerRead + 1; - SectorY = OrderBuffer[iVar2].SectorY; - SectorZ = OrderBuffer[iVar2].SectorZ; - CharacterID = OrderBuffer[iVar2].CharacterID; - Semaphore::up(&OrderBufferEmpty); - if (TVar1 != ORDER_LOADSECTOR) break; - ProcessLoadSectorOrder(SectorX,SectorY,SectorZ); - } - if ((int)TVar1 < 2) { - if (TVar1 == ORDER_TERMINATE) { - return 0; - } - } - else if (TVar1 == ORDER_LOADCHARACTER) { - ProcessLoadCharacterOrder(CharacterID); - goto LAB_080dfd60; - } - error("ReaderThreadLoop: Unbekanntes Kommando %d.\n",TVar1); - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void ProcessSectorReply(void) - -{ - code *in_stack_00000004; - void *in_stack_00000014; - - (*in_stack_00000004)(); - if (in_stack_00000014 != (void *)0x0) { - operator_delete__(in_stack_00000014); - return; - } - return; -} - - - -void ProcessCharacterReply(TSendMailsFunction *SendMails,ulong CharacterID) - -{ - TPlayerData *Slot; - TPlayerData *PlayerData; - - Slot = AttachPlayerPoolSlot(CharacterID,true); - if (Slot != (TPlayerData *)0x0) { - (*SendMails)(Slot); - DecreasePlayerPoolSlotSticky(Slot); - ReleasePlayerPoolSlot(Slot); - return; - } - DecreasePlayerPoolSlotSticky(CharacterID); - return; -} - - - -// WARNING: Variable defined which should be unmapped: SectorX - -void ProcessReaderThreadReplies(TRefreshSectorFunction *RefreshSector,TSendMailsFunction *SendMails) - -{ - TReaderThreadReplyType TVar1; - ulong CharacterID; - uchar *puVar2; - TPlayerData *Slot; - uchar *Data; - int Size; - int iVar3; - TReaderThreadReplyType ReplyType; - TPlayerData *PlayerData; - int SectorZ; - int SectorY; - int SectorX; - - while (ReplyPointerRead != ReplyPointerWrite) { - iVar3 = ReplyPointerRead % 200; - ReplyPointerRead = ReplyPointerRead + 1; - TVar1 = ReplyBuffer[iVar3].ReplyType; - CharacterID = ReplyBuffer[iVar3].Size; - puVar2 = ReplyBuffer[iVar3].Data; - if (TVar1 == REPLY_SECTORDATA) { - (*RefreshSector)(ReplyBuffer[iVar3].SectorX,ReplyBuffer[iVar3].SectorY, - ReplyBuffer[iVar3].SectorZ,puVar2,CharacterID); - if (puVar2 != (uchar *)0x0) { - operator_delete__(puVar2); - } - } - else if (TVar1 == REPLY_CHARACTERDATA) { - Slot = AttachPlayerPoolSlot(CharacterID,true); - if (Slot == (TPlayerData *)0x0) { - DecreasePlayerPoolSlotSticky(CharacterID); - } - else { - (*SendMails)(Slot); - DecreasePlayerPoolSlotSticky(Slot); - ReleasePlayerPoolSlot(Slot); - } - } - else { - error(&DAT_0810dba0,TVar1); - } - } - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void InitReader(void) - -{ - undefined4 *puVar1; - - ReplyPointerRead = 0; - OrderPointerWrite = 0; - OrderPointerRead = 0; - ReplyPointerWrite = 0; - // try { // try from 080e006c to 080e00a7 has its CatchHandler @ 080e00a8 - ReaderThread = StartThread(ReaderThreadLoop,(void *)0x0,false); - if (ReaderThread != 0) { - return; - } - puVar1 = (undefined4 *)__cxa_allocate_exception(4); - *puVar1 = "cannot start reader thread"; - // WARNING: Subroutine does not return - __cxa_throw(puVar1,char_const*::typeinfo,0); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void ExitReader(void) - -{ - int iVar1; - - if (ReaderThread != 0) { - if (199 < OrderPointerWrite - OrderPointerRead) { - error(&DAT_0810da40); - } - Semaphore::down(&OrderBufferEmpty); - iVar1 = OrderPointerWrite % 200; - OrderBuffer[iVar1].OrderType = ORDER_TERMINATE; - OrderBuffer[iVar1].SectorX = 0; - OrderPointerWrite = OrderPointerWrite + 1; - OrderBuffer[iVar1].SectorY = 0; - OrderBuffer[iVar1].SectorZ = 0; - OrderBuffer[iVar1].CharacterID = 0; - Semaphore::up(&OrderBufferFull); - JoinThread(ReaderThread); - ReaderThread = 0; + pcVar7 = &DAT_080f6800; } + error(pcVar7); return; } -void __tcf_0(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&OrderBufferEmpty,in_stack_00000008); - return; -} - - - -void __tcf_1(void *param_1) - -{ - int in_stack_00000008; - - Semaphore::~Semaphore(&OrderBufferFull,in_stack_00000008); - return; -} - - - -void __tcf_2(void *param_1) +void UnlinkPlayerData(ulong CharacterID) { - int in_stack_00000008; + char local_100c [4]; + char FileName [4096]; - TDynamicWriteBuffer::~TDynamicWriteBuffer(&HelpBuffer,in_stack_00000008); - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void _GLOBAL__I__Z17InitReaderBuffersv(void) - -{ - __static_initialization_and_destruction_0(1,0xffff); - return; -} - - - -void __static_initialization_and_destruction_0(int __initialize_p,int __priority) - -{ - if ((__priority == 0xffff) && (__initialize_p == 1)) { - NONE.ObjectID = 0; - } + sprintf(local_100c,"%s/%02ld/%ld.%s",USERPATH,CharacterID % 100,CharacterID,&DAT_080f6560); + unlink(local_100c); return; } - +// QUERY.CC +//============================================================================== void SetQueryManagerLoginData(int Type,char *Data) @@ -11521,7 +6165,8 @@ TQueryManagerPoolConnection::~TQueryManagerPoolConnection return; } - +// CRYPTO.CC +//============================================================================== // WARNING: Unknown calling convention -- yet parameter storage is locked @@ -15013,69 +9658,3 @@ void vlong::convert(vlong *Number,uchar *pData,ushort DataLength) // WARNING: Subroutine does not return __cxa_throw(puVar1,char_const*::typeinfo,0); } - - - -// WARNING: Removing unreachable block (ram,0x080ee309) -// WARNING: Removing unreachable block (ram,0x080ee30c) - -void __libc_csu_init(void) - -{ - _init(); - return; -} - - - -// WARNING: Removing unreachable block (ram,0x080ee340) -// WARNING: Removing unreachable block (ram,0x080ee34e) - -void __libc_csu_fini(void) - -{ - _fini(); - return; -} - - - -int atexit(__func *__func) - -{ - int iVar1; - - iVar1 = __cxa_atexit(__func,0,__dso_handle); - return iVar1; -} - - - -undefined4 __do_global_ctors_aux(void) - -{ - code *pcVar1; - undefined4 in_EDX; - undefined **ppuVar2; - - ppuVar2 = &PTR__GLOBAL__I__ZN14TRSAPrivateKeyC2Ev_0812856c; - pcVar1 = (code *)PTR__GLOBAL__I__ZN14TRSAPrivateKeyC2Ev_0812856c; - if (PTR__GLOBAL__I__ZN14TRSAPrivateKeyC2Ev_0812856c != (undefined *)0xffffffff) { - do { - ppuVar2 = ppuVar2 + -1; - (*pcVar1)(); - pcVar1 = (code *)*ppuVar2; - } while (pcVar1 != (code *)0xffffffff); - } - return in_EDX; -} - - - -void _fini(void) - -{ - __do_global_dtors_aux(); - return; -} - diff --git a/reference/types.hh b/reference/types.hh index 051c33c..978f228 100644 --- a/reference/types.hh +++ b/reference/types.hh @@ -38,20 +38,3 @@ struct TNotationOrderData { char CharacterName[30]; char Comment[200]; }; - -struct TReaderThreadOrder { - enum TReaderThreadOrderType OrderType; - int SectorX; - int SectorY; - int SectorZ; - ulong CharacterID; -}; - -struct TReaderThreadReply { - enum TReaderThreadReplyType ReplyType; - int SectorX; - int SectorY; - int SectorZ; - uchar *Data; - int Size; -}; -- cgit v1.2.3