I don't know if its possible but I want to load into an array the ids of maps the have encounters on them, sort them by their map name (so that routes and towns are together) and then display them as a selectable list.
So far i have it loading the maps into an array, and displaying them selectable on screen. I don't know / cant work out how to sort them maps by their map name
This is what i have so far
So far i have it loading the maps into an array, and displaying them selectable on screen. I don't know / cant work out how to sort them maps by their map name
This is what i have so far
Code:
BASECOLOR=Color.new(255,255,255)
SHADOWCOLOR=Color.new(0,0,0)
class Window_PokemonMapEncounters < Window_DrawableCommand
def initialize(encounters,total,x,y,width,height,viewport=nil)
@total = total
@encounters = encounters
super(x,y,width,height,viewport)
@selarrow=AnimatedBitmap.new("Graphics/Pictures/mapSel")
self.windowskin=nil
end
def getMapId(i)
item=@total[i]
end
def itemCount
return @stock.length+1
end
def item
return self.index>[email protected] ? 0 : @total[self.index]
end
def drawItem(index,count,rect)
textpos=[]
rect=drawCursor(index,rect)
ypos=rect.y
item=@total[index]
if index==count-1
textpos.push([_INTL("CANCEL"),rect.x,ypos+2,false,
SHADOWCOLOR,BASECOLOR])
else
textpos.push([pbGetMapNameFromId(item),rect.x,ypos+2,false,
BASECOLOR,SHADOWCOLOR])
end
pbDrawTextPositions(self.contents,textpos)
end
end
class PokemonMapEncountersScene
def update
pbUpdateSpriteHash(@sprites)
end
def pbStartScene
@total=0
@index=0
@sprites={}
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
addBackgroundPlane(@sprites,"bg","mapencounters-list",@viewport)
@sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
pbSetSystemFont(@sprites["overlay"].bitmap)
pbDrawText
pbFadeInAndShow(@sprites) { update }
end
def pbDrawText
overlay=@sprites["overlay"].bitmap
overlay.clear
if $game_switches[151]
encdata=load_data("Data/encounters_2.dat")
elsif $game_switches[169]
encdata=load_data("Data/encounters_ghosts.dat")
else
encdata=load_data("Data/encounters.dat")
end
encounterMapIds = encdata.keys
@sprites["mapList"]=Window_PokemonMapEncounters.new(encdata,
encounterMapIds,10,40,Graphics.width,350,@viewport)
@sprites["mapList"].viewport=@viewport
textPositions=[
[_INTL("Select a Location"),10,0,0,BASECOLOR,SHADOWCOLOR],
]
pbSetSystemFont(@sprites["overlay"].bitmap)
if !textPositions.empty?
pbDrawTextPositions(@sprites["overlay"].bitmap,textPositions)
end
end
def pbPokemonMapEncounters
loop do
Graphics.update
Input.update
self.update
if Input.trigger?(Input::B)
break
end
if Input.trigger?(Input::C)
index = @sprites["mapList"].index
mapId = @sprites["mapList"].getMapId(index)
end
end
end
def pbEndScene
pbFadeOutAndHide(@sprites) { update }
pbDisposeSpriteHash(@sprites)
@viewport.dispose
end
end
class PokemonMapEncounters
def initialize(scene)
@scene=scene
end
def pbStartScreen
@scene.pbStartScene
@scene.pbPokemonMapEncounters
@scene.pbEndScene
end
end