Posted By: Muhsin
crash in my function, why? - 06/27/10 14:51
Hi!
I have tried to convert the Stratego 2 code from AUM11 to lite-c. but I get an crash in function "multiple_selection()". I think I have converted it wrong. can someone please help?
here is the original function:
--------------------------------
function multiple_selection()
{
while (1)
{
if (mouse_left == 1)
{
upper_left.visible = on;
upper_right.visible = on;
lower_left.visible = on;
lower_right.visible = on;
if (first_click == 0) // make sure that this "if" branch is executed only once
{
first_click = 1;
upper_left.pos_x = pointer.x; // store panel's position
upper_left.pos_y = pointer.y;
}
lower_right.pos_x = pointer.x; // store panel's position
lower_right.pos_y = pointer.y;
lower_left.pos_x = upper_left.pos_x; // store panel's position
lower_left.pos_y = lower_right.pos_y;
upper_right.pos_x = lower_right.pos_x; // store panel's position
upper_right.pos_y = upper_left.pos_y;
}
else // finished multiple selection
{
upper_left.visible = off;
upper_right.visible = off;
lower_left.visible = off;
lower_right.visible = off;
first_click = 0;
upleft_coords.x = upper_left.pos_x; // project upper_left's panel coords on the map
upleft_coords.y = upper_left.pos_y;
upleft_coords.z = camera_height;
vec_for_screen (upleft_coords, camera);
upright_coords.x = upper_right.pos_x; // project upper_left's panel coords on the map
upright_coords.y = upper_right.pos_y;
upright_coords.z = camera_height;
vec_for_screen (upright_coords, camera);
downleft_coords.x = lower_left.pos_x; // project upper_left's panel coords on the map
downleft_coords.y = lower_left.pos_y;
downleft_coords.z = camera_height;
vec_for_screen (downleft_coords, camera);
downright_coords.x = lower_right.pos_x; // project upper_left's panel coords on the map
downright_coords.y = lower_right.pos_y;
downright_coords.z = camera_height;
vec_for_screen (downright_coords, camera);
}
wait (1);
}
}
--------------------------------
and here is how I converted it:
--------------------------------
function multiple_selection()
{
while(1)
{
if(mouse_left == 1)
{
set(upper_left, SHOW);
set(upper_right, SHOW);
set(lower_left, SHOW);
set(lower_right, SHOW);
if(first_click == 0)
{
first_click = 1;
upper_left.pos_x = mouse_cursor.x; //pointer
upper_left.pos_y = mouse_cursor.y;
}
lower_right.pos_x = mouse_cursor.x; //pointer
lower_right.pos_y = mouse_cursor.y;
lower_left.pos_x = upper_left.pos_x;
lower_left.pos_y = lower_right.pos_y;
upper_right.pos_x = lower_right.pos_x;
upper_right.pos_y = upper_left.pos_y;
}
else
{
reset(upper_left, SHOW);
reset(upper_right, SHOW);
reset(lower_left, SHOW);
reset(lower_right, SHOW);
first_click = 0;
upleft_coords.x = upper_left.pos_x;
upleft_coords.y = upper_left.pos_y;
upleft_coords.z = camera_height;
vec_for_screen(upleft_coords, camera);
upright_coords.x = upper_right.pos_x;
upright_coords.y = upper_right.pos_y;
upright_coords.z = camera_height;
vec_for_screen(upright_coords, camera);
downleft_coords.x = lower_left.pos_x;
downleft_coords.y = lower_left.pos_y;
downleft_coords.z = camera_height;
vec_for_screen (downleft_coords, camera);
downright_coords.x = lower_right.pos_x;
downright_coords.y = lower_right.pos_y;
downright_coords.z = camera_height;
vec_for_screen (downright_coords, camera);
}
wait(1);
}
}
--------------------------------
can someone please help?
thanks!
- Muhsin Kaymak
I have tried to convert the Stratego 2 code from AUM11 to lite-c. but I get an crash in function "multiple_selection()". I think I have converted it wrong. can someone please help?
here is the original function:
--------------------------------
function multiple_selection()
{
while (1)
{
if (mouse_left == 1)
{
upper_left.visible = on;
upper_right.visible = on;
lower_left.visible = on;
lower_right.visible = on;
if (first_click == 0) // make sure that this "if" branch is executed only once
{
first_click = 1;
upper_left.pos_x = pointer.x; // store panel's position
upper_left.pos_y = pointer.y;
}
lower_right.pos_x = pointer.x; // store panel's position
lower_right.pos_y = pointer.y;
lower_left.pos_x = upper_left.pos_x; // store panel's position
lower_left.pos_y = lower_right.pos_y;
upper_right.pos_x = lower_right.pos_x; // store panel's position
upper_right.pos_y = upper_left.pos_y;
}
else // finished multiple selection
{
upper_left.visible = off;
upper_right.visible = off;
lower_left.visible = off;
lower_right.visible = off;
first_click = 0;
upleft_coords.x = upper_left.pos_x; // project upper_left's panel coords on the map
upleft_coords.y = upper_left.pos_y;
upleft_coords.z = camera_height;
vec_for_screen (upleft_coords, camera);
upright_coords.x = upper_right.pos_x; // project upper_left's panel coords on the map
upright_coords.y = upper_right.pos_y;
upright_coords.z = camera_height;
vec_for_screen (upright_coords, camera);
downleft_coords.x = lower_left.pos_x; // project upper_left's panel coords on the map
downleft_coords.y = lower_left.pos_y;
downleft_coords.z = camera_height;
vec_for_screen (downleft_coords, camera);
downright_coords.x = lower_right.pos_x; // project upper_left's panel coords on the map
downright_coords.y = lower_right.pos_y;
downright_coords.z = camera_height;
vec_for_screen (downright_coords, camera);
}
wait (1);
}
}
--------------------------------
and here is how I converted it:
--------------------------------
function multiple_selection()
{
while(1)
{
if(mouse_left == 1)
{
set(upper_left, SHOW);
set(upper_right, SHOW);
set(lower_left, SHOW);
set(lower_right, SHOW);
if(first_click == 0)
{
first_click = 1;
upper_left.pos_x = mouse_cursor.x; //pointer
upper_left.pos_y = mouse_cursor.y;
}
lower_right.pos_x = mouse_cursor.x; //pointer
lower_right.pos_y = mouse_cursor.y;
lower_left.pos_x = upper_left.pos_x;
lower_left.pos_y = lower_right.pos_y;
upper_right.pos_x = lower_right.pos_x;
upper_right.pos_y = upper_left.pos_y;
}
else
{
reset(upper_left, SHOW);
reset(upper_right, SHOW);
reset(lower_left, SHOW);
reset(lower_right, SHOW);
first_click = 0;
upleft_coords.x = upper_left.pos_x;
upleft_coords.y = upper_left.pos_y;
upleft_coords.z = camera_height;
vec_for_screen(upleft_coords, camera);
upright_coords.x = upper_right.pos_x;
upright_coords.y = upper_right.pos_y;
upright_coords.z = camera_height;
vec_for_screen(upright_coords, camera);
downleft_coords.x = lower_left.pos_x;
downleft_coords.y = lower_left.pos_y;
downleft_coords.z = camera_height;
vec_for_screen (downleft_coords, camera);
downright_coords.x = lower_right.pos_x;
downright_coords.y = lower_right.pos_y;
downright_coords.z = camera_height;
vec_for_screen (downright_coords, camera);
}
wait(1);
}
}
--------------------------------
can someone please help?
thanks!
- Muhsin Kaymak