make generated mag colors random
This commit is contained in:
+11
-1
@@ -701,10 +701,20 @@ uint8_t ItemCreator::generate_tech_disk_level(uint32_t tech_num, uint32_t area_n
|
||||
return range.min;
|
||||
}
|
||||
|
||||
void ItemCreator::generate_common_mag_variances(ItemData& item) const {
|
||||
void ItemCreator::generate_common_mag_variances(ItemData& item) {
|
||||
if (item.data1[0] == 0x02) {
|
||||
item.data1[1] = 0x00;
|
||||
item.assign_mag_stats(ItemMagStats());
|
||||
|
||||
// The original code (on PSO GC) assigns the mag color as 0x0E. We assign
|
||||
// a random color instead.
|
||||
if (this->version == Version::DC_NTE) {
|
||||
item.data2[3] = 0x00;
|
||||
} else if (is_v1_or_v2(this->version)) {
|
||||
item.data2[3] = this->random_crypt.next() % 0x0E;
|
||||
} else {
|
||||
item.data2[3] = this->random_crypt.next() % 0x12;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -121,7 +121,7 @@ private:
|
||||
void generate_common_armor_or_shield_type_and_variances(char area_norm, ItemData& item);
|
||||
void generate_common_tool_variances(uint32_t area_norm, ItemData& item);
|
||||
uint8_t generate_tech_disk_level(uint32_t tech_num, uint32_t area_norm);
|
||||
void generate_common_mag_variances(ItemData& item) const;
|
||||
void generate_common_mag_variances(ItemData& item);
|
||||
void generate_common_weapon_variances(uint8_t area_norm, ItemData& item);
|
||||
void generate_common_weapon_grind(ItemData& item, uint8_t offset_within_subtype_range);
|
||||
void generate_common_weapon_bonuses(ItemData& item, uint8_t area_norm);
|
||||
|
||||
+9
-20
@@ -29,26 +29,15 @@ enum class EquipSlot {
|
||||
};
|
||||
|
||||
struct ItemMagStats {
|
||||
uint16_t iq;
|
||||
uint16_t synchro;
|
||||
uint16_t def;
|
||||
uint16_t pow;
|
||||
uint16_t dex;
|
||||
uint16_t mind;
|
||||
uint8_t flags;
|
||||
uint8_t photon_blasts;
|
||||
uint8_t color;
|
||||
|
||||
ItemMagStats()
|
||||
: iq(0),
|
||||
synchro(40),
|
||||
def(500),
|
||||
pow(0),
|
||||
dex(0),
|
||||
mind(0),
|
||||
flags(0),
|
||||
photon_blasts(0),
|
||||
color(14) {}
|
||||
uint16_t iq = 0;
|
||||
uint16_t synchro = 40;
|
||||
uint16_t def = 500;
|
||||
uint16_t pow = 0;
|
||||
uint16_t dex = 0;
|
||||
uint16_t mind = 0;
|
||||
uint8_t flags = 0;
|
||||
uint8_t photon_blasts = 0;
|
||||
uint8_t color = 14;
|
||||
|
||||
inline uint16_t def_level() const {
|
||||
return this->def / 100;
|
||||
|
||||
Reference in New Issue
Block a user