summaryrefslogtreecommitdiff
path: root/src/map/map.h
AgeCommit message (Collapse)AuthorFilesLines
2007-04-10- Updated a bit the pet_db.txt, added info for Xmas Goblin and Rice Cake. ↵skotlex1-0/+1
Since little is known about them, most of the info is custom! - Fixed @whogm not updating count for GMs which you can only see their name. - Added unit_data.state.speed_changed, now when an object changes speed, the old move-packet will be used on the next movement, which should update the object's speed from that point and on-wards. This is done since there appears to be no way to tell the client a given object's speed has changed. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10209 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-09* Played around with MinGW a bit today...ultramage1-8/+6
- adjusted code so that it handles mingw-specific compatibility problems - adjusted the makefile, mingw is not a subset of cygwin * As an experiment Corrected many /W4 warnings on the txt login server git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10192 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-06I'm still here!DracoRPG1-2/+1
Rewrote fame ranking lists- changed MAP_NAME_LENGTH to 12, now there's MAP_NAME_LENGTH_EXT at 16 for uses where there is / may be the .gat extension, code adjusted accordingly - moved map_normalize_name to mapindex_normalize_name so that everything handling map names uses the same extension-removing function - greatly enhanced the map cache generator, complete documentation on the tool and the map cache format can be found in doc/ - the map cache format changed a bit as a consequence, but of course a new valid one is included (contains latest Nameless Island maps) - fixed a duplicate entry in map index git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10167 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-05* Made a crazy attempt to at least partially synchronize login&char codeultramage1-5/+5
* Major edit to the way the servers handle ip addresses, making them obey the "host byte order inside, network byte order outside" rule - hopefully covered all entry- and exit-points for IP address data - discovered several places where Gravity's client breaks the convention, will need to come up with a suitable countermeasure for that - other than that, the code should be portable, except for printing and ipban mask testing (those still assume a specific byte order) - tested both txt and sql in all usual situations; tested single- and multi-server setups, all seems to work (but watch out for hidden bugs!) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10162 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-02- Corrected the login TXT server not initializing the waiting_disconnect ↵skotlex1-0/+1
variable. - Corrected the attack_attr_none check being backwards. - All pets can now move regardless of their Mob counter part setting. - Added hom_setting&0x40, when set it clears the "can't reuse" skill delay when you vaporize a homunculus (set by default). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10120 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-02* Some source code cleaningultramage1-1/+0
- Fixed the badly worded messages during mapserver startup - Cleaned up socket config reading - Split resolve_hostbyname() into 2 separate functions for clarity - Moved the probably obsolete LOWER/UPPER macros to db.c (TODO: remove) - Moved the badly placed compare_item() function to storage.c (see r779) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10119 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-01- Fixed the server crashing on startup due to bad defineultramage1-6/+2
- Fixed the server crashing on a timer-queued disguise / undisguise (no sd check) - re-added the item_group_list for consistency's sake, moved to itemdb.h (after some hacking to remove the ugly map.h dependency) - Removed some overly verbose item group messages & code git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10112 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-01- Removed bonus 'bAspdAddRate'. bAspdRate now behaves on a stackable matter, ↵skotlex1-2/+3
so it's no longer needed. - Reimplemented the bonus 'bAspd' - Renamed variable aspd_add_rate to aspd_add, since bAspdAddRate was removed, this variable now holds the absolute aspd bonuses. - Added define status_base_amotion_pc to get the base amotion value. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10107 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-30- Corrected damage of non-player casted Cart Revolutionskotlex1-38/+3
- Removed enumeration item_group_list and replaced it by two defines, which is what the code really needs. Bumped the max number of item groups to 40. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10100 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-28- Added defines script_getnum and script_getstr to further simplify variable ↵skotlex1-1/+0
reading code. - Applied mass replacing of text to enforce usage of script_hasdata, script_getnum, script_getstr and data_isstring defines where possible. - Cleaned up the 'input' command code. - Minor other cleanups in script.c - Removed OPTION_SIGHTTRASHER as there's no indication this value exists. - Corrected OPTION_XMAS since 2007 clients have split it up from OPTION_FLYING (on previous clients both were the same option value) - Removed GRF_PATH_FILENAME references (it wasn't used anymore) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10085 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-27- Moved coma to skill_additional_effect, added special_state.bonus_coma to ↵skotlex1-0/+1
prevent doing comma calculations for every player attack. - Added config "vending_tax" to apply a tax to all vending requests, as it was in kRO Sakray some time ago (requested by Playtester) (items.conf). - Some cleaning of skill_additional_effect - Moved the starting of SC_DANCING from skill_initunitgroup to skill_unitsetting - Moved the checks for player_skill_partner_check and (gm_skilluncond for it) to skill_check_pc_partner - Negative aspd rate bonuses will be handled as aspd add rate since the default non-stackable bonus is useless on penalty bonuses. - Added check to prevent the client from using passive skills. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10082 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-26- Changed MAX_LEVEL to the standard value 99. Memory consumption-= 55MB. ↵ultramage1-1/+1
(high-rate servers will have to change this) - Corrected SC_COMA's success chance (X.4 says it's unconditional 100%) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10071 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-24Corrected change r10051 which prevented Ice Pick from workingultramage1-6/+6
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10063 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-22- Removed unused bIgnoreDefMob skotlex1-10/+9
- Removed unneeded sd variables cart_max_weight and cart_max_num - Made ignore_mdef_ele/ignore_mdef_race/ignore_def_ele/ignore_def_race unsigned chars rather than ints. - Made pc_dropitem check for inventory_data, to guarantee that the item will be deleted from the inventory after dropping it. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10051 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-19Increased MAX_STATUCHANGE to 300 so we won't get the same error over and ↵DracoRPG1-1/+1
over next time we add an SC... Reverted the map index reading for the map-server to the old system (from map_list.txt and not map_cache.dat) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10034 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-19- Patched the MAX_STATUSCHANGE startup errorultramage1-1/+1
- Fixed a compiler warning - Really removed duplicate Noyee npc git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10033 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-19- Removed the last argument from skillitem, the skill name passed to the ↵skotlex1-3/+3
client should always be of the type "AL_HEAL" anyway. - Added skill ITEM_ENCHANTARMS, this is what weapon enchanting items should use. - Corrected itemskill calls in the item_db, also made the weapon enchanting items invoke the ITEM_ENCHANTARMS skill. Corrected Holy Egg not being type 11 (delay consume) - Updated item_db.sql with item_db information. - Added support for specifying different elements per skill level in the skill_db - Added bonus bNoKnockback - Corrected typo in bonus bSubRace2 (it was called bSPSubRace2 for some reason) - Corrected login sql server not resetting your account state to 0 when the banuntil duration expires. - Corrected use of UINT_MAX instead of INT_MAX in some jailing check. - Made the skillatk bonus it's own function, it can now be used to boost Heal/Sanctuary/Potion Pitcher and Slim Pitcher as well. - Cleaned up TK_WARMWIND to use the element acquired from the skill_db rather than hardcoded values. - Corrected Teleport's save map entry being sent without the .gat extension. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10031 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-18- Removed the old 'mapserver charsave' mechanismultramage1-9/+0
- Fixed some wrong sql login logic - Fixed some compiler warnings, cleaned up mapserver sql-related vars git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10027 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-09- Added info on packet 0x86 (simple move packet). Not usable until a clear ↵FlavioJS1-1/+1
separation between entering sight/leaving sight/walking in sight is done. - Propagating const char* from the script engine. - ".gat" is appended to the map name before sending the changemapserver packet to the client. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9979 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-09- Made conv_str return const char* since the script engine screws up if you ↵skotlex1-1/+1
mess with the position of the terminator on the received string. - Because of this, many functions that handled the return of conv_str need to be changed, I haven't finished doing the conversion process because I must go already, if someone else can continue, please do so (I will resume work on this in ~5 hours git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9978 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-07- Made the map server abort when it can't open the mapcache file.skotlex1-0/+1
- Added a normalizing function to map.c which handles removing the extension of the map name. - Applied said function when reading maps from maps_athena, since the mapcache lookup fails without it (maps are stored there without extensions) - TODO: Apply the normalizing function everywhere when parsing map related scripts. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9973 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-07New mapcache system :xDracoRPG1-3/+0
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9971 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-01- Updated the stun length to 5 secs of: Meteor Storm, Sonic Blow, Throw ↵skotlex1-0/+1
Stone, Sightless Raid, Smite, Cart Termination - SG Union will consume now SP if you use it while not soul linked. - Added variable "skip" to the mob spawn data, to know how many mobs to skip when spawning because they were not removed due to the "mob_remove_damaged" setting. - Corrected the Hp/Sp regen formulas from Hp/Sp/Spirit Recovery and Happy/Peaceful break according to recent forums discussions (formula is changed from x*lv +max*lv/500 to lv*(x+max/500). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9944 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-21Applied a consistent look to all header files (copyright, ifdefs)ultramage1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9891 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-13- A bit more work on Ticket #41.FlavioJS1-0/+3
- Added 'r' (variable reference) to the script argument definitions. - Added a simple define for suspitious actions. (empty at the moment) - Added clif_clearcart and moved sending cart packets to pc_setoption. - clif_parse_ChangeCart checking the player level. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9857 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-07- Updated the range of BioExplosion and Self Destruction so they count as ↵skotlex1-4/+4
ranged skills. - Removed old script bonuses bMatk, bMatk1, bMatk2 - Fixed char-server not sending online notification when a party member logs in. - When skill range by distance is set, the distance checked for is now 5 cells rather than 3. - Fixed bMatkRate bonuses not applying to status earned modifications to int/matk. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9816 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-07- Moved CHAT_SIZE back to map.h because log_atcommand uses it on sql builds. ↵FlavioJS1-0/+2
(moved to clif.c in r9811) [FlavioJS] git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9814 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-06- Moved define CHAT_SIZE to clif.c, added define CHATBOX_SIZE to specify ↵skotlex1-2/+2
that 70 char limit of the input area. - Fixed #lvup having the gm level check backwards. - Fixed the stormgust freeze counter going up even if the attack is blocked/cancelled. - Updated mes_len_check to receive max expected size as well (clif.c) - Cleaned up parsing functions for /mm, /resetskill, /resetstate, /item, /monster, /hide - git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9811 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-05- Updated the code so that now a range of a skill is determined by the ↵skotlex1-1/+2
skill's range in the db. Now only skills with less than 5 cells of range are melee. - The inf2 parameter of the skill_db is now red as an hexadecimal. - Updated comments and inf2 values of the skill_db to use the new format. - Soul Change now can't be casted on self. - Updated range of Grandcross, Granddarkness and Gospel to 5 so when they attack their attack type is counted as ranged. - Splitted the super novice flag in two, to keep seperate counters for the chant and for the self-revival. The self-revive will now trigger only once per level per session, if you relog you can have it trigger again. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9794 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-02- The define MESSAGE_SIZE was wrong! It is only used for input boxes. ↵skotlex1-3/+4
Therefore now it is only used for Vending, Talkie box and Graffiti - Added new define CHAT_SIZE which holds the max length that a client can send from the chat buffer. This value is NAME_LENGTH + 3 (the ' : ') + 70 (the actual text). - Added define msg_len_check which crops incoming client text if it's longer than CHAT_SIZE. Added cropping to all incoming messages except normal chatting which is already accounted for. - Removed variable talkie_mes, this is now handled by sd->message - Cleaned up parser functions for /b /lb, gm kick, /shift, /recall - Added crash protection to the logging functions when they receive a too long string. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9778 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-02Corrected the chat system to allow 8-letter passwordsultramage1-2/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9772 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-22- Removed sd->max_menu, sd->npc_menu is now reused to store what is the max ↵skotlex1-1/+1
number of valid entries and prevent clients from picking invalid options. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9690 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-09- Changes to script buildin functions:FlavioJS1-3/+12
* functions checking if a player is attached as soon as possible. * functions that required a player attached and would crash if none was there terminate the script now. (others keep the current behaviour to maintain full backward compatibility) * removed the unused flag argument in guildskill. * bonus,bonus2,bonus3,bonus4 use the same function now (remains the same script-wise) * added an optional parameter to setcart,setfalcon,setriding so it's possible to remove the cart/falcon/mount or select a specific cart * other cleanups git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9636 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-07Undid the memset->malloc_set replacementultramage1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9626 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-20- Changed the script source from unsigned char* to const char*.FlavioJS1-3/+3
- Updated plugins Makefile. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9532 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-08- Moved attackedcount to md->state and made it an unsigned char.skotlex1-2/+1
- Autospell delay time is now the skill's full delay. - Removed variable attackedplayers, since Aegis is state driven, the best approximation to Aegis would be to use the last player that hit the mob. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9436 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-06- Cleaned up the implementation of map_foreachinmovearea so that the number ↵skotlex1-1/+1
of arguments passed is less. - Moved setting a mob's chase/attack states from the mob_ai to unit_attack and unit_walktobl. - Cleaned the change-target/cast-sensor code to account for the new mob modes. - Cleaned up a bit the mob ai sub hard function. - Made the monster_active_enable config setting take effect on mob load. - Updated the doc explaining mob modes. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9422 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-05- Massive EOL normalization & 'svn:eol-style native' flag setting for all ↵FlavioJS1-1491/+1491
txt/conf/h/c files. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9410 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-03- Removed sd->sex since it's redundant (we can always use sd->status.sex)skotlex1-1/+1
- If somehow a player logs out and it's saved with 0 hp, on login his state will be set to dead as well so he can respawn (otherwise that leads to a stuck char) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9398 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-01- Fixed txt-converter compilation. skotlex1-1/+1
- Added my_global.h include to login converter - Removed sd->char_id since we can use sd->status.char_id instead. - Small speedup in STRECOVERY, and made it not unlock a mob's target. - Fixed GS_GROUNDDRIFT consuming ammo when it's time expires (so it was consuming 2 grenades instead of one). Also added a "explosion effect" when their time runs out. - gvg_dungeon mapflag won't set pvp related mapflags anymore, pc_dead will force pvp ranking gain/loss on gvg_dungeon maps now. - Now when coming out of hiding land-effects will trigger on the character. - Made the pc_setpos message when being placed on an unwalkable tile tell you which player triggered it. - Fixed land effects not taking effect inmediately on map-load when the invincible timer is disabled. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9374 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-27- Updated the status change field "option" to an int rather than short. This ↵skotlex1-2/+2
fixes the option values for xmas/sightblaster not getting set, which could explain why some people crash when equipping weapons while in xmas suit. - Also did the same to opt3 since the new packet version uses LONG to store the opt3 values. - Made the clif weapon view function use the EQI constants instead of ints. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9337 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-21- Moved ignoreAll to state.ignoreAll so it saves some space.skotlex1-1/+1
- Cleaned up clif_parse_Wis to prevent crashes from forged packets (using a strlen() on a string where you don't know if it's null-terminated is a NO-NO) - Cleaned up the implementation of the ignore list so it's more efficient. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9282 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-19* Hack protection from packet monkeys in clif_parse_NpcSelectMenu. Lance1-1/+1
modified Changelog-Trunk.txt modified src/map/clif.c modified src/map/map.h modified src/map/script.c git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9261 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-14- Characters with Karma may fight amongst them anywhere.skotlex1-0/+2
- Added mapflags partylock and guildlock, which lock the state of the parties/guilds on said maps. partylock blocks user party requests to create/invite/leave/kick, while guildlock blocks user guild requests to create/invite/leave/expel/make alliance/make opposition/delete alliance/delete opposition/break git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9216 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-13- Volcano/Deluge/Violent Gale are now interchangeable, in the sense that as ↵skotlex1-1/+1
long as one of these is out, casting any of the three will not consume gems, and will use the remaining time of the previous one. In turn, Land Protector will now always consume gems on every cast. - Small cleanup in the Land protector code which may fix it not blocking AoE skills. - Fixed the interpretation of "head_dir". Removed setting head_dir to match character direction in the whole code. Now it is only reset to 0 (look forward) when unit_setpos is invoked, or when a character begins walking. Thanks to FlavioJS for figuring out how the client parses the head direction. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9206 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-07- A few reorders and type-changes in the map_session_data structure for ↵skotlex1-8/+7
better memory allocation of the variables. Also fixes a size conversion warning. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9169 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-20- Fixed Charge Atk being able to go through chasm/pits.skotlex1-3/+1
- Moved the homunculus DB information from the player structure to the homun structure. Modified the homunculus creation packets to hold this information during creation, also, all initial values are handled by the map-server, the char server only assigns it a homun ID. - Removed target_id/attacked_id from homun_data as it wasn't really used. - Codes cleanup (removing of commented code mostly) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9031 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-11- Removed login-sql connection variables from the map-server (the hell, ↵skotlex1-6/+0
these aren't used at all!) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8969 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-11- Removed useless inter_athena settings (they were doing absolutely ↵skotlex1-6/+0
nothing): read_gm_interval, gm_db, gm_db_level, gm_db_account_id, use_new_sql_db git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8968 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-11- Corrected the mob damagelog structure so that you can't exploit it by ↵skotlex1-0/+1
switching characters. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8963 54d463be-8e91-2dee-dedb-b68131a5f0ec