Alchemy
Loading...
Searching...
No Matches

item.h File Reference

Items: their definitions, types, flags and effects. More...

Go to the source code of this file.

Data Structures

struct  ItemEffect
 One effect of an item while equipped: its kind (enum ItemEffectKind) and amount. More...
struct  ItemDefinition
 An item's definition: its price, type, who can equip it, its bonuses and unleash, its effects and the action it is used for. More...

Macros

#define ITEM_USE_CONSUMED   1
 What using an item costs (struct ItemDefinition's useType).
#define ITEM_USE_MAY_BREAK   2
 breaks one time in eight
#define ITEM_USE_TEACHES   3
 Not used up: equipped, it teaches its actionId as Psynergy.
#define ITEM_USE_EMPTIES   4
 Hermes' Water leaves an Empty Bottle.

Enumerations

enum  InventoryEncoding {
  ITEM_ID_MASK = 0x1ff , INVENTORY_EQUIPPED = 0x200 , INVENTORY_BROKEN = 0x400 , INVENTORY_ENTRY_MASK = 0x7ff ,
  INVENTORY_QUANTITY_SHIFT = 11 , INVENTORY_QUANTITY_STEP = 0x800 , INVENTORY_QUANTITY_MASK = 0xf800 , INVENTORY_SLOTS = 15
}
 An inventory entry's parts, and a unit's slot count. More...
enum  ItemFlags {
  ITEM_CURSED = 1 , ITEM_CANNOT_UNEQUIP = 2 , ITEM_RARE = 4 , ITEM_INDISPENSABLE = 8 ,
  ITEM_STACKABLE = 0x10
}
enum  ItemType {
  ITEM_TYPE_NONE , ITEM_TYPE_WEAPON = 1 , ITEM_TYPE_ARMOR = 2 , ITEM_TYPE_SHIELD = 3 ,
  ITEM_TYPE_HELM = 4 , ITEM_TYPE_BOOTS = 5 , ITEM_TYPE_PSYNERGY = 6 , ITEM_TYPE_RING = 8 ,
  ITEM_TYPE_SHIRT = 9
}
 An item's type (struct ItemDefinition's type, items.tsv's type column). More...
enum  ItemEffectKind {
  ITEM_EFFECT_NONE , ITEM_EFFECT_ADD_HP , ITEM_EFFECT_ADD_HP_REGEN , ITEM_EFFECT_ADD_PP ,
  ITEM_EFFECT_ADD_PP_REGEN , ITEM_EFFECT_ADD_AGILITY , ITEM_EFFECT_ADD_LUCK , ITEM_EFFECT_SCALE_HP ,
  ITEM_EFFECT_SCALE_HP_REGEN , ITEM_EFFECT_SCALE_PP , ITEM_EFFECT_SCALE_PP_REGEN , ITEM_EFFECT_SCALE_ATTACK ,
  ITEM_EFFECT_SCALE_DEFENSE , ITEM_EFFECT_SCALE_AGILITY , ITEM_EFFECT_SCALE_LUCK , ITEM_EFFECT_ADD_VENUS_POWER ,
  ITEM_EFFECT_ADD_MERCURY_POWER , ITEM_EFFECT_ADD_MARS_POWER , ITEM_EFFECT_ADD_JUPITER_POWER , ITEM_EFFECT_ADD_VENUS_RESIST ,
  ITEM_EFFECT_ADD_MERCURY_RESIST , ITEM_EFFECT_ADD_MARS_RESIST , ITEM_EFFECT_ADD_JUPITER_RESIST , ITEM_EFFECT_ADD_UNLEASH_CHANCE ,
  ITEM_EFFECT_24 , ITEM_EFFECT_25 , ITEM_EFFECT_ADD_TURNS , ITEM_EFFECT_LURE
}

Functions

 STATIC_ASSERT (sizeof(struct ItemEffect)==0x04)
 STATIC_ASSERT (offsetof(struct ItemEffect, kind)==0x00)
 STATIC_ASSERT (offsetof(struct ItemEffect, amount)==0x01)
 STATIC_ASSERT (sizeof(struct ItemDefinition)==0x2c)
 STATIC_ASSERT (offsetof(struct ItemDefinition, price)==0x00)
 STATIC_ASSERT (offsetof(struct ItemDefinition, type)==0x02)
 STATIC_ASSERT (offsetof(struct ItemDefinition, flags)==0x03)
 STATIC_ASSERT (offsetof(struct ItemDefinition, equipMask)==0x04)
 STATIC_ASSERT (offsetof(struct ItemDefinition, icon)==0x06)
 STATIC_ASSERT (offsetof(struct ItemDefinition, primaryBonus)==0x08)
 STATIC_ASSERT (offsetof(struct ItemDefinition, secondaryBonus)==0x0a)
 STATIC_ASSERT (offsetof(struct ItemDefinition, unleashChance)==0x0b)
 STATIC_ASSERT (offsetof(struct ItemDefinition, useType)==0x0c)
 STATIC_ASSERT (offsetof(struct ItemDefinition, unleashAction)==0x0e)
 STATIC_ASSERT (offsetof(struct ItemDefinition, element)==0x14)
 STATIC_ASSERT (offsetof(struct ItemDefinition, effects)==0x18)
 STATIC_ASSERT (offsetof(struct ItemDefinition, actionId)==0x28)
struct ItemDefinition * Item_Get (s32 item)

Detailed Description

Items: their definitions, types, flags and effects.

Definition in file item.h.

Macro Definition Documentation

◆ ITEM_USE_CONSUMED

#define ITEM_USE_CONSUMED   1

What using an item costs (struct ItemDefinition's useType).

one is used up

Definition at line 35 of file item.h.

◆ ITEM_USE_MAY_BREAK

#define ITEM_USE_MAY_BREAK   2

breaks one time in eight

Definition at line 36 of file item.h.

◆ ITEM_USE_TEACHES

#define ITEM_USE_TEACHES   3

Not used up: equipped, it teaches its actionId as Psynergy.

Definition at line 38 of file item.h.

Referenced by Unit_RefreshPsynergy().

◆ ITEM_USE_EMPTIES

#define ITEM_USE_EMPTIES   4

Hermes' Water leaves an Empty Bottle.

Definition at line 39 of file item.h.

Enumeration Type Documentation

◆ InventoryEncoding

An inventory entry's parts, and a unit's slot count.

bits: 15..11 quantity | 10 broken | 9 equipped | 8..0 item id

Enumerator
ITEM_ID_MASK 
INVENTORY_EQUIPPED 
INVENTORY_BROKEN 
INVENTORY_ENTRY_MASK 
INVENTORY_QUANTITY_SHIFT 
INVENTORY_QUANTITY_STEP 
INVENTORY_QUANTITY_MASK 
INVENTORY_SLOTS 

Definition at line 15 of file item.h.

◆ ItemFlags

enum ItemFlags
Enumerator
ITEM_CURSED 
ITEM_CANNOT_UNEQUIP 
ITEM_RARE 

selects the shop's rare item offers

ITEM_INDISPENSABLE 
ITEM_STACKABLE 

Definition at line 26 of file item.h.

◆ ItemType

enum ItemType

An item's type (struct ItemDefinition's type, items.tsv's type column).

A unit equips one item of each type, except Psynergy items.

Enumerator
ITEM_TYPE_NONE 

not equipment: Herb, Game Ticket, the keys, unused rows

ITEM_TYPE_WEAPON 

swords, axes, maces, rods and staffs

ITEM_TYPE_ARMOR 

armor, clothes and robes

ITEM_TYPE_SHIELD 

shields, gloves and armlets

ITEM_TYPE_HELM 

helms, caps, crowns and circlets

ITEM_TYPE_BOOTS 

Hyper Boots to Turtle Boots.

ITEM_TYPE_PSYNERGY 

The items that teach Psynergy while held: Orb of Force to Catch Beads.

ITEM_TYPE_RING 

Adept Ring to Cleric's Ring.

ITEM_TYPE_SHIRT 

Mythril Shirt, Silk Shirt, Running Shirt.

Definition at line 43 of file item.h.

◆ ItemEffectKind

Enumerator
ITEM_EFFECT_NONE 
ITEM_EFFECT_ADD_HP 
ITEM_EFFECT_ADD_HP_REGEN 
ITEM_EFFECT_ADD_PP 
ITEM_EFFECT_ADD_PP_REGEN 
ITEM_EFFECT_ADD_AGILITY 
ITEM_EFFECT_ADD_LUCK 
ITEM_EFFECT_SCALE_HP 
ITEM_EFFECT_SCALE_HP_REGEN 
ITEM_EFFECT_SCALE_PP 
ITEM_EFFECT_SCALE_PP_REGEN 
ITEM_EFFECT_SCALE_ATTACK 
ITEM_EFFECT_SCALE_DEFENSE 
ITEM_EFFECT_SCALE_AGILITY 
ITEM_EFFECT_SCALE_LUCK 
ITEM_EFFECT_ADD_VENUS_POWER 

Element power and resistance, in the element order Venus, Mercury, Mars, Jupiter.

ITEM_EFFECT_ADD_MERCURY_POWER 
ITEM_EFFECT_ADD_MARS_POWER 
ITEM_EFFECT_ADD_JUPITER_POWER 
ITEM_EFFECT_ADD_VENUS_RESIST 
ITEM_EFFECT_ADD_MERCURY_RESIST 
ITEM_EFFECT_ADD_MARS_RESIST 
ITEM_EFFECT_ADD_JUPITER_RESIST 
ITEM_EFFECT_ADD_UNLEASH_CHANCE 

percent added to the weapon's unleash

ITEM_EFFECT_24 

summed by UnitCalc; TBS never reads it

ITEM_EFFECT_25 

sets restraint bit 3, which lifts bit 0

ITEM_EFFECT_ADD_TURNS 

more actions each round

ITEM_EFFECT_LURE 

sets FLAG_LURE_CAP while worn: encounters come faster

Definition at line 57 of file item.h.

Function Documentation

◆ STATIC_ASSERT() [1/17]

STATIC_ASSERT ( sizeof(struct ItemEffect) = =0x04)

◆ STATIC_ASSERT() [2/17]

STATIC_ASSERT ( offsetof(struct ItemEffect, kind) = =0x00)

◆ STATIC_ASSERT() [3/17]

STATIC_ASSERT ( offsetof(struct ItemEffect, amount) = =0x01)

◆ STATIC_ASSERT() [4/17]

STATIC_ASSERT ( sizeof(struct ItemDefinition) = =0x2c)

◆ STATIC_ASSERT() [5/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, price) = =0x00)

◆ STATIC_ASSERT() [6/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, type) = =0x02)

◆ STATIC_ASSERT() [7/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, flags) = =0x03)

◆ STATIC_ASSERT() [8/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, equipMask) = =0x04)

◆ STATIC_ASSERT() [9/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, icon) = =0x06)

◆ STATIC_ASSERT() [10/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, primaryBonus) = =0x08)

◆ STATIC_ASSERT() [11/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, secondaryBonus) = =0x0a)

◆ STATIC_ASSERT() [12/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, unleashChance) = =0x0b)

◆ STATIC_ASSERT() [13/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, useType) = =0x0c)

◆ STATIC_ASSERT() [14/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, unleashAction) = =0x0e)

◆ STATIC_ASSERT() [15/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, element) = =0x14)

◆ STATIC_ASSERT() [16/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, effects) = =0x18)

◆ STATIC_ASSERT() [17/17]

STATIC_ASSERT ( offsetof(struct ItemDefinition, actionId) = =0x28)

◆ Item_Get()