diff --git a/Data/Scripts/010_Data/001_Hardcoded data/004_BodyShape.rb b/Data/Scripts/010_Data/001_Hardcoded data/004_BodyShape.rb index ff3b4465f..2d18e7b50 100644 --- a/Data/Scripts/010_Data/001_Hardcoded data/004_BodyShape.rb +++ b/Data/Scripts/010_Data/001_Hardcoded data/004_BodyShape.rb @@ -1,26 +1,25 @@ -# NOTE: The id_number is only used to determine the order that body shapes are -# listed in the Pokédex search screen. Number 0 (:None) is ignored; they -# start with shape 1. +# NOTE: The order these shapes are registered are the order they are listed in +# the Pokédex search screen. # "Graphics/Pictures/Pokedex/icon_shapes.png" contains icons for these # shapes. module GameData class BodyShape attr_reader :id - attr_reader :id_number attr_reader :real_name + attr_reader :icon_position # Where this shape's icon is within icon_shapes.png DATA = {} - extend ClassMethods + extend ClassMethodsSymbols include InstanceMethods def self.load; end def self.save; end def initialize(hash) - @id = hash[:id] - @id_number = hash[:id_number] || -1 - @real_name = hash[:name] || "Unnamed" + @id = hash[:id] + @real_name = hash[:name] || "Unnamed" + @icon_position = hash[:icon_position] || -1 # -1 means "no icon" end # @return [String] the translated name of this body shape @@ -33,85 +32,85 @@ end #=============================================================================== GameData::BodyShape.register({ - :id => :Head, - :id_number => 1, - :name => _INTL("Head") + :id => :Head, + :name => _INTL("Head"), + :icon_position => 0 }) GameData::BodyShape.register({ - :id => :Serpentine, - :id_number => 2, - :name => _INTL("Serpentine") + :id => :Serpentine, + :name => _INTL("Serpentine"), + :icon_position => 1 }) GameData::BodyShape.register({ - :id => :Finned, - :id_number => 3, - :name => _INTL("Finned") + :id => :Finned, + :name => _INTL("Finned"), + :icon_position => 2 }) GameData::BodyShape.register({ - :id => :HeadArms, - :id_number => 4, - :name => _INTL("Head and arms") + :id => :HeadArms, + :name => _INTL("Head and arms"), + :icon_position => 3 }) GameData::BodyShape.register({ - :id => :HeadBase, - :id_number => 5, - :name => _INTL("Head and base") + :id => :HeadBase, + :name => _INTL("Head and base"), + :icon_position => 4 }) GameData::BodyShape.register({ - :id => :BipedalTail, - :id_number => 6, - :name => _INTL("Bipedal with tail") + :id => :BipedalTail, + :name => _INTL("Bipedal with tail"), + :icon_position => 5 }) GameData::BodyShape.register({ - :id => :HeadLegs, - :id_number => 7, - :name => _INTL("Head and legs") + :id => :HeadLegs, + :name => _INTL("Head and legs"), + :icon_position => 6 }) GameData::BodyShape.register({ - :id => :Quadruped, - :id_number => 8, - :name => _INTL("Quadruped") + :id => :Quadruped, + :name => _INTL("Quadruped"), + :icon_position => 7 }) GameData::BodyShape.register({ - :id => :Winged, - :id_number => 9, - :name => _INTL("Winged") + :id => :Winged, + :name => _INTL("Winged"), + :icon_position => 8 }) GameData::BodyShape.register({ - :id => :Multiped, - :id_number => 10, - :name => _INTL("Multiped") + :id => :Multiped, + :name => _INTL("Multiped"), + :icon_position => 9 }) GameData::BodyShape.register({ - :id => :MultiBody, - :id_number => 11, - :name => _INTL("Multi Body") + :id => :MultiBody, + :name => _INTL("Multi Body"), + :icon_position => 10 }) GameData::BodyShape.register({ - :id => :Bipedal, - :id_number => 12, - :name => _INTL("Bipedal") + :id => :Bipedal, + :name => _INTL("Bipedal"), + :icon_position => 11 }) GameData::BodyShape.register({ - :id => :MultiWinged, - :id_number => 13, - :name => _INTL("Multi Winged") + :id => :MultiWinged, + :name => _INTL("Multi Winged"), + :icon_position => 12 }) GameData::BodyShape.register({ - :id => :Insectoid, - :id_number => 14, - :name => _INTL("Insectoid") + :id => :Insectoid, + :name => _INTL("Insectoid"), + :icon_position => 13 }) diff --git a/Data/Scripts/010_Data/001_Hardcoded data/005_BodyColor.rb b/Data/Scripts/010_Data/001_Hardcoded data/005_BodyColor.rb index 542c723be..f0dcbd48e 100644 --- a/Data/Scripts/010_Data/001_Hardcoded data/005_BodyColor.rb +++ b/Data/Scripts/010_Data/001_Hardcoded data/005_BodyColor.rb @@ -1,14 +1,13 @@ -# NOTE: The id_number is only used to determine the order that body colors are -# listed in the Pokédex search screen. +# NOTE: The order these colors are registered are the order they are listed in +# the Pokédex search screen. module GameData class BodyColor attr_reader :id - attr_reader :id_number attr_reader :real_name DATA = {} - extend ClassMethods + extend ClassMethodsSymbols include InstanceMethods def self.load; end @@ -16,8 +15,7 @@ module GameData def initialize(hash) @id = hash[:id] - @id_number = hash[:id_number] || -1 - @real_name = hash[:name] || "Unnamed" + @real_name = hash[:name] || "Unnamed" end # @return [String] the translated name of this body color @@ -30,61 +28,51 @@ end #=============================================================================== GameData::BodyColor.register({ - :id => :Red, - :id_number => 0, - :name => _INTL("Red") + :id => :Red, + :name => _INTL("Red") }) GameData::BodyColor.register({ - :id => :Blue, - :id_number => 1, - :name => _INTL("Blue") + :id => :Blue, + :name => _INTL("Blue") }) GameData::BodyColor.register({ - :id => :Yellow, - :id_number => 2, - :name => _INTL("Yellow") + :id => :Yellow, + :name => _INTL("Yellow") }) GameData::BodyColor.register({ - :id => :Green, - :id_number => 3, - :name => _INTL("Green") + :id => :Green, + :name => _INTL("Green") }) GameData::BodyColor.register({ - :id => :Black, - :id_number => 4, - :name => _INTL("Black") + :id => :Black, + :name => _INTL("Black") }) GameData::BodyColor.register({ - :id => :Brown, - :id_number => 5, - :name => _INTL("Brown") + :id => :Brown, + :name => _INTL("Brown") }) GameData::BodyColor.register({ - :id => :Purple, - :id_number => 6, - :name => _INTL("Purple") + :id => :Purple, + :name => _INTL("Purple") }) GameData::BodyColor.register({ - :id => :Gray, - :id_number => 7, - :name => _INTL("Gray") + :id => :Gray, + :name => _INTL("Gray") }) GameData::BodyColor.register({ - :id => :White, - :id_number => 8, - :name => _INTL("White") + :id => :White, + :name => _INTL("White") }) GameData::BodyColor.register({ - :id => :Pink, - :id_number => 9, - :name => _INTL("Pink") + :id => :Pink, + :name => _INTL("Pink") }) diff --git a/Data/Scripts/010_Data/001_Hardcoded data/010_Status.rb b/Data/Scripts/010_Data/001_Hardcoded data/010_Status.rb index f596375f0..01da220a7 100644 --- a/Data/Scripts/010_Data/001_Hardcoded data/010_Status.rb +++ b/Data/Scripts/010_Data/001_Hardcoded data/010_Status.rb @@ -21,7 +21,7 @@ module GameData def initialize(hash) @id = hash[:id] - @real_name = hash[:name] || "Unnamed" + @real_name = hash[:name] || "Unnamed" @animation = hash[:animation] @icon_position = hash[:icon_position] || -1 # -1 means "no icon" end diff --git a/Data/Scripts/010_Data/001_Hardcoded data/017_Target.rb b/Data/Scripts/010_Data/001_Hardcoded data/017_Target.rb index 1eea4e43f..78430bba0 100644 --- a/Data/Scripts/010_Data/001_Hardcoded data/017_Target.rb +++ b/Data/Scripts/010_Data/001_Hardcoded data/017_Target.rb @@ -8,7 +8,6 @@ module GameData class Target attr_reader :id - attr_reader :id_number attr_reader :real_name attr_reader :num_targets # 0, 1 or 2 (meaning 2+) attr_reader :targets_foe # Is able to target one or more foes @@ -18,7 +17,7 @@ module GameData DATA = {} - extend ClassMethods + extend ClassMethodsSymbols include InstanceMethods def self.load; end @@ -54,20 +53,17 @@ end # Bide, Counter, Metal Burst, Mirror Coat (calculate a target) GameData::Target.register({ :id => :None, - :id_number => 1, :name => _INTL("None") }) GameData::Target.register({ :id => :User, - :id_number => 10, :name => _INTL("User") }) # Aromatic Mist, Helping Hand, Hold Hands GameData::Target.register({ :id => :NearAlly, - :id_number => 100, :name => _INTL("Near Ally"), :num_targets => 1 }) @@ -75,7 +71,6 @@ GameData::Target.register({ # Acupressure GameData::Target.register({ :id => :UserOrNearAlly, - :id_number => 200, :name => _INTL("User or Near Ally"), :num_targets => 1 }) @@ -83,7 +78,6 @@ GameData::Target.register({ # Aromatherapy, Gear Up, Heal Bell, Life Dew, Magnetic Flux, Howl (in Gen 8+) GameData::Target.register({ :id => :UserAndAllies, - :id_number => 5, :name => _INTL("User and Allies"), :num_targets => 2, :long_range => true @@ -92,7 +86,6 @@ GameData::Target.register({ # Me First GameData::Target.register({ :id => :NearFoe, - :id_number => 400, :name => _INTL("Near Foe"), :num_targets => 1, :targets_foe => true @@ -101,7 +94,6 @@ GameData::Target.register({ # Petal Dance, Outrage, Struggle, Thrash, Uproar GameData::Target.register({ :id => :RandomNearFoe, - :id_number => 2, :name => _INTL("Random Near Foe"), :num_targets => 1, :targets_foe => true @@ -109,7 +101,6 @@ GameData::Target.register({ GameData::Target.register({ :id => :AllNearFoes, - :id_number => 4, :name => _INTL("All Near Foes"), :num_targets => 2, :targets_foe => true @@ -118,7 +109,6 @@ GameData::Target.register({ # For throwing a Poké Ball GameData::Target.register({ :id => :Foe, - :id_number => 9, :name => _INTL("Foe"), :num_targets => 1, :targets_foe => true, @@ -128,7 +118,6 @@ GameData::Target.register({ # Unused GameData::Target.register({ :id => :AllFoes, - :id_number => 6, :name => _INTL("All Foes"), :num_targets => 2, :targets_foe => true, @@ -137,7 +126,6 @@ GameData::Target.register({ GameData::Target.register({ :id => :NearOther, - :id_number => 0, :name => _INTL("Near Other"), :num_targets => 1, :targets_foe => true @@ -145,7 +133,6 @@ GameData::Target.register({ GameData::Target.register({ :id => :AllNearOthers, - :id_number => 8, :name => _INTL("All Near Others"), :num_targets => 2, :targets_foe => true @@ -154,7 +141,6 @@ GameData::Target.register({ # Most Flying-type moves, pulse moves (hits non-near targets) GameData::Target.register({ :id => :Other, - :id_number => 3, :name => _INTL("Other"), :num_targets => 1, :targets_foe => true, @@ -164,7 +150,6 @@ GameData::Target.register({ # Flower Shield, Perish Song, Rototiller, Teatime GameData::Target.register({ :id => :AllBattlers, - :id_number => 7, :name => _INTL("All Battlers"), :num_targets => 2, :targets_foe => true, @@ -174,21 +159,18 @@ GameData::Target.register({ GameData::Target.register({ :id => :UserSide, - :id_number => 40, :name => _INTL("User Side") }) # Entry hazards GameData::Target.register({ :id => :FoeSide, - :id_number => 80, :name => _INTL("Foe Side"), :affects_foe_side => true }) GameData::Target.register({ :id => :BothSides, - :id_number => 20, :name => _INTL("Both Sides"), :affects_foe_side => true }) diff --git a/Data/Scripts/010_Data/002_PBS data/012_TrainerType.rb b/Data/Scripts/010_Data/002_PBS data/012_TrainerType.rb index 12f037f72..f3b35abf0 100644 --- a/Data/Scripts/010_Data/002_PBS data/012_TrainerType.rb +++ b/Data/Scripts/010_Data/002_PBS data/012_TrainerType.rb @@ -24,12 +24,8 @@ module GameData if optional_suffix && !optional_suffix.empty? ret = path + tr_type_data.id.to_s + optional_suffix + suffix return ret if pbResolveBitmap(ret) - ret = path + sprintf("%03d", tr_type_data.id_number) + optional_suffix + suffix - return ret if pbResolveBitmap(ret) end ret = path + tr_type_data.id.to_s + suffix - return ret if pbResolveBitmap(ret) - ret = path + sprintf("%03d", tr_type_data.id_number) + suffix return (pbResolveBitmap(ret)) ? ret : nil end diff --git a/Data/Scripts/013_Items/008_PokemonBag.rb b/Data/Scripts/013_Items/008_PokemonBag.rb index ed7e9a6f9..ec42479fc 100644 --- a/Data/Scripts/013_Items/008_PokemonBag.rb +++ b/Data/Scripts/013_Items/008_PokemonBag.rb @@ -310,7 +310,7 @@ module ItemStorageHelper items[i] = [item, [qty, maxPerSlot].min] qty -= items[i][1] if itemPocket > 0 && sorting && Settings::BAG_POCKET_AUTO_SORT[itemPocket] - items.sort! { |a, b| GameData::Item.get(a[0]).id_number <=> GameData::Item.get(b[0]).id_number } + items.sort! { |a, b| GameData::Item.keys.index(a[0]) <=> GameData::Item.keys.index(b[0]) } end return true if qty == 0 elsif itemslot[0] == item && itemslot[1] < maxPerSlot diff --git a/Data/Scripts/016_UI/003_UI_Pokedex_Main.rb b/Data/Scripts/016_UI/003_UI_Pokedex_Main.rb index f92579f11..70c5a3071 100644 --- a/Data/Scripts/016_UI/003_UI_Pokedex_Main.rb +++ b/Data/Scripts/016_UI/003_UI_Pokedex_Main.rb @@ -502,8 +502,8 @@ class PokemonPokedex_Scene overlay.blt(344,266,@hwbitmap.bitmap,Rect.new(32,(hwoffset) ? 44 : 0,32,44)) # Draw shape icon if params[9] >= 0 - shape_number = @shapeCommands[params[9]].id_number - shaperect = Rect.new(0, (shape_number - 1) * 60, 60, 60) + shape_number = @shapeCommands[params[9]].icon_position + shaperect = Rect.new(0, shape_number * 60, 60, 60) overlay.blt(424, 218, @shapebitmap.bitmap, shaperect) end # Draw all text @@ -609,7 +609,7 @@ class PokemonPokedex_Scene end when 6 # Shape icon if sel[0] >= 0 - shaperect = Rect.new(0, (@shapeCommands[sel[0]].id_number - 1) * 60, 60, 60) + shaperect = Rect.new(0, @shapeCommands[sel[0]].icon_position * 60, 60, 60) overlay.blt(332, 50, @shapebitmap.bitmap, shaperect) end else @@ -681,7 +681,7 @@ class PokemonPokedex_Scene when 6 # Shape shaperect = Rect.new(0, 0, 60, 60) for i in 0...cmds.length - shaperect.y = (@shapeCommands[i].id_number - 1) * 60 + shaperect.y = @shapeCommands[i].icon_position * 60 overlay.blt(xstart + 4 + (i % cols) * xgap, ystart + 4 + (i / cols).floor * ygap, @shapebitmap.bitmap, shaperect) end end @@ -1021,9 +1021,9 @@ class PokemonPokedex_Scene 180,200,250,300,350,400,500,600,700,800, 900,1000,1250,1500,2000,3000,5000] @colorCommands = [] - GameData::BodyColor.each { |c| @colorCommands.push(c) } + GameData::BodyColor.each { |c| @colorCommands.push(c) if c.id != :None } @shapeCommands = [] - GameData::BodyShape.each { |c| @shapeCommands.push(c) if c.id != :None } + GameData::BodyShape.each { |s| @shapeCommands.push(s) if s.id != :None } @sprites["searchbg"].visible = true @sprites["overlay"].visible = true @sprites["searchcursor"].visible = true diff --git a/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb b/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb index 5b38a9b8d..ffc5ade04 100644 --- a/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb +++ b/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb @@ -278,7 +278,7 @@ module Compiler :accuracy => line[7], :total_pp => line[8], :effect_chance => line[9], - :target => GameData::Target.get(line[10]).id, + :target => line[10], :priority => line[11], :flags => line[12], :description => line[13]