The Dink Network

Reply to Duplicate coding in a script?

If you don't have an account, just leave the password field blank.
Username:
Password:
Subject:
Antispam: Enter Dink Smallwood's last name (surname) below.
Formatting: :) :( ;( :P ;) :D >( : :s :O evil cat blood
Bold font Italic font hyperlink Code tags
Message:
 
 
January 5th 2016, 12:20 AM
dinkdead.gif
millimeter
Peasant He/Him Canada
Millimeter is Wee-Lamm, Recording Artist. :-) 
In reading through many scripts, and especially those requiring the player to make a game changing choice, there seems to be a habit of including duplicate steps in all options of the choice. In my mind, it would make more sense to have each option only deal with the things it changes, then have them all drop through to a common code block for the bits that are the same, regardless of which choice was made.

The following excerpt has been taken from a script here, and I have followed it with how I would rewrite it based on my assumption above. If there is some reason why my rewrite would function differently than the original, I would appreciate someone pointing it out for me.

{
...
choice_end()

if (&result == 1)
{
&wimp = 1;
show_bmp("graphics\easy.bmp", 0, 0);
freeze(1);
script_attach(1000);
wait(500);
fade_down();
&player_map = 4;
sp_x(1, 310);
sp_y(1, 245);
sp_dir(1, 8);
load_screen();
draw_screen();
draw_status();
fade_up();
kill_this_task();
}

if (&result == 2)
{
&wimp = 2;
show_bmp("graphics\hard.bmp", 0, 0);
freeze(1);
script_attach(1000);
wait(500);
fade_down();
&player_map = 4;
sp_x(1, 310);
sp_y(1, 245);
sp_dir(1, 8);
load_screen();
draw_screen();
draw_status();
fade_up();
kill_this_task();
}

}


I would rather script it this way, unless there is a compelling reason not to.
{
...
choice_end()
if (&result == 1)
{
&wimp = 1;
show_bmp("graphics\easy.bmp", 0, 0);
}
if (&result == 2)
{
&wimp = 2;
show_bmp("graphics\hard.bmp", 0, 0);
}
freeze(1);
script_attach(1000);
wait(500);
fade_down();
&player_map = 4;
sp_x(1, 310);
sp_y(1, 245);
sp_dir(1, 8);
load_screen();
draw_screen();
draw_status();
fade_up();
kill_this_task();
}


Tia,
Mm.