Moved methods that return item/trainer graphics, refactored evolution helper methods, rearranged some methods

This commit is contained in:
Maruno17
2020-12-13 19:40:17 +00:00
parent d4b5aa0ce7
commit 1ffeddc41c
35 changed files with 582 additions and 548 deletions

View File

@@ -947,7 +947,7 @@ def pbPokemonEditor
(regionallist[numb]==0) ? regionallist.pop : break
numb -= 1
end
evolutions = pbGetEvolvedFormData(selection)
evolutions = EvolutionHelper.evolutions(selection)
data = []
data.push(speciesname) # 0
data.push(cname) # 1
@@ -1068,7 +1068,7 @@ def pbPokemonEditor
evos[sp].push([data[41][i][2],data[41][i][0],data[41][i][1],false])
end
else
t = pbGetEvolvedFormData(sp)
t = EvolutionHelper.evolutions(sp)
for i in 0...t.length
evos[sp].push([t[i][2],t[i][0],t[i][1],false])
end
@@ -1366,7 +1366,7 @@ end
def pbAppendEvoToFamilyArray(species,array,seenarray)
return if seenarray[species]
array.push(species); seenarray[species] = true
evos = pbGetEvolvedFormData(species)
evos = EvolutionHelper.evolutions(species)
if evos.length>0
evos.sort! { |a,b| a[2]<=>b[2] }
subarray = []
@@ -1381,7 +1381,7 @@ def pbGetEvoFamilies
seen = []
ret = []
for sp in 1..PBSpecies.maxValue
species = pbGetBabySpecies(sp)
species = EvolutionHelper.baby_species(sp)
next if seen[species]
subret = []
pbAppendEvoToFamilyArray(species,subret,seen)

View File

@@ -774,7 +774,7 @@ def pbSavePokemonData
end
pokedata.write("Evolutions = ")
count = 0
for form in pbGetEvolvedFormData(i)
for form in EvolutionHelper.evolutions(i)
method = form[0]
parameter = form[1]
new_species = form[2]
@@ -1189,7 +1189,7 @@ def pbSavePokemonFormsData
end
end
origevos = []
for form in pbGetEvolvedFormData(species)
for form in EvolutionHelper.evolutions(species)
method = form[0]
parameter = form[1]
new_species = form[2]
@@ -1200,7 +1200,7 @@ def pbSavePokemonFormsData
origevos.push([method,parameter,new_species])
end
evos = []
for form in pbGetEvolvedFormData(i)
for form in EvolutionHelper.evolutions(i)
method = form[0]
parameter = form[1]
new_species = form[2]

View File

@@ -580,6 +580,43 @@ end
def chooseMapPoint(map,rgnmap=false)
viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
viewport.z=99999
title=Window_UnformattedTextPokemon.new(_INTL("Click a point on the map."))
title.x=0
title.y=Graphics.height-64
title.width=Graphics.width
title.height=64
title.viewport=viewport
title.z=2
if rgnmap
sprite=RegionMapSprite.new(map,viewport)
else
sprite=MapSprite.new(map,viewport)
end
sprite.z=2
ret=nil
loop do
Graphics.update
Input.update
xy=sprite.getXY
if xy
ret=xy
break
end
if Input.trigger?(Input::B)
ret=nil
break
end
end
sprite.dispose
title.dispose
return ret
end
module MapCoordsProperty
def self.set(settingname,oldsetting)
chosenmap = pbListScreen(settingname,MapLister.new((oldsetting) ? oldsetting[0] : 0))
@@ -624,7 +661,7 @@ end
module RegionMapCoordsProperty
def self.set(_settingname,oldsetting)
regions = getMapNameList
regions = self.getMapNameList
selregion = -1
if regions.length==0
pbMessage(_INTL("No region maps are defined."))
@@ -650,6 +687,18 @@ module RegionMapCoordsProperty
def self.format(value)
return value.inspect
end
def self.getMapNameList
mapdata = pbLoadTownMapData
ret=[]
for i in 0...mapdata.length
next if !mapdata[i]
ret.push(
[i,pbGetMessage(MessageTypes::RegionNames,i)]
)
end
return ret
end
end

View File

@@ -121,10 +121,8 @@ def pbListScreenBlock(title,lister)
Input.update
end
#===============================================================================
# General listers
#
#===============================================================================
class GraphicsLister
def initialize(folder,selection)
@@ -196,8 +194,9 @@ class GraphicsLister
end
end
#===============================================================================
#
#===============================================================================
class MusicFileLister
def initialize(bgm,setting)
@oldbgm = getPlayingBGM
@@ -263,8 +262,9 @@ class MusicFileLister
end
end
#===============================================================================
#
#===============================================================================
class MapLister
def initialize(selmap,addGlobal=false)
@sprite = SpriteWrapper.new
@@ -322,8 +322,9 @@ class MapLister
end
end
#===============================================================================
#
#===============================================================================
class SpeciesLister
def initialize(selection,includeNew=false)
@selection = selection
@@ -373,8 +374,9 @@ class SpeciesLister
def refresh(index); end
end
#===============================================================================
#
#===============================================================================
class ItemLister
def initialize(selection = 0, includeNew = false)
@sprite = ItemIconSprite.new(Graphics.width * 3 / 4, Graphics.height / 2, nil)
@@ -432,8 +434,9 @@ class ItemLister
end
end
#===============================================================================
#
#===============================================================================
class TrainerTypeLister
def initialize(selection = 0, includeNew = false)
@sprite = IconSprite.new(Graphics.width * 3 / 4, (Graphics.height - 64) / 2 + 64)
@@ -490,7 +493,7 @@ class TrainerTypeLister
@sprite.bitmap.dispose if @sprite.bitmap
return if index < 0
begin
@sprite.setBitmap(pbTrainerSpriteFile(@ids[index]), 0)
@sprite.setBitmap(GameData::TrainerType.front_sprite_filename(@ids[index]), 0)
rescue
@sprite.setBitmap(nil)
end
@@ -501,8 +504,9 @@ class TrainerTypeLister
end
end
#===============================================================================
#
#===============================================================================
class TrainerBattleLister
def initialize(selection,includeNew)
@sprite = IconSprite.new(Graphics.width * 3 / 4, (Graphics.height / 2) + 32)
@@ -577,7 +581,7 @@ class TrainerBattleLister
@sprite.bitmap.dispose if @sprite.bitmap
return if index<0
begin
@sprite.setBitmap(pbTrainerSpriteFile(@ids[index]),0)
@sprite.setBitmap(GameData::TrainerType.front_sprite_filename(@ids[index]),0)
rescue
@sprite.setBitmap(nil)
end

View File

@@ -8,7 +8,7 @@ def pbGetLegalMoves(species)
next if !i.move
moves.push(i.move) if tmdat[i.move] && tmdat[i.move].include?(species)
end
babyspecies = pbGetBabySpecies(species)
babyspecies = EvolutionHelper.baby_species(species)
eggMoves = pbGetSpeciesEggMoves(babyspecies)
eggMoves.each { |m| moves.push(m) }
moves |= []

View File

@@ -1,8 +1,6 @@
#===============================================================================
# Edits the terrain tags of tiles in tilesets.
#
#===============================================================================
begin
def pbTilesetWrapper
return PokemonDataWrapper.new(
"Data/Tilesets.rxdata",
@@ -14,8 +12,9 @@ def pbTilesetWrapper
)
end
#===============================================================================
# Edits the terrain tags of tiles in tilesets.
#===============================================================================
class PokemonTilesetScene
TILESET_WIDTH = 256
TILE_SIZE = 32
@@ -203,11 +202,3 @@ def pbTilesetScreen
scene.pbStartScene
}
end
rescue Exception
if $!.is_a?(SystemExit) || "#{$!.class}"=="Reset"
raise $!
end
end

View File

@@ -1,5 +1,5 @@
#===============================================================================
# Miniature game map/Town Map drawing
# Miniature game map drawing
#===============================================================================
class MapSprite
def initialize(map,viewport=nil)
@@ -34,8 +34,9 @@ class MapSprite
end
end
#===============================================================================
#
#===============================================================================
class SelectionSprite < Sprite
def initialize(viewport=nil)
@sprite=Sprite.new(viewport)
@@ -82,8 +83,9 @@ class SelectionSprite < Sprite
end
end
#===============================================================================
#
#===============================================================================
class RegionMapSprite
def initialize(map,viewport=nil)
@sprite=Sprite.new(viewport)
@@ -101,6 +103,20 @@ class RegionMapSprite
@sprite.z=value
end
def createRegionMap(map)
@mapdata = pbLoadTownMapData
@map=@mapdata[map]
bitmap=AnimatedBitmap.new("Graphics/Pictures/#{@map[1]}").deanimate
retbitmap=BitmapWrapper.new(bitmap.width/2,bitmap.height/2)
retbitmap.stretch_blt(
Rect.new(0,0,bitmap.width/2,bitmap.height/2),
bitmap,
Rect.new(0,0,bitmap.width,bitmap.height)
)
bitmap.dispose
return retbitmap
end
def getXY
return nil if !Input.triggerex?(Input::LeftMouseKey)
mouse=Mouse::getMousePos(true)
@@ -117,125 +133,6 @@ class RegionMapSprite
end
end
def createRegionMap(map)
@mapdata = pbLoadTownMapData
@map=@mapdata[map]
bitmap=AnimatedBitmap.new("Graphics/Pictures/#{@map[1]}").deanimate
retbitmap=BitmapWrapper.new(bitmap.width/2,bitmap.height/2)
retbitmap.stretch_blt(
Rect.new(0,0,bitmap.width/2,bitmap.height/2),
bitmap,
Rect.new(0,0,bitmap.width,bitmap.height)
)
bitmap.dispose
return retbitmap
end
def getMapNameList
@mapdata = pbLoadTownMapData
ret=[]
for i in 0...@mapdata.length
next if !@mapdata[i]
ret.push(
[i,pbGetMessage(MessageTypes::RegionNames,i)]
)
end
return ret
end
def createMinimap2(mapid)
map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
return BitmapWrapper.new(32,32) if !map
bitmap=BitmapWrapper.new(map.width*4,map.height*4)
black=Color.new(0,0,0)
bigmap=(map.width>40 && map.height>40)
tilesets=load_data("Data/Tilesets.rxdata")
tileset=tilesets[map.tileset_id]
return bitmap if !tileset
helper=TileDrawingHelper.fromTileset(tileset)
for y in 0...map.height
for x in 0...map.width
if bigmap
next if (x>8 && x<=map.width-8 && y>8 && y<=map.height-8)
end
for z in 0..2
id=map.data[x,y,z]
next if id==0 || !id
helper.bltSmallTile(bitmap,x*4,y*4,4,4,id)
end
end
end
bitmap.fill_rect(0,0,bitmap.width,1,black)
bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
bitmap.fill_rect(0,0,1,bitmap.height,black)
bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
return bitmap
end
def createMinimap(mapid)
map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
return BitmapWrapper.new(32,32) if !map
bitmap=BitmapWrapper.new(map.width*4,map.height*4)
black=Color.new(0,0,0)
tilesets=load_data("Data/Tilesets.rxdata")
tileset=tilesets[map.tileset_id]
return bitmap if !tileset
helper=TileDrawingHelper.fromTileset(tileset)
for y in 0...map.height
for x in 0...map.width
for z in 0..2
id=map.data[x,y,z]
id=0 if !id
helper.bltSmallTile(bitmap,x*4,y*4,4,4,id)
end
end
end
bitmap.fill_rect(0,0,bitmap.width,1,black)
bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
bitmap.fill_rect(0,0,1,bitmap.height,black)
bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
return bitmap
end
def chooseMapPoint(map,rgnmap=false)
viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
viewport.z=99999
title=Window_UnformattedTextPokemon.new(_INTL("Click a point on the map."))
title.x=0
title.y=Graphics.height-64
title.width=Graphics.width
title.height=64
title.viewport=viewport
title.z=2
if rgnmap
sprite=RegionMapSprite.new(map,viewport)
else
sprite=MapSprite.new(map,viewport)
end
sprite.z=2
ret=nil
loop do
Graphics.update
Input.update
xy=sprite.getXY
if xy
ret=xy
break
end
if Input.trigger?(Input::B)
ret=nil
break
end
end
sprite.dispose
title.dispose
return ret
end
#===============================================================================
# Visual Editor (map connections)
#===============================================================================
@@ -686,8 +583,9 @@ class MapScreenScene
end
end
#===============================================================================
#
#===============================================================================
def pbConnectionsEditor
pbCriticalCode {
mapscreen = MapScreenScene.new