This ChangeLog describes the important changes of each svn commit.

r1443 (2010-09-22):

Finish updating the editor.

r1442 (2010-09-22):

Updating the editor to take into account the new syntax of treasure-related
entities (chests, shop items, pickable items, destructible items and enemies).

r1441 (2010-09-21):

Improve the protection of the internal SDL objects encapsulated (access
methods to them are now private).

r1440 (2010-09-21):

Put the definition of inline member functions outside the class definition.

r1439 (2010-09-21):

Replace f(void) by f() in function declarations (f(void) has no meaning in
C++).

r1438 (2010-09-21):

Replace the DIE macro by better code.

r1435 (2010-09-18):

Fix shop items.

r1434 (2010-09-15):

Still fixing items.

r1433 (2010-09-14):

Fix item issues.

r1432 (2010-09-13):

- Still working on items.

r1431 (2010-09-13):

- Fix problems about items.

r1430 (2010-09-13):

- Finish implementing the class Treasure. The code now compiles but the game
cannot be played normally since some item features are still missing.
- Detect savegames created with the old format (before the changes about
items) and destroy them.

r1429 (2010-09-12):

- Implementing the class Treasure.

r1428 (2010-09-12):

- Implement the new version of the class PickableItem.

r1427 (2010-09-12):

- Implement the new version of the class Equipment.

r1426 (2010-09-12):

- Implement the class ItemProperties.

r1425 (2010-09-12):

- Move the item descriptions in a separate file items.dat.
- Add the interface of class ItemProperties.

r1424 (2010-09-10):

- Upgrade all existing maps of zsdx to respect the new syntax of chests, shop items,
pickable items, enemies and destructible items.

r1423 (2010-09-10):

- Change the syntax of pickable items and entities that depend on them
(enemies and destructible items). Now, all entities that can contain a
treasure (chests, shop items, pickable items, enemies and destructible
items) use the same unified syntax. This syntax is the one that describes a treasure: an item name,
a variant and a savegame variable. The existing maps will need to be upgraded.

r1421 (2010-09-09):

- Remove enumeration InventoryItemId (the hardcoded list of inventory items).
- Remove the amount parameter of treasures. The variant gives enough
information. This makes new changes to the Lua API:

Function removed:

give_treasure_with_amount

Functions whose parameters have changed (to make them coherent with 
treasure_give):

event_treasure_obtaining
event_treasure_obtained

The existing scripts will need to be updated.

r1420 (2010-09-09):

- New function in the Lua API:
  equipment_set_ability(ability_name, level)
- Update dialogs and strings related to items and treasures

r1419 (2010-09-08):

- Update the inventory subscreen for the new item system.
Each item image is now defined as the sprite hud/inventory_item, with the
animation and direction determined by its name and variant.

r1418 (2010-09-08):

- Update all existing Lua scripts to match the new API.
- New functions in the Lua API:
  equipment_has_ability(ability_name)
  equipment_has_item(item_name)
  equipment_has_item_amount(item_name, amount)

r1417 (2010-09-08):

- Removed the class DungeonEquipment. The class Equipment will handle all items in
a more abstract way and does not need the dungeon-specific items to be
separated anymore.
- Important changes in the Lua API:

Functions changed or added:

equipment_get_money()						name changed (was equipment_get_rupees())
equipment_add_money(money)					new function
equipment_remove_money(money)					name changed (was equipment_remove_rupees(rupees))
equipment_get_life()						new function
equipment_add_life(life)					new function
equipment_remove_life(life)					new function
equipment_get_ability(ability_name)				new function (replaces equipment_get_tunic(), equipment_get_sword() and equipment_get_shield())
equipment_get_item(item_name)					name and parameter changed (was inventory_item_get(item_id))
equipment_set_item(item_name, variant)				name and parameter changed (was inventory_item_set(item_id, variant))
equipment_get_item_amount(item_name)				name and parameter changed (was inventory_item_get_amount(item_id))
equipment_add_item_amount(item_name, amount)			new function
equipment_remove_item_amount(item_name, amount)			name and parameter changed (was inventory_item_remove_amount(item_id, amount))
event_hero_interaction_item(entity_name, item_name, variant)	paramater changed (was event_hero_interaction_item(entity_name, item_id, variant)

Functions removed from the API:

inventory_item_is_bottle(item_id)
equipment_get_tunic()
equipment_get_sword()
equipment_get_shield()

The existing scripts will need to be updated.
Recall that the prototypes of treasure_give, treasure_give_with_amount,
event_treasure_obtaining and event_treasure_obtained also have changed.

r1413 (2010-09-07):

Still updating classes for the new item system.

r1413 (2010-09-05):

Change the Lua API of treasure functions to fit with the new item system: treasure_give,
treasure_give_with_amount, event_treasure_obtaining and
event_treasure_obtained.
The existing scripts that use these functions will need to be updated.

r1412 (2010-09-05):

Rewriting item-related classes. The interface of Equipment and Treasure have
changed in order to make them independent of a choice of items. This work is in progress, other classes will also change.
Add a class ItemProperties (not implemented yet) that will store the
properties of an item as described in the file quest.dat.

r1411 (2010-09-05):

Rename info.dat into quest.dat and change its syntax. This file will contain all
global information of the quest, including the list of items.

r1410 (2010-09-05):

Changing savegame format to make equipment items independent of the
engine.

I am working on a new item system to make all items
(treasures, equipment items, inventory items, pickable items, etc.) dependent of the quest
instead of being hardcoded in the engine. This will require many changes in the
existing code and you won't be able to compile the svn version soon.

A first step is to make important changes to the savegame format. The item
names were removed and some of them were replaced by a notion of abilities.
The existing savegame files are not compatible anymore and must be deleted.

