Oni Central Forum

A forum for the Oni community

You are not logged in.

#1 06/14/08 15:06

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Menu System - need help!

UPDATED! Code fixed. Demo uploaded. Thanks guys.

http://www.youtube.com/watch?v=c5JEzKu-Ids

Current version: erm... .6 !

# config variables # 
var int number_of_menu = 3;
# starting variables #
var int level = 1;
var int movvar = 0;
var int curplace = 1;
var int menulevel = 1;
var int biggest_option = 9;
# blank menu variables (just in case)
var string itemtitle = " ";
var string item1 = " ";
var string item2 = " ";
var string item3 = " ";
var string item4 = " ";
var string item5 = " ";
var string item6 = " ";
var string item7 = " ";
var string item8 = " ";
var string item9 = " ";
var string item10 = "lol";
# blank "selected" menu variables
var string item1b = " ";
var string item2b = " ";
var string item3b = " ";
var string item4b = " ";
var string item5b = " ";
var string item6b = " ";
var string item7b = " ";
var string item8b = " ";
var string item9b = " ";
var string item10b = " ";

# Main. Pretty self explanitory
func void main(void)
{
fork menustart
}



# Menu starter. Pretty self explanitory. Only used for the very beginning.
func void menustart(void) {
fork menuvar
fork menu_ref
fork menuchange_fw
fork menuchange_bk
fork detbk
fork detect_fw


}
func void menuchange_fw(void) {
chr_wait_animtype(0, punch, punch2, punch3)
if (level < number_of_menu) {
level = level + 1
curplace = 1
}
fork menuvar
sleep 30
fork menuchange_fw
}
func void menuchange_bk(void) {
chr_wait_animtype(0, kick, kick2, kick3)
if (!(level eq 1)) {
level = level - 1
curplace = 1
}
fork menuvar
sleep 30
fork menuchange_bk
}
# Manu variable list
func void menuvar(void) {
if (level eq 1) { 
biggest_option = 10;
itemtitle = "[y. Menu system v.6]"
item1 = "One"
item2 = "Two"
item3 = "Three"
item4 = "Four"
item5 = "Five"
item6 = "Six"
item7 = "Seven"
item8 = "Eight"
item9 = "Nine"
item10 = "Zero"

item1b = "[r. One ]"
item2b = "[r. Two ]"
item3b = "[r. Three ]"
item4b = "[r. Four ]"
item5b = "[r. Five ]"
item6b = "[r. Six ]"
item7b = "[r. Seven ]"
item8b = "[r. Eight ]"
item9b = "[r. Nine ]"
item10b = "[r. Zero ]"
}
if (level eq 2) { 
biggest_option = 3;
itemtitle = "[y. This is a smaller menu ]"
item1 = "Alpha"
item2 = "Bravo"
item3 = "Charlie"
# As you can see, soem allowances have to be made for small menus.
item4 = "Alpha"
item5 = "Bravo"

item10 = "Charlie"

item1b = "[r. Alpha]"
item2b = "[r. Bravo]"
item3b = "[r. Charlie]"
item10b = "[r. Charlie]"
}
if (level eq 3) { 
biggest_option = 10;
itemtitle = "I just wanted another menu"
item1 = "[r. Apple ]"
item2 = "[y. Banana]"
item3 = "[o. Orange"
item4 = "[r. Cherries]"
item5 = "[y. Pikachu]"
item6 = "[c. Flan]"
item7 = "[b. These choices are nonsense]"
item8 = "[l. Jedi]"
item9 = "[r. Sith]"
item10 = "[u. Mango]"
item1b = "<[r. Apple ] >"
item2b = "<[y. Banana] >"
item3b = "<[o. Orange] >"
item4b = "<[r. Cherries] >"
item5b = "<[y. Pikachu] >"
item6b = "<[c. Flan] >"
item7b = "<[b. These choices are nonsense] >"
item8b = "<[l. Jedi] >"
item9b = "<[r. Sith] >"
item10b = "<[u. Mango] >"
}

}




# Menu rotator and refresher.
func void menu_ref(void) {
curplace= curplace - movvar;
movvar = 0;
if (curplace eq biggest_option + 1) curplace = 1
if (curplace eq 0) curplace = biggest_option
if (curplace eq 1) {
dmsg (itemtitle)
dmsg (item10)
dmsg (item1b)
dmsg (item2)
dmsg (item3)
}
if (curplace eq 2) {
dmsg (itemtitle)
dmsg (item1)
dmsg (item2b)
dmsg (item3)
dmsg (item4)
}
if (curplace eq 3) {
dmsg (itemtitle)
dmsg (item2)
dmsg (item3b)
dmsg (item4)
dmsg (item5)
}
if (curplace eq 4) {
dmsg (itemtitle)
dmsg (item3)
dmsg (item4b)
dmsg (item5)
dmsg (item6)
}
if (curplace eq 5) {
dmsg (itemtitle)
dmsg (item4)
dmsg (item5b)
dmsg (item6)
dmsg (item7)
}
if (curplace eq 6) {
dmsg (itemtitle)
dmsg (item5)
dmsg (item6b)
dmsg (item7)
dmsg (item8)
}
if (curplace eq 7) {
dmsg (itemtitle)
dmsg (item6)
dmsg (item7b)
dmsg (item8)
dmsg (item9)
}
if (curplace eq 8) {
dmsg (itemtitle)
dmsg (item7)
dmsg (item8b)
dmsg (item9)
dmsg (item10)
}
if (curplace eq 9) {
dmsg (itemtitle)
dmsg (item8)
dmsg (item9b)
dmsg (item10)
dmsg (item1)
}
if (curplace eq 10) {
dmsg (itemtitle)
dmsg (item9)
dmsg (item10b)
dmsg (item1)
dmsg (item2)
}
sleep 1
fork menu_ref
}


func void detbk(void) {
chr_wait_animtype(0, run_backwards, run_backwards_start)
movvar = -1
sleep 25
fork detbk
}

func void detect_fw(void) {
chr_wait_animtype(0, run, run_start)
movvar = 1
sleep 25
fork detect_fw
}

Last edited by Gumby (06/15/08 12:06)


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#2 06/14/08 20:06

Barneyhater
Member
From: New York City, NY, USA
Registered: 04/13/08
Website

Re: Menu System - need help!

There might be something wrong with my Oni then O_O. Doesn't work when I put it solo in EnvWarehouse, or when I put it in global folder and forked "menu_start" in dev mode. Both times they crashed Oni.


"It is not hatred but indifference that will destroy us." -Unknown
"One death is a tragedy. The death of a million is a statistic" -Joseph Stalin

Offline

#3 06/14/08 21:06

EdT
Moderator
From: Los Angeles, CA
Registered: 01/13/07
Website

Re: Menu System - need help!

Gumby: Take a look at the attachment, that is Oni Menu from the old forum, back in 2005.  Maybe it will give you some ideas.
Here is the link to the thread: http://oni.bungie.org/forums/index.php? … ge=0#pager

Now for some strange reason, it takes a long time to load, so be patient.

Offline

#4 06/14/08 22:06

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Re: Menu System - need help!

I was just looking over OTA's menu system...this one looks very nice however. Unfortunately, I am going for a different type of menu than that. I did notice that there is a pin option which I will implement into my menu.

Can you tell me why my menu blams Oni?


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#5 06/15/08 00:06

EdT
Moderator
From: Los Angeles, CA
Registered: 01/13/07
Website

Re: Menu System - need help!

Gumby: One way to troubleshoot is to start with a basic script, then slowly add code back to the script, until you find which part of the script is cauing Oni to crash.

Offline

#6 06/15/08 00:06

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Re: Menu System - need help!

I supppose. I was trying to avoid that. I guess I'll just add in functions one by one. I'll get on it big_smile

EDIT: Hah! Found it. I had one or two typoes...

...but mainly I was using wait instead of sleep. Wrong language sad

Last edited by Gumby (06/15/08 02:06)


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#7 06/15/08 10:06

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Re: Menu System - need help!

Updated!


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#8 06/15/08 12:06

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Re: Menu System - need help!

Sorry, bumping this again. 80% done.
http://www.youtube.com/watch?v=c5JEzKu-Ids


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

Board footer

Powered by FluxBB