327 lines
12 KiB
Lua
327 lines
12 KiB
Lua
jailmoji={
|
|
MAX_COLOR=16,
|
|
MAX_BASE=3,
|
|
MAX_CHIN=8,
|
|
MAX_NOSE=9,
|
|
MAX_EARS=1,
|
|
MAX_EYES=7,
|
|
MAX_BROWS=4,
|
|
MAX_HAIR=11,
|
|
MAX_BAG=3,
|
|
|
|
surface=-1,
|
|
gendata={},
|
|
|
|
generate=function(genstring)
|
|
if genstring then
|
|
for i=1,#genstring do jailmoji.gendata[i]=genstring:byte(i)-65 end
|
|
end
|
|
|
|
local surf_base = surf.load("actor-base.gif")
|
|
local surf_hair = surf.load("actor-hair.gif")
|
|
local surf_chin = surf.load("actor-chin.gif")
|
|
local surf_nose = surf.load("actor-nose.gif")
|
|
local surf_eyes = surf.load("actor-eyes.gif")
|
|
local surf_brows = surf.load("actor-brows.gif")
|
|
local surf_bag = surf.load("actor-bag.gif")
|
|
if jailmoji.surface ~= -1 then surf.free(jailmoji.surface) end
|
|
|
|
jailmoji.surface = surf.new(32,48)
|
|
surf.target(jailmoji.surface)
|
|
|
|
pal.subpal(20,jailmoji.gendata[2]+1) -- vestit1
|
|
pal.subpal(21,jailmoji.gendata[3]+1) -- vestit2
|
|
pal.subpal(22,jailmoji.gendata[4]+1) -- sabates
|
|
pal.subpal(24,jailmoji.gendata[5]+1) -- pell1
|
|
pal.subpal(25,jailmoji.gendata[6]+1) -- pell2
|
|
pal.subpal(23,jailmoji.gendata[15]+1) -- monyo
|
|
pal.subpal(26,jailmoji.gendata[11]+1) -- ulls
|
|
pal.subpal(27,jailmoji.gendata[13]+1) -- celles
|
|
pal.subpal(28,jailmoji.gendata[17]+1) -- motxilla1
|
|
pal.subpal(29,jailmoji.gendata[18]+1) -- motxilla2
|
|
|
|
surf.source(surf_base)
|
|
local dx=jailmoji.gendata[1]*32
|
|
draw.surf(dx,0,32,48,0,0)
|
|
|
|
surf.source(surf_bag)
|
|
local dx=jailmoji.gendata[16]*6
|
|
draw.surf(dx,0,6,5,5,25)
|
|
draw.surf(dx,0,6,5,21,26)
|
|
draw.surf(dx,5,6,5,8,41)
|
|
draw.surf(dx+3,5,2,2,27,42)
|
|
|
|
surf.source(surf_hair)
|
|
local dx=jailmoji.gendata[14]*16
|
|
draw.surf(dx,0,16,48,0,0)
|
|
draw.surf(dx,0,16,48,16,1)
|
|
|
|
surf.source(surf_eyes)
|
|
local dx=jailmoji.gendata[10]*4
|
|
draw.surf(dx,0,4,2,4,7,4,2,true)
|
|
draw.surf(dx,0,4,2,8,7)
|
|
draw.surf(dx,0,4,2,20,8,4,2,true)
|
|
draw.surf(dx,0,4,2,24,8)
|
|
draw.surf(dx,0,4,2,4,38)
|
|
draw.surf(dx,0,4,2,20,39)
|
|
|
|
surf.source(surf_brows)
|
|
local dx=jailmoji.gendata[12]*2
|
|
draw.surf(dx,0,2,2,5,6,2,2,true)
|
|
draw.surf(dx,0,2,2,9,6)
|
|
draw.surf(dx,0,2,2,21,7,2,2,true)
|
|
draw.surf(dx,0,2,2,25,7)
|
|
draw.surf(dx,0,2,2,5,37)
|
|
draw.surf(dx,0,2,2,21,38)
|
|
|
|
surf.source(surf_chin)
|
|
local dx=jailmoji.gendata[7]*8
|
|
draw.surf(dx,0,8,4,4,9)
|
|
draw.surf(dx,0,8,4,20,10)
|
|
draw.surf(dx,4,8,4,1,40)
|
|
draw.surf(dx,4,8,4,17,41)
|
|
|
|
surf.source(surf_nose)
|
|
local dx=jailmoji.gendata[8]*4
|
|
draw.surf(dx,4,4,4,6,7)
|
|
draw.surf(dx,4,4,4,22,8)
|
|
draw.surf(dx,0,4,4,0,37)
|
|
draw.surf(dx,0,4,4,16,38)
|
|
|
|
pal.subpal()
|
|
|
|
surf.target(0)
|
|
end,
|
|
|
|
get=function(genstring)
|
|
jailmoji.generate(genstring)
|
|
local surf = jailmoji.surface
|
|
jailmoji.surface = -1
|
|
return surf
|
|
end,
|
|
|
|
update_text=function()
|
|
jailmoji.editor.str=""
|
|
for i=1,#jailmoji.gendata do jailmoji.editor.str = jailmoji.editor.str .. string.char(jailmoji.gendata[i]+65) end
|
|
end,
|
|
|
|
random=function()
|
|
local str=""
|
|
str = str .. string.char(math.random(jailmoji.MAX_BASE+1)+64)
|
|
str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
|
|
--str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
--str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
local pell = {{"O","N"}, {"N","J"}, {"J","J"}} local r = math.random(#pell)
|
|
str = str .. pell[r][1] .. pell[r][2]
|
|
|
|
str = str .. string.char(math.random(jailmoji.MAX_CHIN+1)+64)
|
|
str = str .. string.char(math.random(jailmoji.MAX_NOSE+1)+64)
|
|
str = str .. string.char(math.random(jailmoji.MAX_EARS+1)+64)
|
|
str = str .. string.char(math.random(jailmoji.MAX_EYES+1)+64)
|
|
--str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
local ulls = {"B","C","D","E","F","G","I","K","L"} r = math.random(#ulls)
|
|
str = str .. ulls[r]
|
|
|
|
str = str .. string.char(math.random(jailmoji.MAX_BROWS+1)+64)
|
|
--str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
local celles = {"E","F","G","H","J"} r = math.random(#celles)
|
|
str = str .. celles[r]
|
|
|
|
str = str .. string.char(math.random(jailmoji.MAX_HAIR+1)+64)
|
|
--str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
local monyo = {"D","E","F","G","H","J","N","O"} r = math.random(#monyo)
|
|
str = str .. monyo[r]
|
|
|
|
str = str .. string.char(math.random(jailmoji.MAX_BAG+1)+64)
|
|
str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
str = str .. string.char(math.random(jailmoji.MAX_COLOR+1)+64)
|
|
jailmoji.generate(str)
|
|
|
|
jailmoji.update_text()
|
|
end,
|
|
|
|
editor={
|
|
old_update=nil,
|
|
view=0,
|
|
animated=false,
|
|
changed=false,
|
|
str="",
|
|
|
|
show=function()
|
|
jailmoji.editor.old_update=update
|
|
update=jailmoji.editor.update
|
|
--jailmoji.surface = surf.load("actor-base.gif")
|
|
jailmoji.generate("AABJONAAAAEAAAEAAB")
|
|
end,
|
|
|
|
text_button=function(x, y, label, current_value, own_value)
|
|
local rect,color = draw.rect, 8
|
|
local mx,my = mouse.pos()
|
|
|
|
if current_value==own_value then rect,color = draw.rectf, 5 else rect,color = draw.rect, 8 end
|
|
rect(x,y,9,9,8)
|
|
draw.text(label,x+3,y+2,color)
|
|
if mx>=x and mx<x+9 and my>=y and my<y+9 and mouse.press(mouse.LEFT) then return own_value end
|
|
return current_value
|
|
end,
|
|
|
|
spin_button=function(x, y, current_value, max_value)
|
|
local rect,color = draw.rect, 8
|
|
local mx,my = mouse.pos() --mx,my = view.tolocal(mx,my)
|
|
local hover = mx>=x and mx<x+9 and my>=y and my<y+9
|
|
local clicked = hover and mouse.down(mouse.LEFT)
|
|
local label = string.char(current_value + 65)
|
|
if clicked then rect,color = draw.rectf, 5 else rect,color = draw.rect, 8 end
|
|
rect(x,y,9,9,8)
|
|
draw.text(label,x+3,y+2,color)
|
|
if hover then
|
|
if mouse.press(mouse.LEFT) then
|
|
jailmoji.editor.changed = true
|
|
if current_value+1 > max_value then
|
|
return 0
|
|
else
|
|
return current_value+1
|
|
end
|
|
elseif mouse.press(mouse.RIGHT) then
|
|
jailmoji.editor.changed = true
|
|
if current_value == 0 then
|
|
return max_value
|
|
else
|
|
return current_value-1
|
|
end
|
|
end
|
|
end
|
|
return current_value
|
|
end,
|
|
|
|
color_button=function(x, y, current_value)
|
|
local c1,c2,c3 = current_value+1,6,8
|
|
local mx,my = mouse.pos() --mx,my = view.tolocal(mx,my)
|
|
local hover = mx>=x and mx<x+9 and my>=y and my<y+9
|
|
local clicked = hover and mouse.down(mouse.LEFT)
|
|
if clicked then c1,c2,c3 = 6,6,8 end
|
|
draw.rectf(x,y,9,9,c1) draw.rect(x+1,y+1,7,7,c2) draw.rect(x,y,9,9,c3)
|
|
if hover then
|
|
if mouse.press(mouse.LEFT) then
|
|
jailmoji.editor.changed = true
|
|
if current_value+1 > 15 then
|
|
return 0
|
|
else
|
|
return current_value+1
|
|
end
|
|
elseif mouse.press(mouse.RIGHT) then
|
|
jailmoji.editor.changed = true
|
|
if current_value == 0 then
|
|
return 15
|
|
else
|
|
return current_value-1
|
|
end
|
|
end
|
|
end
|
|
return current_value
|
|
end,
|
|
|
|
update=function()
|
|
local self = jailmoji.editor
|
|
draw.rectf(10,10, 140, 100,5)
|
|
draw.rectf(10,10, 140, 10,9)
|
|
draw.rect(10,10, 140, 100,8)
|
|
draw.text("JAILMOJI EDITOR",14,13,8)
|
|
draw.rectf(19,23, 50, 50,7)
|
|
draw.rect(19,23, 50, 50,8)
|
|
surf.source(jailmoji.surface)
|
|
|
|
local vx = 0 if self.animated then vx = 16 end
|
|
local vy = self.view * 16
|
|
draw.surf(vx,vy,16,16,28,32,32,32)
|
|
|
|
local rect,color = draw.rect, 8
|
|
local mx,my = mouse.pos()
|
|
|
|
self.view=self.text_button(19,74,"F",self.view, 0)
|
|
self.view=self.text_button(29,74,"B",self.view, 1)
|
|
self.view=self.text_button(39,74,"S",self.view, 2)
|
|
self.animated=self.text_button(60,74,"A",self.animated, not self.animated)
|
|
|
|
view.origin(70,23)
|
|
draw.text("Vestit:",1,2,8)
|
|
|
|
jailmoji.gendata[1] = self.spin_button(28,0,jailmoji.gendata[1],jailmoji.MAX_BASE)
|
|
jailmoji.gendata[2] = self.color_button(38,0,jailmoji.gendata[2])
|
|
jailmoji.gendata[3] = self.color_button(48,0,jailmoji.gendata[3])
|
|
jailmoji.gendata[4] = self.color_button(58,0,jailmoji.gendata[4])
|
|
|
|
draw.text("Pell:",1,12,8)
|
|
jailmoji.gendata[5] = self.color_button(28,10,jailmoji.gendata[5])
|
|
jailmoji.gendata[6] = self.color_button(38,10,jailmoji.gendata[6])
|
|
|
|
draw.text("Cara:",1,22,8)
|
|
jailmoji.gendata[7] = self.spin_button(28,20,jailmoji.gendata[7],jailmoji.MAX_CHIN)
|
|
jailmoji.gendata[8] = self.spin_button(38,20,jailmoji.gendata[8],jailmoji.MAX_NOSE)
|
|
jailmoji.gendata[9] = self.spin_button(48,20,jailmoji.gendata[9],jailmoji.MAX_EARS)
|
|
|
|
draw.text("Ulls:",1,32,8)
|
|
jailmoji.gendata[10] = self.spin_button(28,30,jailmoji.gendata[10],jailmoji.MAX_EYES)
|
|
jailmoji.gendata[11] = self.color_button(38,30,jailmoji.gendata[11])
|
|
jailmoji.gendata[12] = self.spin_button(48,30,jailmoji.gendata[12],jailmoji.MAX_BROWS)
|
|
jailmoji.gendata[13] = self.color_button(58,30,jailmoji.gendata[13])
|
|
|
|
draw.text("Monyo:",1,42,8)
|
|
jailmoji.gendata[14] = self.spin_button(28,40,jailmoji.gendata[14],jailmoji.MAX_HAIR)
|
|
jailmoji.gendata[15] = self.color_button(38,40,jailmoji.gendata[15])
|
|
|
|
draw.text("Motxilla:",1,52,8)
|
|
jailmoji.gendata[16] = self.spin_button(38,50,jailmoji.gendata[16],jailmoji.MAX_BAG)
|
|
jailmoji.gendata[17] = self.color_button(48,50,jailmoji.gendata[17])
|
|
jailmoji.gendata[18] = self.color_button(58,50,jailmoji.gendata[18])
|
|
|
|
view.origin(0,0)
|
|
|
|
if jailmoji.editor.changed then
|
|
jailmoji.editor.changed = false
|
|
jailmoji.generate()
|
|
jailmoji.update_text()
|
|
--self.str=""
|
|
--for i=1,#jailmoji.gendata do self.str = self.str .. string.char(jailmoji.gendata[i]+65) end
|
|
end
|
|
draw.rectf(19,88, 122, 9,7)
|
|
draw.rect(19,88, 122, 9,8)
|
|
draw.text(self.str,21,90,8)
|
|
|
|
--local mx,my = mouse.pos() --mx,my = view.tolocal(mx,my)
|
|
|
|
-- 'COPY' button
|
|
draw.rectf(19,98, 24, 9,9)
|
|
draw.rect(19,98, 24, 9,8)
|
|
draw.text("COPY",23,100,8)
|
|
if mx>=19 and mx<19+24 and my>=98 and my<98+9 and mouse.press(mouse.LEFT) then
|
|
sys.clipboard(self.str)
|
|
end
|
|
|
|
-- 'RANDOM' button
|
|
draw.rectf(65,98, 31, 9,2)
|
|
draw.rect(65,98, 31, 9,8)
|
|
draw.text("RANDOM",69,100,8)
|
|
if mx>=65 and mx<65+32 and my>=98 and my<98+9 and mouse.press(mouse.LEFT) then
|
|
jailmoji.random()
|
|
end
|
|
|
|
-- 'EXIT' button
|
|
draw.rectf(116,98, 25, 9,10)
|
|
draw.rect(116,98, 25, 9,8)
|
|
draw.text("EIXIR",119,100,8)
|
|
if mx>=116 and mx<116+25 and my>=98 and my<98+9 and mouse.press(mouse.LEFT) then
|
|
if self.old_update then
|
|
update = self.old_update
|
|
else
|
|
surf.source(0)
|
|
surf.cls(0)
|
|
show_main_menu()
|
|
end
|
|
end
|
|
end,
|
|
},
|
|
} |