Todo List

Global <globalScope>::apply_lighter (object *who, object *lighter)
This type is currently not used in Atrinik, perhaps make use of it?

Global <globalScope>::Atrinik_CheckMap (PyObject *self, PyObject *args)
Finish.

Global <globalScope>::Atrinik_Object_CheckTrigger (Atrinik_Object *whoptr, PyObject *args)
Create a hook for check_trigger() to make this work.

Global <globalScope>::Atrinik_Object_GetSkill (Atrinik_Object *whoptr, PyObject *args)

Remove the type parameter?

Could speed this up for players by using their skill pointer and experience arrays. That would make the type parameter used again as well.

Global <globalScope>::Atrinik_Object_SetSkill (Atrinik_Object *whoptr, PyObject *args)

Overall experience is not changed (should it be?)

Could speed this up for players by using their skill pointer array. That way we wouldn't need the type parameter either.

Only allow to be ran on players? Monsters can't get exp.

Global <globalScope>::Atrinik_ReadyMap (PyObject *self, PyObject *args)
Don't crash if unique is wrong

Global <globalScope>::blocked_link_2 (object *op, mapstruct *map, int x, int y)
This function should really be combined with the above to reduce code duplication.

Global <globalScope>::cast_dust (object *op, object *throw_ob, int dir)
This function needs to be rewritten. Works for area effect spells only now.

Global <globalScope>::check_quest (object *op, object *quest_container)
Add support for multiple objects in quest_container's inventory?

Global <globalScope>::check_walk_off (object *op, object *originator, int flags)
Document.

Global <globalScope>::check_walk_on (object *op, object *originator, int flags)
Document.

Global <globalScope>::checkdm (object *op, char *pl_passwd)
Should be rewritten to use objectlinks, similar to ban.c.

Global <globalScope>::command_who (object *op, char *params)
Perhaps make a GUI from this like the party GUI and you would be able to press enter on player name and that would bring up the /tell console?

Global <globalScope>::create_one_treasure (treasurelist *tl, object *op, int flag, int difficulty, int t_style, int a_chance, int tries, struct _change_arch *change_arch)
Get rid of the goto.

Global <globalScope>::dequeue_path_requests ()
Only compute time if there is something more in the queue, something like if (path_request_queue_empty()) { break; }

Global <globalScope>::distance_heuristic (path_node *start, path_node *current, path_node *goal)
Cache the results from get_rangevector() for better efficiency?

Global <globalScope>::encode_path (path_node *path)
Buffer overflow checking.

Global <globalScope>::expand_sight (object *op)
Improve the formula.

Global <globalScope>::find_first_free_spot (archetype *at, object *op, mapstruct *m, int x, int y)
Document.

Global <globalScope>::find_first_free_spot2 (archetype *at, mapstruct *m, int x, int y, int start, int range)
Document.

Global <globalScope>::find_free_spot (archetype *at, object *op, mapstruct *m, int x, int y, int start, int stop)
Document.

Global <globalScope>::fire_cast_spell (object *op, char *params)
Avoid code repetition by merging with command_cast_spell().

Global <globalScope>::fix_player (object *op)
This function is too long, and should be cleaned / split.

Global <globalScope>::FLAG_SPLITTING
Remove?

Global <globalScope>::get_rangevector (object *op1, object *op2, rv_vector *retval, int flags)
Document.

Global <globalScope>::get_rangevector_from_mapcoords (mapstruct *map1, int x1, int y1, mapstruct *map2, int x2, int y2, rv_vector *retval, int flags)
Document.

Global <globalScope>::init_connection (socket_struct *ns, const char *from_ip)
Remove version sending legacy support for older clients at some point.

Global <globalScope>::insert_priority_node (path_node *node, path_node **list)
Make more efficient by using skip list or heaps.

Global <globalScope>::insert_spell_effect (char *archname, mapstruct *m, int x, int y)
Does not support multi arch effects yet.

Global <globalScope>::level_exp (int level, double expmul)
Remove, since the param expmul seems to always be passed as '1.0'?

Global <globalScope>::lose_priest_exp (object *pl, int loss)
Make work again?

Global <globalScope>::move_creator (object *op)

Check if it works properly with multi arch objects.

Perhaps if other_arch is set try to check for an object in its inventory, and copy any modified values?

Global <globalScope>::Object_SetFlag (Atrinik_Object *whoptr, PyObject *val, void *context)
If gender of player has changed, demand update to client.

Global <globalScope>::relative_tile_position_rec (mapstruct *map1, mapstruct *map2, int *x, int *y, uint32 id)
A bidirectional breadth-first search would be more efficient.

Global <globalScope>::retrofit_joined_wall (mapstruct *the_map, int i, int j, int insert_flag, RMParms *RP)
Merge with pick_joined_wall()?

Global <globalScope>::set_ring_bonus (object *op, int bonus, int level)
Get rid of the gotos in here.

Global <globalScope>::SPELL_USE_BOOK
Remove as this no longer seems to be relevant/used?

File armour_improver.c
Test how the code works and perhaps make use of it for Atrinik.

File define.h
This file is really too large. With all the .h files around, this file should be better split between them - things that deal with objects should be in objects.h, things dealing with players in player.h, etc. As it is, everything just seems to be dumped in here.

File random_map.c
Explain process, layout signs (# C D < >) and such.

File weapon_improver.c
Test how the code works and perhaps make use of it for Atrinik.

Generated by  doxygen 1.6.2