SpellListing(mob/player/P,mob/monsters/M,list/monstergroup)
for(var/obj/O in P.chooselist)
del(O)
var/client/C = P.client
var/x = 1; var/px = 17; var/y = 8
var/text
var/far = 0
var/movingup = 1
if(P.spells.len == 0)
AddInfo(P,"You have no spells!","")
sleep(12)
Battle(P,M,monstergroup)
return
if(P.spells.len <= 8)
P.page1 = P.spells.Copy(1,P.spells.len)
else
P.page1 = P.spells.Copy(1,9)
if(P.spells.len <= 16)
P.page2 = P.spells.Copy(9,P.spells.len)
else
P.page2 = P.spells.Copy(9,17)
if(P.spells.len <= 24)
P.page3 = P.spells.Copy(17,P.spells.len)
else
P.page3 = P.spells.Copy(17,25)
if(P.spells.len <= 32)
P.page4 = P.spells.Copy(25,P.spells.len)
else
P.page4 = P.spells.Copy(25,33)
if(P.spells.len <= 40)
P.page5 = P.spells.Copy(33,P.spells.len)
else
P.page5 = P.spells.Copy(33,41)
world << "ERROR: RAN OUT OF PAGE ROOM! REPORT THIS BUG IMMEDIATLY! BUG ERROR #1!"
SelectionBackground(P)
var/list/pager = new/list()
if(P.page == 1)
pager = P.page1
else if(P.page == 2)
pager = P.page2
else if(P.page == 3)
pager = P.page3
else if(P.page == 4)
pager = P.page4
else if(P.page == 5)
pager = P.page5
else
world << "ERROR: PAGE NUMBER INCORRECT! REPORT THIS BUG IMMEDIATLY! BUG ERROR #2!"
return
for(var/special in pager)
far++
text = special
for(var/leng = 1; leng <= length(text); leng++)
var/obj/letter/let = new /obj/letter
let.icon = 'font.dmi'
let.icon_state = copytext(text,leng,leng+1)
let.layer = MOB_LAYER + 2
if(y == 8)
let.screen_loc = "[x]:[px],[y]"
else if(y == 7)
let.screen_loc = "[x]:[px],[y]:3"
else if(y == 6)
let.screen_loc = "[x]:[px],[y]:6"
else if(y == 5)
let.screen_loc = "[x]:[px],[y]:9"
px += 17
P.chooselist += let
if(px > 32)
x++
px -= 32
C.screen += let
if(leng == length(text) && far + 1 <= 4)
y--
x = 1
px = 17
if(leng == length(text) && far + 1 >= 5 && monstergroup.len >= 5)
if(movingup == 1)
y = 9
movingup = 0
x = 9
px = 17
y--
if(P.arrows.menu[3][1])
var/obj/sarrow/arr = new /obj/sarrow
arr.layer = MOB_LAYER + 2
arr.screen_loc = "17:12,5:9"
P.chooselist += arr
C.screen += arr
else
world << "Making Sarrow"
var/obj/sarrow/arr = new /obj/sarrow
arr.layer = MOB_LAYER + 2
arr.screen_loc = "9:12,5:9"
P.chooselist += arr
C.screen += arr
Problem description:
When I had 2 pages of Spells, it would show the spells Correctly:
1 5
2 6
3 7
4 8
But, suddenly, when I have more than 2 pages I get this
1
2
3
45678
45678 means that spells 4-8 are right next to each other, 5-8 do not go back to the top of the line. Any reasoning for this problem?
EDIT
I've revised the code, and instead of that giant 5-part if statement, it is one, but I still get the problem no matter. (Easier for whoever is reading it to help me)