497 Commits

Author SHA1 Message Date
FlavioJS
382233178c * Made the memory manager set allocated memory to 0xCD and freed memory to 0xDD. The memory manager no longer 'hides' uses of freed memory.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11994 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-30 05:43:51 +00:00
FlavioJS
4dcf5bb0b9 * Tweeked the declaration and initialization defines for vectors.
* Made do_sockets leave the for loop as soon as the readable number of sockets returned by select is found.
* Made all posix compliant systems that support it and FreeBSD >= 5.1 (implements it but doesn't have the posix defines) use the precise and consistent tick() implementation.
* Minor tweek to HEAP_SEARCH (same variable can be used in from and to).
* Fixed the map server not exiting when make_listen_bind fails and returns -1.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11983 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-27 03:35:57 +00:00
FlavioJS
70ca76a770 * Added a generic vector implementation (dynamic array) based on defines.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11972 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-23 18:05:29 +00:00
ultramage
5790585d16 * Added flag.server to indicate interserver sockets
- replaces the previous way (setting 'client_addr' to 0)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11930 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-17 13:23:34 +00:00
ultramage
86b5e0c6f6 Replaced the 'map name' castle data variable with the equivalent 'map index'.
Optimized the castle lookup functions (direct dbmap enumeration, and no redundant operations inside the searching loop).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11918 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-16 21:00:36 +00:00
ultramage
1e6922174e Guardian hp handling code removal (see bugreport:342)
- removed guardian hp from the castle data structure, database, savefiles and various script functions (use upgrade_svn11914.sql)
- removed guardian hp calculation and manipulation from the castle manager npc, now the hp values are updated by the server itself (glitch: when castle defense changes, all guardians are healed to full)
- tweaked script function 'guardianinfo' to provide some data needed by the manager npc (currently available are hp, maxhp and visibility); also, it doesn't need a player attached to execute anymore
The whole thing is experimental, use at your own risk (seems to work though...)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11915 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-14 23:38:11 +00:00
ultramage
a772e3699d Added a precise and consistent tick() function for freebsd (see bugreport:240)
(TODO: apply it to multiple platforms using an appropriate configure script)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11912 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-14 10:52:51 +00:00
FlavioJS
ef54f5d793 * Disabled ers until recent crashes are fixed.
- ers entries are being corrupted, probably by modifying them after they are released or by releasing something else

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11900 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-13 18:50:48 +00:00
FlavioJS
02d21582a6 * Abstracted the windows socket code so that all fd's are in the range [1,FD_SETSIZE[. (bugreport:604)
- The socket of a fd is forgotten when executing sClose, so things that depend on the socket (like sFD_CLR) must be executed before closing.
* Replaced the fd_set of the short list with a custom implementation (works like the linux fd_set).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11897 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-13 16:32:58 +00:00
ultramage
8be1c4d48c * Some preparations for the guild script update
- cleaned up npc event execution code
- cleaned up guild data loading/saving code; to be improved later
- removed dummy 'account name' expulsion list management code
- removed columns 'rsv1' and 'rsv2' from guild member data
- removed columns 'rsv1' 'rsv2' 'rsv3' and 'acc' from guild expulsion data
- added upgrade_svn11895.sql for SQL

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11895 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-12 09:55:13 +00:00
skotlex
11c0438e85 - The interserver outgoing buffer now gets flushed when it reaches 512KB of data stored on it.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11886 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-10 19:13:12 +00:00
FlavioJS
6dd13ee535 * Added a generic 'delimiter-separated values' string parser to strlib.c/h.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11878 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-09 22:08:31 +00:00
skotlex
e823c2e3eb - removed the timer heap correction code when the timers overflow since Flavio points out that it is not needed.
- Modified a bit the changesex code so you get saved and quit before changing your sex rather than afterwards.
- Cleaned up #changesex
- Signum Crucis now works on bosses.
- party_recv_data will not set the sd pointer for not-yet-authed characters.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11867 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-07 08:44:52 +00:00
FlavioJS
754b397edf * Random cleanup/documentation.
* Made common/Makefile get the svn version from the src directory, not src/common.
* Added a warning message to the install and uninstall targets.
* Renamed all obj directories to obj_all, obj_txt or obj_sql in the makefiles (if an obj/ directory exists, BSD make enters it before reading the makefile)

(run ./configure to update your makefiles, and don't forget to do 'make clean' before updating)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11844 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-30 00:17:26 +00:00
FlavioJS
e207fecd8c * Added safesnprintf to strlib.c/h (bugreport:372)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11828 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-27 23:06:37 +00:00
FlavioJS
7bfaec4529 * Normalized makefiles:
- 3 sections: variables, public targets, private/support targets
- object files always in a *_OBJ variable
- header files always in a *_H variable
- object files always generated to an obj* subfolder
- all Makefiles can be executed individually, calling other makefiles if necessary
- generic object targets when possible

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11812 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-26 22:36:30 +00:00
skotlex
ddf923dba5 - Changed the status_change structure to use dynamic rather than static memory to hold the individual status changes, this should have a noticeable impact on the server's memory consumption.
- Had to add a few 'ugly' flags to status_change since now you can't track SC related information while said SC is not active (happens only for Storm Gust, Joint Beat and Magic Power).
- Since I am unable to fully test, watch out for any bugs~


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11786 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-22 23:52:58 +00:00
FlavioJS
f56187c091 ups
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11775 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-21 18:21:13 +00:00
FlavioJS
c7fad50342 * Fixed Sql_SetEncoding not setting the encoding of the connection properly. (fixes bugreport:30)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11774 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-21 18:15:05 +00:00
ultramage
c1da20681e Random cleaning of party.c in attempt to make party_send_xy_timer() crashes a bit clearer...
- now party_db is iterated instead of using foreach()

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11761 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-19 14:51:23 +00:00
FlavioJS
7e9f1e929c * Nullpo's disabled on release builds.
* Added timestamps to the log of memory leaks.
* Moved definition of __func__ to cbasetypes.h.
* Configure script updated:
- added option to select the memory manager
- added option to enable MAPREGSQL
- added option to enable DEBUG
* common's Makefile deleting svnversion.h on 'clean' target.

(run ./configure again to update your Makefile)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11760 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-19 03:05:16 +00:00
ultramage
b5cf6976a2 Fixed some homunculus skill offset calculation mistakes (bugreport:363)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11731 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-14 09:31:47 +00:00
zephyrus
0cf565292d - Important fix to Mail System allowing (by a low change) items duple.
- Added picklog to mail.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11721 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-12 08:55:36 +00:00
ultramage
12a567a5f9 Changing enum weapon_type in the mmo_charstatus structure back to integer until someone resolves that include mess...
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11705 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-10 13:26:08 +00:00
ultramage
5eda6c0e57 Replaced several 'int' variables with enums that they represent.
Expanded weapon_type enum with dual-wield constants (bugreport:384).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11704 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-09 22:42:56 +00:00
ultramage
0f6d747991 Fixed socket.c using time() incorrectly, causing stall timer desynchronization (bugreport:394)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11702 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-09 21:23:02 +00:00
FlavioJS
58aba77ff3 * Added a database iterator to db.c/db.h.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11701 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-09 20:59:20 +00:00
FlavioJS
9d2688ad87 * Changed EXIT_SUCCESS back to 0 in console.c to avoid an unnecessary include.
* Fixed gm_account_db not being deallocated in login-converter.c.
* Refactoring names and documentation in db.h/db.c:
  - changed 'struct dbt' to 'struct DBMap' and 'DB' to 'DBMap*'
  - changed 'struct db' to 'struct DBMap_impl' and 'DB_impl' to 'DBMap_impl*'
  - changed COUNT to DB_COUNTSTAT and made it's existence not depend on DB_ENABLE_STATS
  - removed some @see links and corrected small typos in the documentation

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11698 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-08 14:08:32 +00:00
ultramage
59b9654397 Tried to make sense out of timer.c ... and failed
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11647 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-03 12:35:34 +00:00
ultramage
ac33a63e54 * Added names to the SC_ and SI_ enums, now they can be used to properly indicate where such values are to be used (replaces usage of 'int')
* removed MIN_/MAX_PORTAL_MEMO, set MAX_MEMOPOINTS from 10 to 3
* removed support for @go-ing to your memo points
* simplified the overly verbose @memo command; now re-uses pc_memo()
* cleaned up pc_memo(), now uses semi-correct packet replies
* Minor code cleaning/formatting

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11625 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-31 13:20:48 +00:00
ultramage
acd2c914a5 Fixed a compilation error in the mail code. Blame the C standard and gcc for giving enums a variable-sized type, thus making forward declarations impossible.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11587 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-27 14:20:10 +00:00
ultramage
b6bbaef27b Followup fixes to r11583:
* fixed wrong sql upgrade file name, added svn:eol-style native
 * made 'status' variable directly use the mail_status enum
 * replaced some hardcoded numbers in mail queries with references to the enum
 * fixed a query which still used 'read_flag'
 * fixed all new mails being displayed as 'already read'
 * removed sd nullpo checks from parse_ functions as that can never happen
 * fixed mapserver sending (and charserver saving) junk item fields when there is no item attached to a mail
 * fixed wrong mail send packet interpretation saving random memory after message body ('body_len' doesn't include the terminating zero)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11584 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-27 09:48:27 +00:00
zephyrus
284222a415 - Improvements to the mail system.
- Added a sql patch, renaming "read_flag" column to "status" on the mail db.
- Need more testing.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11583 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-27 06:34:04 +00:00
FlavioJS
d9774ac8ca * Corrected a fex misshaps from r11571:
- disabling the memory manager
- using the wrong length for the title and body in mail_savemessage
* Removed the quick-fix in the npc duplicate check and the impossible condition that is generating the warning.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11573 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-24 13:29:00 +00:00
skotlex
480a4f0ac8 - added defines JOB_MAX_BASIC and JOB_MAX to mmo.h so the code can know which are the max valid classes.
- @/#jobchange no longer strip your equipment since pc_jobchange removes any unequippables already.
- removed the wasteful define MAX_PC_CLASS and replaced it by the CLASS_COUNT define (which is automatically updated using the previous JOB_MAX* defines) + pc_class2idx function (which converts high class IDs into values that fit in CLASS_COUNT)
- Made status_charge a function rather than a define to get rid of those warnings that have been there since forever.
- Merged the CELL_NOVENDING code (see topic #129209)
- Small check that disables the pet catching process if you try to use another item. 
- Added a check to fix a warning and prevent a crash in the npc duplicate check (even though I have no idea what this check is supposed to do, therefore I can't fix it properly other than to avoid the crash)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11572 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-24 13:02:00 +00:00
ultramage
d091f1cf05 * Cleaned up some messy guild code (more to come)
* Cleaned up the mail code, no more pointless dynamic allocation
* Added upgrade_svn11548.sql to convert the mail table to new format
* Updated vs7 and vs6 project files
* Increased the max. send buffer size to 5M since 1M is not enough
* Please complain if something stops working ^^;

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11571 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-24 12:14:18 +00:00
zephyrus
a0b1a582a1 * Removed the inter_athena.conf maildb settings as they are not required anymore.
- MailDB is now an integral part of the MainDB.
- To Server Admins, use mysql tools to move your mail data to the new structure.
- You can get the maildb structure from main.sql.
- Renamed some vars (recomendation of Ultramage :D)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11557 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-23 00:31:37 +00:00
zephyrus
c34325a53b - Added the new mail system. Requires optimization and tests.
- Updated the maildb sql structure.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11548 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-22 20:38:26 +00:00
ultramage
33decb0759 Fixed a small mistake in r11503 causing a fatal error&exit on unix when you try to do a graceful exit (by ctrl+c for example)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11538 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-21 13:37:46 +00:00
ultramage
6cca14200e Fixed a nasty bug from r11410 which let people create chars with already taken char names, and (in TXT's case) even cause a crash.
Closes bugreport:234.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11530 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-20 21:21:54 +00:00
ultramage
4cfb15d8bb Fixed numerous /W4 warnings (and created more :)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11514 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18 21:25:26 +00:00
ultramage
2c2af57a84 * Removed commented-out code for check_fake_id()
* Merged improved/cleaned up (WiP) code for clif_parse_WisMessage
* Removed the requirement to provide a character name in the message string when calling is_atcommand() (needed for the previous fix)
- currently both ways work, but old will be removed in the upcoming command cleanup so please adjust your custom code if you use this!
* Added clif_process_message(), an unified way to validate all four types of player message packets and retrieve their components
* Applied the new checking function to clif code, this fixes various length mismatches caused by incomplete code in r11386 (bugreport:198)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11507 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18 12:49:49 +00:00
ultramage
28a6350610 Fixed unix compilation problem due to a missing include (caused by r11499)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11506 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18 10:11:54 +00:00
ultramage
0bbf505d59 * Merged do_sendrecv() and do_parse() into do_sockets()
* Fixed subnet check message displaying incorrect ip addresses
* client_addr will now be properly set to 0 for server connections
* Removed socket code that attempts to cope with code bugs at runtime
* Removed outdated copyright and version number from startup logo

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11503 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-17 20:24:48 +00:00
FlavioJS
05134f3dcc * Reworked the parsing at npc.c.
- Fixes npc.c discarding the '}' at the end of file, when there is no newline. (uncovered as a side-effect of r11487)
* Empty script functions always have code now (won't report as missing when you try to call them).
* Changed userfunc_db to not limit the name to 50 characters.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11502 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-17 20:15:39 +00:00
ultramage
3d7a129b90 Using predefined constants as parameters to the exit() function.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11501 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-17 17:20:01 +00:00
ultramage
6b2c679c3f * small timer.c cleaning
- removed "with less than 4 values, it's speedier to use a simple loop" as this case will never occur (premature optimization from r1284)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11499 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-17 12:07:25 +00:00
ultramage
74c5d717aa Fixed memleak hell during mapserver shutdown (if grf reading is used and the deallocation routine is actually called).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11439 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-13 03:00:51 +00:00
ultramage
286e1a32c4 * Added MAX_HOTKEYS to supplement the HOTKEY_SAVING define
* Fixed a compile problem when hotkey saving is disabled (topic:167265)
* Added script source error reporting to countitem() (topic:167165)
* Removed integer mob skill state/target definition support (unused)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11353 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-04 16:16:44 +00:00
ultramage
ce7dd37878 * Cleaned up parts of skill.c related to skill units
- removed some nonsense code in skill_dance_switch() (from r8876)
- removed 'security system to prevent forgetting timer removal' (r1213)
- renamed some skill-related data structs (had same name as variables)
- commented out custom Venom Splasher countdown messaging code

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11347 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-03 12:58:52 +00:00