mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-10 06:34:59 +00:00
Added more characters to naming screen
This commit is contained in:
@@ -262,15 +262,17 @@ end
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
class PokemonEntryScene2
|
class PokemonEntryScene2
|
||||||
@@Characters = [
|
@@Characters = [
|
||||||
[("ABCDEFGHIJ ,."+"KLMNOPQRST '-"+"UVWXYZ ♂♀"+" "+"0123456789 ").scan(/./),_INTL("UPPER")],
|
[("ABCDEFGHIJ ,." + "KLMNOPQRST '-" + "UVWXYZ ♂♀" + " " + "0123456789 ").scan(/./), _INTL("UPPER")],
|
||||||
[("abcdefghij ,."+"klmnopqrst '-"+"uvwxyz ♂♀"+" "+"0123456789 ").scan(/./),_INTL("lower")],
|
[("abcdefghij ,." + "klmnopqrst '-" + "uvwxyz ♂♀" + " " + "0123456789 ").scan(/./), _INTL("lower")],
|
||||||
[(",.:;!? ♂♀ "+"\"'()<>[] "+"~@#%*&$ "+"+-=^_/\\| "+" ").scan(/./),_INTL("other")],
|
[("ÀÁÂÄÃàáâäã Ææ" + "ÈÉÊË èéêë Çç" + "ÌÍÎÏ ìíîï Ññ" + "ÒÓÔÖÕòóôöõ Ýý" + "ÙÚÛÜ ùúûü ").scan(/./), _INTL("accents")],
|
||||||
|
[(",.'\":;!?¡¿ ♂♀" + "~@#*&$µ¶§ " + "()[]{}<>«» " + "+-×÷=±%¹²³¼½¾" + "^_/\\| ").scan(/./), _INTL("other")]
|
||||||
]
|
]
|
||||||
ROWS = 13
|
ROWS = 13
|
||||||
COLUMNS = 5
|
COLUMNS = 5
|
||||||
MODE1 = -5
|
MODE1 = -6
|
||||||
MODE2 = -4
|
MODE2 = -5
|
||||||
MODE3 = -3
|
MODE3 = -4
|
||||||
|
MODE4 = -3
|
||||||
BACK = -2
|
BACK = -2
|
||||||
OK = -1
|
OK = -1
|
||||||
|
|
||||||
@@ -290,36 +292,43 @@ class PokemonEntryScene2
|
|||||||
end
|
end
|
||||||
|
|
||||||
def updateCursorPos
|
def updateCursorPos
|
||||||
value=@cursorPos
|
value = @cursorPos
|
||||||
if value==PokemonEntryScene2::MODE1 # Upper case
|
case value
|
||||||
@sprite.x=48
|
when PokemonEntryScene2::MODE1 # Upper case
|
||||||
@sprite.y=120
|
@sprite.x = 44
|
||||||
@cursortype=1
|
@sprite.y = 120
|
||||||
elsif value==PokemonEntryScene2::MODE2 # Lower case
|
@cursortype = 1
|
||||||
@sprite.x=112
|
when PokemonEntryScene2::MODE2 # Lower case
|
||||||
@sprite.y=120
|
@sprite.x = 106
|
||||||
@cursortype=1
|
@sprite.y = 120
|
||||||
elsif value==PokemonEntryScene2::MODE3 # Other symbols
|
@cursortype = 1
|
||||||
@sprite.x=176
|
when PokemonEntryScene2::MODE3 # Accents
|
||||||
@sprite.y=120
|
@sprite.x = 168
|
||||||
@cursortype=1
|
@sprite.y = 120
|
||||||
elsif value==PokemonEntryScene2::BACK # Back
|
@cursortype = 1
|
||||||
@sprite.x=312
|
when PokemonEntryScene2::MODE4 # Other symbols
|
||||||
@sprite.y=120
|
@sprite.x = 230
|
||||||
@cursortype=2
|
@sprite.y = 120
|
||||||
elsif value==PokemonEntryScene2::OK # OK
|
@cursortype = 1
|
||||||
@sprite.x=392
|
when PokemonEntryScene2::BACK # Back
|
||||||
@sprite.y=120
|
@sprite.x = 314
|
||||||
@cursortype=2
|
@sprite.y = 120
|
||||||
elsif value>=0
|
@cursortype = 2
|
||||||
@sprite.x=52+32*(value%PokemonEntryScene2::ROWS)
|
when PokemonEntryScene2::OK # OK
|
||||||
@sprite.y=180+38*(value/PokemonEntryScene2::ROWS)
|
@sprite.x = 394
|
||||||
@cursortype=0
|
@sprite.y = 120
|
||||||
|
@cursortype = 2
|
||||||
|
else
|
||||||
|
if value >= 0
|
||||||
|
@sprite.x = 52 + 32 * (value % PokemonEntryScene2::ROWS)
|
||||||
|
@sprite.y = 180 + 38 * (value / PokemonEntryScene2::ROWS)
|
||||||
|
@cursortype = 0
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def visible=(value)
|
def visible=(value)
|
||||||
@sprite.visible=value
|
@sprite.visible = value
|
||||||
end
|
end
|
||||||
|
|
||||||
def visible
|
def visible
|
||||||
@@ -327,7 +336,7 @@ class PokemonEntryScene2
|
|||||||
end
|
end
|
||||||
|
|
||||||
def color=(value)
|
def color=(value)
|
||||||
@sprite.color=value
|
@sprite.color = value
|
||||||
end
|
end
|
||||||
|
|
||||||
def color
|
def color
|
||||||
@@ -344,9 +353,9 @@ class PokemonEntryScene2
|
|||||||
@cursor3.update
|
@cursor3.update
|
||||||
updateCursorPos
|
updateCursorPos
|
||||||
case @cursortype
|
case @cursortype
|
||||||
when 0 then @sprite.bitmap=@cursor1.bitmap
|
when 0 then @sprite.bitmap = @cursor1.bitmap
|
||||||
when 1 then @sprite.bitmap=@cursor2.bitmap
|
when 1 then @sprite.bitmap = @cursor2.bitmap
|
||||||
when 2 then @sprite.bitmap=@cursor3.bitmap
|
when 2 then @sprite.bitmap = @cursor3.bitmap
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -365,178 +374,176 @@ class PokemonEntryScene2
|
|||||||
|
|
||||||
|
|
||||||
def pbStartScene(helptext,minlength,maxlength,initialText,subject=0,pokemon=nil)
|
def pbStartScene(helptext,minlength,maxlength,initialText,subject=0,pokemon=nil)
|
||||||
@sprites={}
|
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||||
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
|
@viewport.z = 99999
|
||||||
@viewport.z=99999
|
@helptext = helptext
|
||||||
@helptext=helptext
|
@helper = CharacterEntryHelper.new(initialText)
|
||||||
@helper=CharacterEntryHelper.new(initialText)
|
# Create bitmaps
|
||||||
@bitmaps=[
|
@bitmaps = []
|
||||||
AnimatedBitmap.new("Graphics/Pictures/Naming/overlay_tab_1"),
|
for i in 0...@@Characters.length
|
||||||
AnimatedBitmap.new("Graphics/Pictures/Naming/overlay_tab_2"),
|
@bitmaps[i] = AnimatedBitmap.new(sprintf("Graphics/Pictures/Naming/overlay_tab_#{i + 1}"))
|
||||||
AnimatedBitmap.new("Graphics/Pictures/Naming/overlay_tab_3")
|
b = @bitmaps[i].bitmap.clone
|
||||||
]
|
pbSetSystemFont(b)
|
||||||
@bitmaps[3]=@bitmaps[0].bitmap.clone
|
textPos = []
|
||||||
@bitmaps[4]=@bitmaps[1].bitmap.clone
|
|
||||||
@bitmaps[5]=@bitmaps[2].bitmap.clone
|
|
||||||
for i in 0...3
|
|
||||||
pos=0
|
|
||||||
pbSetSystemFont(@bitmaps[i+3])
|
|
||||||
textPos=[]
|
|
||||||
for y in 0...COLUMNS
|
for y in 0...COLUMNS
|
||||||
for x in 0...ROWS
|
for x in 0...ROWS
|
||||||
textPos.push([@@Characters[i][0][pos],44+x*32,12+y*38,2,
|
pos = y * ROWS + x
|
||||||
Color.new(16,24,32), Color.new(160,160,160)])
|
textPos.push([@@Characters[i][0][pos], 44 + x * 32, 12 + y * 38, 2,
|
||||||
pos+=1
|
Color.new(16, 24, 32), Color.new(160, 160, 160)])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(@bitmaps[i+3],textPos)
|
pbDrawTextPositions(b, textPos)
|
||||||
|
@bitmaps[@@Characters.length + i] = b
|
||||||
end
|
end
|
||||||
@bitmaps[6]=BitmapWrapper.new(24,6)
|
underline_bitmap = BitmapWrapper.new(24, 6)
|
||||||
@bitmaps[6].fill_rect(2,2,22,4,Color.new(168,184,184))
|
underline_bitmap.fill_rect(2, 2, 22, 4, Color.new(168, 184, 184))
|
||||||
@bitmaps[6].fill_rect(0,0,22,4,Color.new(16,24,32))
|
underline_bitmap.fill_rect(0, 0, 22, 4, Color.new(16, 24, 32))
|
||||||
@sprites["bg"]=IconSprite.new(0,0,@viewport)
|
@bitmaps.push(underline_bitmap)
|
||||||
|
# Create sprites
|
||||||
|
@sprites = {}
|
||||||
|
@sprites["bg"] = IconSprite.new(0, 0, @viewport)
|
||||||
@sprites["bg"].setBitmap("Graphics/Pictures/Naming/bg")
|
@sprites["bg"].setBitmap("Graphics/Pictures/Naming/bg")
|
||||||
case subject
|
case subject
|
||||||
when 1 # Player
|
when 1 # Player
|
||||||
meta=GameData::Metadata.get_player($Trainer.character_ID)
|
meta = GameData::Metadata.get_player($Trainer.character_ID)
|
||||||
if meta
|
if meta
|
||||||
@sprites["shadow"]=IconSprite.new(0,0,@viewport)
|
@sprites["shadow"] = IconSprite.new(0, 0, @viewport)
|
||||||
@sprites["shadow"].setBitmap("Graphics/Pictures/Naming/icon_shadow")
|
@sprites["shadow"].setBitmap("Graphics/Pictures/Naming/icon_shadow")
|
||||||
@sprites["shadow"].x=33*2
|
@sprites["shadow"].x = 66
|
||||||
@sprites["shadow"].y=32*2
|
@sprites["shadow"].y = 64
|
||||||
filename=pbGetPlayerCharset(meta,1,nil,true)
|
filename = pbGetPlayerCharset(meta, 1, nil, true)
|
||||||
@sprites["subject"]=TrainerWalkingCharSprite.new(filename,@viewport)
|
@sprites["subject"] = TrainerWalkingCharSprite.new(filename, @viewport)
|
||||||
charwidth=@sprites["subject"].bitmap.width
|
charwidth = @sprites["subject"].bitmap.width
|
||||||
charheight=@sprites["subject"].bitmap.height
|
charheight = @sprites["subject"].bitmap.height
|
||||||
@sprites["subject"].x = 44*2 - charwidth/8
|
@sprites["subject"].x = 88 - charwidth / 8
|
||||||
@sprites["subject"].y = 38*2 - charheight/4
|
@sprites["subject"].y = 76 - charheight / 4
|
||||||
end
|
end
|
||||||
when 2 # Pokémon
|
when 2 # Pokémon
|
||||||
if pokemon
|
if pokemon
|
||||||
@sprites["shadow"]=IconSprite.new(0,0,@viewport)
|
@sprites["shadow"] = IconSprite.new(0, 0, @viewport)
|
||||||
@sprites["shadow"].setBitmap("Graphics/Pictures/Naming/icon_shadow")
|
@sprites["shadow"].setBitmap("Graphics/Pictures/Naming/icon_shadow")
|
||||||
@sprites["shadow"].x=33*2
|
@sprites["shadow"].x = 66
|
||||||
@sprites["shadow"].y=32*2
|
@sprites["shadow"].y = 64
|
||||||
@sprites["subject"]=PokemonIconSprite.new(pokemon,@viewport)
|
@sprites["subject"] = PokemonIconSprite.new(pokemon, @viewport)
|
||||||
@sprites["subject"].setOffset(PictureOrigin::Center)
|
@sprites["subject"].setOffset(PictureOrigin::Center)
|
||||||
@sprites["subject"].x=88
|
@sprites["subject"].x = 88
|
||||||
@sprites["subject"].y=54
|
@sprites["subject"].y = 54
|
||||||
@sprites["gender"]=BitmapSprite.new(32,32,@viewport)
|
@sprites["gender"] = BitmapSprite.new(32, 32, @viewport)
|
||||||
@sprites["gender"].x=430
|
@sprites["gender"].x = 430
|
||||||
@sprites["gender"].y=54
|
@sprites["gender"].y = 54
|
||||||
@sprites["gender"].bitmap.clear
|
@sprites["gender"].bitmap.clear
|
||||||
pbSetSystemFont(@sprites["gender"].bitmap)
|
pbSetSystemFont(@sprites["gender"].bitmap)
|
||||||
textpos=[]
|
textpos = []
|
||||||
if pokemon.male?
|
if pokemon.male?
|
||||||
textpos.push([_INTL("♂"),0,-6,false,Color.new(0,128,248),Color.new(168,184,184)])
|
textpos.push([_INTL("♂"), 0, -6, false, Color.new(0, 128, 248), Color.new(168, 184, 184)])
|
||||||
elsif pokemon.female?
|
elsif pokemon.female?
|
||||||
textpos.push([_INTL("♀"),0,-6,false,Color.new(248,24,24),Color.new(168,184,184)])
|
textpos.push([_INTL("♀"), 0, -6, false, Color.new(248, 24, 24), Color.new(168, 184, 184)])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(@sprites["gender"].bitmap,textpos)
|
pbDrawTextPositions(@sprites["gender"].bitmap, textpos)
|
||||||
end
|
end
|
||||||
when 3 # NPC
|
when 3 # NPC
|
||||||
@sprites["shadow"]=IconSprite.new(0,0,@viewport)
|
@sprites["shadow"] = IconSprite.new(0, 0, @viewport)
|
||||||
@sprites["shadow"].setBitmap("Graphics/Pictures/Naming/icon_shadow")
|
@sprites["shadow"].setBitmap("Graphics/Pictures/Naming/icon_shadow")
|
||||||
@sprites["shadow"].x=33*2
|
@sprites["shadow"].x = 66
|
||||||
@sprites["shadow"].y=32*2
|
@sprites["shadow"].y = 64
|
||||||
@sprites["subject"]=TrainerWalkingCharSprite.new(pokemon.to_s,@viewport)
|
@sprites["subject"] = TrainerWalkingCharSprite.new(pokemon.to_s, @viewport)
|
||||||
charwidth=@sprites["subject"].bitmap.width
|
charwidth = @sprites["subject"].bitmap.width
|
||||||
charheight=@sprites["subject"].bitmap.height
|
charheight = @sprites["subject"].bitmap.height
|
||||||
@sprites["subject"].x = 44*2 - charwidth/8
|
@sprites["subject"].x = 88 - charwidth / 8
|
||||||
@sprites["subject"].y = 38*2 - charheight/4
|
@sprites["subject"].y = 76 - charheight / 4
|
||||||
when 4 # Storage box
|
when 4 # Storage box
|
||||||
@sprites["subject"]=TrainerWalkingCharSprite.new(nil,@viewport)
|
@sprites["subject"] = TrainerWalkingCharSprite.new(nil, @viewport)
|
||||||
@sprites["subject"].altcharset="Graphics/Pictures/Naming/icon_storage"
|
@sprites["subject"].altcharset = "Graphics/Pictures/Naming/icon_storage"
|
||||||
@sprites["subject"].animspeed=4
|
@sprites["subject"].animspeed = 4
|
||||||
charwidth=@sprites["subject"].bitmap.width
|
charwidth = @sprites["subject"].bitmap.width
|
||||||
charheight=@sprites["subject"].bitmap.height
|
charheight = @sprites["subject"].bitmap.height
|
||||||
@sprites["subject"].x = 44*2 - charwidth/8
|
@sprites["subject"].x = 88 - charwidth / 8
|
||||||
@sprites["subject"].y = 26*2 - charheight/2
|
@sprites["subject"].y = 52 - charheight / 2
|
||||||
end
|
end
|
||||||
@sprites["bgoverlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
|
@sprites["bgoverlay"] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
|
||||||
pbDoUpdateOverlay
|
pbDoUpdateOverlay
|
||||||
@blanks=[]
|
@blanks = []
|
||||||
@mode=0
|
@mode = 0
|
||||||
@minlength=minlength
|
@minlength = minlength
|
||||||
@maxlength=maxlength
|
@maxlength = maxlength
|
||||||
@maxlength.times { |i|
|
@maxlength.times { |i|
|
||||||
@sprites["blank#{i}"]=SpriteWrapper.new(@viewport)
|
@sprites["blank#{i}"] = SpriteWrapper.new(@viewport)
|
||||||
@sprites["blank#{i}"].bitmap=@bitmaps[6]
|
@sprites["blank#{i}"].x = 160 + 24 * i
|
||||||
@sprites["blank#{i}"].x=160+24*i
|
@sprites["blank#{i}"].bitmap = @bitmaps[@bitmaps.length - 1]
|
||||||
@blanks[i]=0
|
@blanks[i] = 0
|
||||||
}
|
}
|
||||||
@sprites["bottomtab"]=SpriteWrapper.new(@viewport) # Current tab
|
@sprites["bottomtab"] = SpriteWrapper.new(@viewport) # Current tab
|
||||||
@sprites["bottomtab"].x=22
|
@sprites["bottomtab"].x = 22
|
||||||
@sprites["bottomtab"].y=162
|
@sprites["bottomtab"].y = 162
|
||||||
@sprites["bottomtab"].bitmap=@bitmaps[0+3]
|
@sprites["bottomtab"].bitmap = @bitmaps[@@Characters.length]
|
||||||
@sprites["toptab"]=SpriteWrapper.new(@viewport) # Next tab
|
@sprites["toptab"]=SpriteWrapper.new(@viewport) # Next tab
|
||||||
@sprites["toptab"].x=22-504
|
@sprites["toptab"].x = 22 - 504
|
||||||
@sprites["toptab"].y=162
|
@sprites["toptab"].y = 162
|
||||||
@sprites["toptab"].bitmap=@bitmaps[1+3]
|
@sprites["toptab"].bitmap = @bitmaps[@@Characters.length + 1]
|
||||||
@sprites["controls"]=IconSprite.new(0,0,@viewport)
|
@sprites["controls"] = IconSprite.new(0, 0, @viewport)
|
||||||
|
@sprites["controls"].x = 16
|
||||||
|
@sprites["controls"].y = 96
|
||||||
@sprites["controls"].setBitmap(_INTL("Graphics/Pictures/Naming/overlay_controls"))
|
@sprites["controls"].setBitmap(_INTL("Graphics/Pictures/Naming/overlay_controls"))
|
||||||
@sprites["controls"].x=16
|
@init = true
|
||||||
@sprites["controls"].y=96
|
@sprites["overlay"] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
|
||||||
@init=true
|
|
||||||
@sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
|
|
||||||
pbDoUpdateOverlay2
|
pbDoUpdateOverlay2
|
||||||
@sprites["cursor"]=NameEntryCursor.new(@viewport)
|
@sprites["cursor"] = NameEntryCursor.new(@viewport)
|
||||||
@cursorpos=0
|
@cursorpos = 0
|
||||||
@refreshOverlay=true
|
@refreshOverlay = true
|
||||||
@sprites["cursor"].setCursorPos(@cursorpos)
|
@sprites["cursor"].setCursorPos(@cursorpos)
|
||||||
pbFadeInAndShow(@sprites) { pbUpdate }
|
pbFadeInAndShow(@sprites) { pbUpdate }
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbUpdateOverlay
|
def pbUpdateOverlay
|
||||||
@refreshOverlay=true
|
@refreshOverlay = true
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbDoUpdateOverlay2
|
def pbDoUpdateOverlay2
|
||||||
overlay=@sprites["overlay"].bitmap
|
overlay = @sprites["overlay"].bitmap
|
||||||
overlay.clear
|
overlay.clear
|
||||||
modeIcon=[[_INTL("Graphics/Pictures/Naming/icon_mode"),48+@mode*64,120,@mode*60,0,60,44]]
|
modeIcon = [[_INTL("Graphics/Pictures/Naming/icon_mode"), 44 + @mode * 62, 120, @mode * 60, 0, 60, 44]]
|
||||||
pbDrawImagePositions(overlay,modeIcon)
|
pbDrawImagePositions(overlay, modeIcon)
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbDoUpdateOverlay
|
def pbDoUpdateOverlay
|
||||||
return if !@refreshOverlay
|
return if !@refreshOverlay
|
||||||
@refreshOverlay=false
|
@refreshOverlay = false
|
||||||
bgoverlay=@sprites["bgoverlay"].bitmap
|
bgoverlay = @sprites["bgoverlay"].bitmap
|
||||||
bgoverlay.clear
|
bgoverlay.clear
|
||||||
pbSetSystemFont(bgoverlay)
|
pbSetSystemFont(bgoverlay)
|
||||||
textPositions=[
|
textPositions = [
|
||||||
[@helptext,160,6,false,Color.new(16,24,32),Color.new(168,184,184)]
|
[@helptext, 160, 6, false, Color.new(16, 24, 32), Color.new(168, 184, 184)]
|
||||||
]
|
]
|
||||||
chars=@helper.textChars
|
chars = @helper.textChars
|
||||||
x=166
|
x = 166
|
||||||
for ch in chars
|
for ch in chars
|
||||||
textPositions.push([ch,x,42,false,Color.new(16,24,32),Color.new(168,184,184)])
|
textPositions.push([ch, x, 42, false, Color.new(16, 24, 32), Color.new(168, 184, 184)])
|
||||||
x+=24
|
x += 24
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(bgoverlay,textPositions)
|
pbDrawTextPositions(bgoverlay, textPositions)
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbChangeTab(newtab=@mode+1)
|
def pbChangeTab(newtab = @mode + 1)
|
||||||
pbSEPlay("GUI naming tab swap start")
|
pbSEPlay("GUI naming tab swap start")
|
||||||
@sprites["cursor"].visible = false
|
@sprites["cursor"].visible = false
|
||||||
@sprites["toptab"].bitmap = @bitmaps[(newtab%3)+3]
|
@sprites["toptab"].bitmap = @bitmaps[(newtab % @@Characters.length) + @@Characters.length]
|
||||||
# Move bottom (old) tab down off the screen, and move top (new) tab right
|
# Move bottom (old) tab down off the screen, and move top (new) tab right
|
||||||
# onto the screen
|
# onto the screen
|
||||||
deltaX = 48*20/Graphics.frame_rate
|
deltaX = 48 * 20 / Graphics.frame_rate
|
||||||
deltaY = 24*20/Graphics.frame_rate
|
deltaY = 24 * 20 / Graphics.frame_rate
|
||||||
loop do
|
loop do
|
||||||
if @sprites["bottomtab"].y<414
|
if @sprites["bottomtab"].y < 414
|
||||||
@sprites["bottomtab"].y += deltaY
|
@sprites["bottomtab"].y += deltaY
|
||||||
@sprites["bottomtab"].y = 414 if @sprites["bottomtab"].y>414
|
@sprites["bottomtab"].y = 414 if @sprites["bottomtab"].y > 414
|
||||||
end
|
end
|
||||||
if @sprites["toptab"].x<22
|
if @sprites["toptab"].x < 22
|
||||||
@sprites["toptab"].x += deltaX
|
@sprites["toptab"].x += deltaX
|
||||||
@sprites["toptab"].x = 22 if @sprites["toptab"].x>22
|
@sprites["toptab"].x = 22 if @sprites["toptab"].x > 22
|
||||||
end
|
end
|
||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
break if @sprites["toptab"].x>=22 && @sprites["bottomtab"].y>=414
|
break if @sprites["toptab"].x >= 22 && @sprites["bottomtab"].y >= 414
|
||||||
end
|
end
|
||||||
# Swap top and bottom tab around
|
# Swap top and bottom tab around
|
||||||
@sprites["toptab"].x, @sprites["bottomtab"].x = @sprites["bottomtab"].x, @sprites["toptab"].x
|
@sprites["toptab"].x, @sprites["bottomtab"].x = @sprites["bottomtab"].x, @sprites["toptab"].x
|
||||||
@@ -546,29 +553,29 @@ class PokemonEntryScene2
|
|||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
# Set the current mode
|
# Set the current mode
|
||||||
@mode = (newtab)%3
|
@mode = newtab % @@Characters.length
|
||||||
# Set the top tab up to be the next tab
|
# Set the top tab up to be the next tab
|
||||||
newtab = @bitmaps[((@mode+1)%3)+3]
|
newtab = @bitmaps[((@mode + 1) % @@Characters.length) + @@Characters.length]
|
||||||
@sprites["cursor"].visible = true
|
@sprites["cursor"].visible = true
|
||||||
@sprites["toptab"].bitmap = newtab
|
@sprites["toptab"].bitmap = newtab
|
||||||
@sprites["toptab"].x = 22-504
|
@sprites["toptab"].x = 22 - 504
|
||||||
@sprites["toptab"].y = 162
|
@sprites["toptab"].y = 162
|
||||||
pbSEPlay("GUI naming tab swap end")
|
pbSEPlay("GUI naming tab swap end")
|
||||||
pbDoUpdateOverlay2
|
pbDoUpdateOverlay2
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbUpdate
|
def pbUpdate
|
||||||
for i in 0...3
|
for i in 0...@@Characters.length
|
||||||
@bitmaps[i].update
|
@bitmaps[i].update
|
||||||
end
|
end
|
||||||
if @init || Graphics.frame_count%5==0
|
if @init || Graphics.frame_count % 5 == 0
|
||||||
@init = false
|
@init = false
|
||||||
cursorpos = @helper.cursor
|
cursorpos = @helper.cursor
|
||||||
cursorpos = @maxlength-1 if cursorpos>=@maxlength
|
cursorpos = @maxlength - 1 if cursorpos >= @maxlength
|
||||||
cursorpos = 0 if cursorpos<0
|
cursorpos = 0 if cursorpos < 0
|
||||||
@maxlength.times { |i|
|
@maxlength.times { |i|
|
||||||
@blanks[i] = (i==cursorpos) ? 1 : 0
|
@blanks[i] = (i == cursorpos) ? 1 : 0
|
||||||
@sprites["blank#{i}"].y = [78,82][@blanks[i]]
|
@sprites["blank#{i}"].y = [78, 82][@blanks[i]]
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
pbDoUpdateOverlay
|
pbDoUpdateOverlay
|
||||||
@@ -576,106 +583,102 @@ class PokemonEntryScene2
|
|||||||
end
|
end
|
||||||
|
|
||||||
def pbColumnEmpty?(m)
|
def pbColumnEmpty?(m)
|
||||||
return false if m>=ROWS-1
|
return false if m >= ROWS - 1
|
||||||
chset=@@Characters[@mode][0]
|
chset = @@Characters[@mode][0]
|
||||||
return (
|
COLUMNS.times do |i|
|
||||||
chset[m]==" " &&
|
return false if chset[i * ROWS + m] != " "
|
||||||
chset[m+((ROWS-1))]==" " &&
|
end
|
||||||
chset[m+((ROWS-1)*2)]==" " &&
|
return true
|
||||||
chset[m+((ROWS-1)*3)]==" "
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def wrapmod(x,y)
|
def wrapmod(x, y)
|
||||||
result=x%y
|
result = x % y
|
||||||
result+=y if result<0
|
result += y if result < 0
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbMoveCursor
|
def pbMoveCursor
|
||||||
oldcursor=@cursorpos
|
oldcursor = @cursorpos
|
||||||
cursordiv=@cursorpos/ROWS
|
cursordiv = @cursorpos / ROWS # The row the cursor is in
|
||||||
cursormod=@cursorpos%ROWS
|
cursormod = @cursorpos % ROWS # The column the cursor is in
|
||||||
cursororigin=@cursorpos-cursormod
|
cursororigin = @cursorpos - cursormod
|
||||||
if Input.repeat?(Input::LEFT)
|
if Input.repeat?(Input::LEFT)
|
||||||
if @cursorpos<0 # Controls
|
if @cursorpos < 0 # Controls
|
||||||
@cursorpos-=1
|
@cursorpos -= 1
|
||||||
@cursorpos=OK if @cursorpos<MODE1
|
@cursorpos = OK if @cursorpos < MODE1
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
cursormod=wrapmod((cursormod-1),ROWS)
|
cursormod = wrapmod(cursormod - 1, ROWS)
|
||||||
@cursorpos=cursororigin+cursormod
|
@cursorpos = cursororigin + cursormod
|
||||||
end while pbColumnEmpty?(cursormod)
|
end while pbColumnEmpty?(cursormod)
|
||||||
end
|
end
|
||||||
elsif Input.repeat?(Input::RIGHT)
|
elsif Input.repeat?(Input::RIGHT)
|
||||||
if @cursorpos<0 # Controls
|
if @cursorpos < 0 # Controls
|
||||||
@cursorpos+=1
|
@cursorpos += 1
|
||||||
@cursorpos=MODE1 if @cursorpos>OK
|
@cursorpos = MODE1 if @cursorpos > OK
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
cursormod=wrapmod((cursormod+1),ROWS)
|
cursormod = wrapmod(cursormod + 1, ROWS)
|
||||||
@cursorpos=cursororigin+cursormod
|
@cursorpos = cursororigin + cursormod
|
||||||
end while pbColumnEmpty?(cursormod)
|
end while pbColumnEmpty?(cursormod)
|
||||||
end
|
end
|
||||||
elsif Input.repeat?(Input::UP)
|
elsif Input.repeat?(Input::UP)
|
||||||
if @cursorpos<0 # Controls
|
if @cursorpos < 0 # Controls
|
||||||
case @cursorpos
|
case @cursorpos
|
||||||
when MODE1 then @cursorpos = ROWS*(COLUMNS-1)
|
when MODE1 then @cursorpos = ROWS * (COLUMNS - 1)
|
||||||
when MODE2 then @cursorpos = ROWS*(COLUMNS-1)+2
|
when MODE2 then @cursorpos = ROWS * (COLUMNS - 1) + 2
|
||||||
when MODE3 then @cursorpos = ROWS*(COLUMNS-1)+4
|
when MODE3 then @cursorpos = ROWS * (COLUMNS - 1) + 4
|
||||||
when BACK then @cursorpos = ROWS*(COLUMNS-1)+8
|
when MODE4 then @cursorpos = ROWS * (COLUMNS - 1) + 6
|
||||||
when OK then @cursorpos = ROWS*(COLUMNS-1)+11
|
when BACK then @cursorpos = ROWS * (COLUMNS - 1) + 9
|
||||||
|
when OK then @cursorpos = ROWS * (COLUMNS - 1) + 11
|
||||||
end
|
end
|
||||||
elsif @cursorpos<ROWS # Top row of letters
|
elsif @cursorpos < ROWS # Top row of letters
|
||||||
case @cursorpos
|
case @cursorpos
|
||||||
when 0, 1 then @cursorpos = MODE1
|
when 0, 1 then @cursorpos = MODE1
|
||||||
when 2, 3 then @cursorpos = MODE2
|
when 2, 3 then @cursorpos = MODE2
|
||||||
when 4, 5, 6 then @cursorpos = MODE3
|
when 4, 5 then @cursorpos = MODE3
|
||||||
when 7, 8, 9, 10 then @cursorpos = BACK
|
when 6, 7 then @cursorpos = MODE4
|
||||||
when 11, 12 then @cursorpos = OK
|
when 8, 9, 10 then @cursorpos = BACK
|
||||||
|
when 11, 12 then @cursorpos = OK
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
cursordiv=wrapmod((cursordiv-1),COLUMNS)
|
cursordiv = wrapmod(cursordiv - 1, COLUMNS)
|
||||||
@cursorpos=(cursordiv*ROWS)+cursormod
|
@cursorpos = cursordiv * ROWS + cursormod
|
||||||
end
|
end
|
||||||
elsif Input.repeat?(Input::DOWN)
|
elsif Input.repeat?(Input::DOWN)
|
||||||
if @cursorpos<0 # Controls
|
if @cursorpos < 0 # Controls
|
||||||
case @cursorpos
|
case @cursorpos
|
||||||
when MODE1 then @cursorpos = 0
|
when MODE1 then @cursorpos = 0
|
||||||
when MODE2 then @cursorpos = 2
|
when MODE2 then @cursorpos = 2
|
||||||
when MODE3 then @cursorpos = 4
|
when MODE3 then @cursorpos = 4
|
||||||
when BACK then @cursorpos = 8
|
when MODE4 then @cursorpos = 6
|
||||||
|
when BACK then @cursorpos = 9
|
||||||
when OK then @cursorpos = 11
|
when OK then @cursorpos = 11
|
||||||
end
|
end
|
||||||
elsif @cursorpos>=ROWS*(COLUMNS-1) # Bottom row of letters
|
elsif @cursorpos >= ROWS * (COLUMNS - 1) # Bottom row of letters
|
||||||
case @cursorpos
|
case cursormod
|
||||||
when ROWS*(COLUMNS-1),ROWS*(COLUMNS-1)+1
|
when 0, 1 then @cursorpos = MODE1
|
||||||
@cursorpos = MODE1
|
when 2, 3 then @cursorpos = MODE2
|
||||||
when ROWS*(COLUMNS-1)+2,ROWS*(COLUMNS-1)+3
|
when 4, 5 then @cursorpos = MODE3
|
||||||
@cursorpos = MODE2
|
when 6, 7 then @cursorpos = MODE4
|
||||||
when ROWS*(COLUMNS-1)+4,ROWS*(COLUMNS-1)+5,ROWS*(COLUMNS-1)+6
|
when 8, 9, 10 then @cursorpos = BACK
|
||||||
@cursorpos = MODE3
|
else @cursorpos = OK
|
||||||
when ROWS*(COLUMNS-1)+7,ROWS*(COLUMNS-1)+8,ROWS*(COLUMNS-1)+9,ROWS*(COLUMNS-1)+10
|
|
||||||
@cursorpos = BACK
|
|
||||||
when ROWS*(COLUMNS-1)+11,ROWS*(COLUMNS-1)+12
|
|
||||||
@cursorpos = OK
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
cursordiv=wrapmod((cursordiv+1),COLUMNS)
|
cursordiv = wrapmod(cursordiv + 1, COLUMNS)
|
||||||
@cursorpos=(cursordiv*ROWS)+cursormod
|
@cursorpos = cursordiv * ROWS + cursormod
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if @cursorpos!=oldcursor # Cursor position changed
|
if @cursorpos != oldcursor # Cursor position changed
|
||||||
@sprites["cursor"].setCursorPos(@cursorpos)
|
@sprites["cursor"].setCursorPos(@cursorpos)
|
||||||
pbPlayCursorSE()
|
pbPlayCursorSE
|
||||||
return true
|
return true
|
||||||
else
|
|
||||||
return false
|
|
||||||
end
|
end
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbEntry
|
def pbEntry
|
||||||
ret=""
|
ret = ""
|
||||||
loop do
|
loop do
|
||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
@@ -688,38 +691,40 @@ class PokemonEntryScene2
|
|||||||
@sprites["cursor"].setCursorPos(@cursorpos)
|
@sprites["cursor"].setCursorPos(@cursorpos)
|
||||||
elsif Input.trigger?(Input::BACK)
|
elsif Input.trigger?(Input::BACK)
|
||||||
@helper.delete
|
@helper.delete
|
||||||
pbPlayCancelSE()
|
pbPlayCancelSE
|
||||||
pbUpdateOverlay
|
pbUpdateOverlay
|
||||||
elsif Input.trigger?(Input::USE)
|
elsif Input.trigger?(Input::USE)
|
||||||
case @cursorpos
|
case @cursorpos
|
||||||
when BACK # Backspace
|
when BACK # Backspace
|
||||||
@helper.delete
|
@helper.delete
|
||||||
pbPlayCancelSE()
|
pbPlayCancelSE
|
||||||
pbUpdateOverlay
|
pbUpdateOverlay
|
||||||
when OK # Done
|
when OK # Done
|
||||||
pbSEPlay("GUI naming confirm")
|
pbSEPlay("GUI naming confirm")
|
||||||
if @helper.length>=@minlength
|
if @helper.length >= @minlength
|
||||||
ret=@helper.text
|
ret = @helper.text
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
when MODE1
|
when MODE1
|
||||||
pbChangeTab(0) if @mode!=0
|
pbChangeTab(0) if @mode != 0
|
||||||
when MODE2
|
when MODE2
|
||||||
pbChangeTab(1) if @mode!=1
|
pbChangeTab(1) if @mode != 1
|
||||||
when MODE3
|
when MODE3
|
||||||
pbChangeTab(2) if @mode!=2
|
pbChangeTab(2) if @mode != 2
|
||||||
|
when MODE4
|
||||||
|
pbChangeTab(3) if @mode != 3
|
||||||
else
|
else
|
||||||
cursormod=@cursorpos%ROWS
|
cursormod = @cursorpos % ROWS
|
||||||
cursordiv=@cursorpos/ROWS
|
cursordiv = @cursorpos / ROWS
|
||||||
charpos=cursordiv*(ROWS)+cursormod
|
charpos = cursordiv * ROWS + cursormod
|
||||||
chset=@@Characters[@mode][0]
|
chset = @@Characters[@mode][0]
|
||||||
if @helper.length>=@maxlength
|
if @helper.length >= @maxlength
|
||||||
@helper.delete
|
@helper.delete
|
||||||
end
|
end
|
||||||
@helper.insert(chset[charpos])
|
@helper.insert(chset[charpos])
|
||||||
pbPlayCursorSE()
|
pbPlayCursorSE
|
||||||
if @helper.length>=@maxlength
|
if @helper.length >= @maxlength
|
||||||
@cursorpos=OK
|
@cursorpos = OK
|
||||||
@sprites["cursor"].setCursorPos(@cursorpos)
|
@sprites["cursor"].setCursorPos(@cursorpos)
|
||||||
end
|
end
|
||||||
pbUpdateOverlay
|
pbUpdateOverlay
|
||||||
|
|||||||
Reference in New Issue
Block a user