Implement bazaar item identity and offline trading rework

This commit is contained in:
Vayle
2026-03-19 22:18:32 -04:00
90 changed files with 5379 additions and 2165 deletions
+99
View File
@@ -1954,4 +1954,103 @@ private:
void DoSpellInterrupt(uint16 spell_id, int32 mana_cost, int my_curmana);
void HandleDoorOpen();
public:
Mob* GetMob() { return this; }
void CloneMob(Mob& in) {
strn0cpy(name, in.name, 64);
strn0cpy(orig_name, in.orig_name, 64);
strn0cpy(lastname, in.lastname, 64);
current_hp = in.current_hp;
max_hp = in.max_hp;
base_hp = in.base_hp;
gender = in.gender;
race = in.race;
base_gender = in.base_gender;
base_race = in.race;
use_model = in.use_model;
class_ = in.class_;
bodytype = in.bodytype;
orig_bodytype = in.orig_bodytype;
deity = in.deity;
level = in.level;
orig_level = in.orig_level;
npctype_id = in.npctype_id;
size = in.size;
base_size = in.base_size;
runspeed = in.runspeed;
texture = in.texture;
helmtexture = in.helmtexture;
armtexture = in.armtexture;
bracertexture = in.bracertexture;
handtexture = in.handtexture;
legtexture = in.legtexture;
feettexture = in.feettexture;
multitexture = in.multitexture;
haircolor = in.haircolor;
beardcolor = in.beardcolor;
eyecolor1 = in.eyecolor1;
eyecolor2 = in.eyecolor2;
hairstyle = in.hairstyle;
luclinface = in.luclinface;
beard = in.beard;
drakkin_heritage = in.drakkin_heritage;
drakkin_tattoo = in.drakkin_tattoo;
drakkin_details = in.drakkin_details;
attack_speed = in.attack_speed;
attack_delay = in.attack_delay;
slow_mitigation = in.slow_mitigation;
findable = in.findable;
trackable = in.trackable;
has_shield_equipped = in.has_shield_equipped;
has_two_hand_blunt_equipped = in.has_two_hand_blunt_equipped;
has_two_hander_equipped = in.has_two_hander_equipped;
has_dual_weapons_equipped = in.has_dual_weapons_equipped;
can_facestab = in.can_facestab;
has_numhits = in.has_numhits;
has_MGB = in.has_MGB;
has_ProjectIllusion = in.has_ProjectIllusion;
SpellPowerDistanceMod = in.SpellPowerDistanceMod;
last_los_check = in.last_los_check;
aa_title = in.aa_title;
AC = in.AC;
ATK = in.ATK;
STR = in.STR;
STA = in.STA;
DEX = in.DEX;
AGI = in.AGI;
INT = in.INT;
WIS = in.WIS;
CHA = in.CHA;
MR = in.MR;
extra_haste = in.extra_haste;
bEnraged = in.bEnraged;
current_mana = in.current_mana;
max_mana = in.max_mana;
hp_regen = in.hp_regen;
hp_regen_per_second = in.hp_regen_per_second;
mana_regen = in.mana_regen;
ooc_regen = in.ooc_regen;
maxlevel = in.maxlevel;
scalerate = in.scalerate;
invisible = in.invisible;
invisible_undead = in.invisible_undead;
invisible_animals = in.invisible_animals;
sneaking = in.sneaking;
hidden = in.hidden;
improved_hidden = in.improved_hidden;
invulnerable = in.invulnerable;
qglobal = in.qglobal;
spawned = in.spawned;
rare_spawn = in.rare_spawn;
always_aggro = in.always_aggro;
heroic_strikethrough = in.heroic_strikethrough;
keeps_sold_items = in.keeps_sold_items;
for (int i = 0; i < MAX_APPEARANCE_EFFECTS; i++) {
appearance_effects_id[i] = in.appearance_effects_id[i];
appearance_effects_slot[i] = in.appearance_effects_slot[i];
}
}
};