- Fixed more major bugs, both in game and scenario editor.

- Removed all remnants of the password code (I think).
- The game is now almost ready for beta.

git-svn-id: http://openexile.googlecode.com/svn/trunk@49 4ebdad44-0ea0-11de-aab3-ff745001d230
This commit is contained in:
2009-05-02 20:25:13 +00:00
parent d60b8a7fb1
commit 1cbb12e1b8
25 changed files with 858 additions and 1433 deletions

View File

@@ -58,7 +58,7 @@ Rect terrain_rects[256],terrain_rect_base = {0,0,16,16},command_rects[21];
extern short cen_x, cen_y, cur_town;
extern eScenMode overall_mode;
extern bool mouse_button_held,editing_town;
extern short cur_viewing_mode,user_given_password;
extern short cur_viewing_mode;//,user_given_password;
extern cTown* town;
//extern big_tr_type t_d;
//extern short town_type; // 0 - big 1 - ave 2 - small
@@ -154,7 +154,7 @@ bool handle_action(Point the_point,EventRecord event) {
eScenMode old_mode;
Rect temp_rect;
unsigned long dummy;
//printf("Handling click at {v = %i,h = %i}\n",the_point.v,the_point.h);
//GlobalToLocal(&the_point);
if ((event.modifiers & cmdKey) != 0)
option_hit = true;
@@ -1217,14 +1217,14 @@ bool handle_action(Point the_point,EventRecord event) {
//draw_frames();
}
if ((get_ran(1,1,100) == 50) && (!check_p2(user_given_password))) {
fancy_choice_dialog(868,0);
return are_done;
}
if ((get_ran(1,1,100) == 50) && (!check_p3(user_given_password))) {
fancy_choice_dialog(868,0);
return are_done;
}
// if ((get_ran(1,1,100) == 50) && (!check_p2(user_given_password))) {
// fancy_choice_dialog(868,0);
// return are_done;
// }
// if ((get_ran(1,1,100) == 50) && (!check_p3(user_given_password))) {
// fancy_choice_dialog(868,0);
// return are_done;
// }
return are_done;
}
@@ -1278,9 +1278,11 @@ void handle_keystroke(char chr,char chr2,EventRecord event) {
// Point terrain_click[10] = {{150,185},{120,215},{150,215},{180,215},
// {120,185},{150,185},{180,185},
// {120,155},{150,155},{180,155}};
Point terrain_click[10] = {{0,0},{359,7},{359,50},{359,270},
{50,7},{206,150},{50,270},
{27,7},{27,50},{27,275}};
Point terrain_click[10] = {{0,0}, // 0
{353,10},{353,150},{353,270}, // 1 2 3
{190,10},{190,150},{190,270}, // 4 5 6
{21, 10},{21, 150},{21,270}, // 7 8 9
};
Point pass_point;
short i,j,store_ter;
bool are_done;

View File

@@ -16,7 +16,7 @@
extern short cen_x, cen_y,/* overall_mode,*/cur_town;
extern bool mouse_button_held;
extern short cur_viewing_mode,dialog_answer,given_password,user_given_password;
extern short cur_viewing_mode,dialog_answer;//,given_password,user_given_password;
extern cTown* town;
//extern short town_type; // 0 - big 1 - ave 2 - small
extern short max_dim[3];
@@ -2570,41 +2570,41 @@ bool build_scenario() {
// update_item_menu();
}
void user_password_filter (short item_hit) {
Str255 str;
short i;
switch (item_hit) {
case 4:
i = CDGN(802,2);
if ((i < 0) || (i > 30000)) {
give_error("The password must be from 0 to 30000.","",802);
break;
}
toast_dialog();
break;
}
}
short get_password() {
// ignore parent in Mac version
short town_strs_hit,i,store_dialog_answer;
Str255 temp_str,str2;
cd_create_dialog_parent_num(802,0);
CDSN(802,2,0);
town_strs_hit = cd_run_dialog();
CDGT(802,2,(char *) temp_str);
i = wd_to_pwd(temp_str);
cd_kill_dialog(802);
return i;
}
//void user_password_filter (short item_hit) {
// Str255 str;
// short i;
//
// switch (item_hit) {
// case 4:
// i = CDGN(802,2);
// if ((i < 0) || (i > 30000)) {
// give_error("The password must be from 0 to 30000.","",802);
// break;
// }
// toast_dialog();
// break;
//
// }
//}
//
//short get_password() {
// // ignore parent in Mac version
// short town_strs_hit,i,store_dialog_answer;
// Str255 temp_str,str2;
//
// cd_create_dialog_parent_num(802,0);
//
// CDSN(802,2,0);
//
// town_strs_hit = cd_run_dialog();
//
// CDGT(802,2,(char *) temp_str);
// i = wd_to_pwd(temp_str);
//
// cd_kill_dialog(802);
//
// return i;
//}
void set_starting_loc_filter (short item_hit) {
Str255 str;
@@ -2729,58 +2729,58 @@ void edit_scenario_events() {
cd_kill_dialog(811);
}
void give_password_filter (short item_hit) {
Str255 str;
short i;
switch (item_hit) {
default:
toast_dialog();
break;
}
}
short enter_password() {
// ignore parent in Mac version
short town_strs_hit,i,store_dialog_answer;
Str255 temp_str,str2;
cd_create_dialog_parent_num(823,0);
CDSN(823,2,0);
town_strs_hit = cd_run_dialog();
CDGT(823,2,(char *) temp_str);
i = wd_to_pwd(temp_str);
given_password = user_given_password = i;
cd_kill_dialog(823);
return i;
}
short wd_to_pwd(Str255 str) {
char pwd[8] = "aaaaaa";
short i;
long val = 0,pow[6] = {1,10,100,1000,9999,99999};
for (i = 0; i < 6; i++) {
if (str[i] == 0)
i = 6;
else {
if ((str[i] >= 65) && (str[i] <= 90))
pwd[i] = str[i] + 32;
else if ((str[i] >= 48) && (str[i] <= 57))
pwd[i] = str[i] + 49;
else if ((str[i] >= 97) && (str[i] <= 122))
pwd[i] = str[i];
}
}
for (i = 0; i < 6; i++)
val = val + pow[i] * (long) (pwd[i] - 97);
val = val % 30000;
return (short) val;
}
//void give_password_filter (short item_hit) {
// Str255 str;
// short i;
//
// switch (item_hit) {
// default:
//
// toast_dialog();
// break;
//
// }
//}
//
//short enter_password() {
// // ignore parent in Mac version
// short town_strs_hit,i,store_dialog_answer;
// Str255 temp_str,str2;
//
// cd_create_dialog_parent_num(823,0);
//
// CDSN(823,2,0);
//
// town_strs_hit = cd_run_dialog();
//
// CDGT(823,2,(char *) temp_str);
// i = wd_to_pwd(temp_str);
// given_password = user_given_password = i;
//
// cd_kill_dialog(823);
//
// return i;
//}
//
//short wd_to_pwd(Str255 str) {
// char pwd[8] = "aaaaaa";
// short i;
// long val = 0,pow[6] = {1,10,100,1000,9999,99999};
//
// for (i = 0; i < 6; i++) {
// if (str[i] == 0)
// i = 6;
// else {
// if ((str[i] >= 65) && (str[i] <= 90))
// pwd[i] = str[i] + 32;
// else if ((str[i] >= 48) && (str[i] <= 57))
// pwd[i] = str[i] + 49;
// else if ((str[i] >= 97) && (str[i] <= 122))
// pwd[i] = str[i];
// }
// }
// for (i = 0; i < 6; i++)
// val = val + pow[i] * (long) (pwd[i] - 97);
// val = val % 30000;
// return (short) val;
//}

View File

@@ -49,18 +49,18 @@ void put_make_scen_2_in_dlog();
short edit_make_scen_1(char *filename,char *title,short *grass);
void edit_make_scen_1_event_filter (short item_hit);
void put_make_scen_1_in_dlog();
short get_password();
void give_password_filter (short item_hit);
//short get_password();
//void give_password_filter (short item_hit);
void edit_scenario_events();
void edit_scenario_events_event_filter (short item_hit);
void put_scenario_events_in_dlog();
bool save_scenario_events();
short enter_password();
//short enter_password();
bool build_scenario();
void set_starting_loc_filter (short item_hit);
void set_starting_loc();
void edit_boats_event_filter (short item_hit);
void edit_boats();
void user_password_filter (short item_hit);
short wd_to_pwd(Str255 str);
//void user_password_filter (short item_hit);
//short wd_to_pwd(Str255 str);

View File

@@ -22,7 +22,7 @@ extern cScenario scenario;
DialogPtr the_dialog;
extern cTown* town;
//extern short town_type, max_dim[3]; // 0 - big 1 - ave 2 - small
extern short cur_town,/*overall_mode,*/given_password,user_given_password;
extern short cur_town;//overall_mode,given_password,user_given_password;
extern location cur_out;
//extern piles_of_stuff_dumping_type *data_store;
//extern cSpeech talking;
@@ -1115,203 +1115,203 @@ void make_new_scenario(Str255 file_name,short out_width,short out_height,short m
printf("Scenario not created; creation is currently disabled.\n");
}
bool check_p (short pword) {
if (scenario.flag_b != town_s(pword))
return false;
if (scenario.flag_c != out_s(pword))
return false;
if (scenario.flag_e != str_size_1(pword))
return false;
if (scenario.flag_f != str_size_2(pword))
return false;
if (scenario.flag_h != str_size_3(pword))
return false;
if (scenario.flag_d != init_data(pword))
return false;
return true;
}
bool check_p2 (short pword) {
if (scenario.flag_b != town_s(pword))
return false;
if (scenario.flag_c != out_s(pword))
return false;
if (scenario.flag_e != str_size_1(pword))
return false;
if (scenario.flag_f != str_size_2(pword))
return false;
if (scenario.flag_h != str_size_3(pword))
return false;
if (scenario.flag_d != init_data(pword))
return false;
return true;
}
bool check_p3 (short pword) {
if (scenario.flag_b != town_s(pword))
return false;
if (scenario.flag_c != out_s(pword))
return false;
if (scenario.flag_e != str_size_1(pword))
return false;
if (scenario.flag_f != str_size_2(pword))
return false;
if (scenario.flag_h != str_size_3(pword))
return false;
if (scenario.flag_d != init_data(pword))
return false;
return true;
}
bool import_check_p (short flag_d,short pword) {
if (flag_d != init_data(pword))
return false;
return true;
}
short init_data(short flag) {
long k = 0;
k = (long) flag;
k = k * k;
jl = jl * jl + 84 + k;
k = k + 51;
jl = jl * 2 + 1234 + k;
k = k % 3000;
jl = jl * 54;
jl = jl * 2 + 1234 + k;
k = k * 82;
k = k % 10000;
k = k + 10000;
return (short) k;
}
short town_s(short flag) {
long k = 0;
k = (long) flag;
k = k * k * k;
jl = jl * 54;
jl = jl * 2 + 1234 + k;
k = k + 51;
k = k % 3000;
jl = jl * 2 + 1234 + k;
k = k * scenario.num_towns;
k = k % 10000;
jl = jl * jl + 84 + k;
k = k + 10000;
return (short) k;
}
short out_s(short flag) {
long k = 0;
k = (long) flag;
k = k * k * k;
jl = jl * jl + 84 + k;
k = k + scenario.out_data_size[0][1];
k = k % 3000;
k = k * 4;
jl = jl * 2 + 1234 + k;
jl = jl * 54;
jl = jl * 2 + 1234 + k;
k = k % 10000;
k = k + 4;
return (short) k;
}
short str_size_1(short flag) {
long k = 0;
k = (long) flag;
k = k * k;
jl = jl * 2 + 1234 + k;
jl = jl * jl + 84 + k;
k = k + scenario.scen_str_len[0] + scenario.scen_str_len[1] + scenario.scen_str_len[2];
jl = jl * 2 + 1234 + k;
k = k % 3000;
jl = jl * 54;
jl = jl * jl + 84 + k;
k = k * 4;
k = k % 5000;
k = k - 9099;
return (short) k;
}
short str_size_2(short flag) {
long k = 0;
k = (long) flag;
jl = jl * jl + 84 + k;
k = k * k * k * k;
jl = jl * 54;
k = k + 80;
k = k % 3000;
jl = jl * 2 + 1234 + k;
k = k * scenario.out_width * scenario.out_height;
jl = jl * jl + 84 + k;
k = k % 3124;
k = k - 5426;
return (short) k;
}
short str_size_3(short flag) {
long k = 0;
k = (long) flag;
k = k * (scenario.town_data_size[0][0] + scenario.town_data_size[0][1] + scenario.town_data_size[0][2] + scenario.town_data_size[0][3]);
k = k + 80;
jl = jl * jl + 84 + k;
k = k % 3000;
jl = jl * 2 + 1234 + k;
k = k * 45;
jl = jl * 54;
jl = jl * jl + 84 + k;
k = k % 887;
k = k + 9452;
return (short) k;
}
short get_buf_ptr(short flag) {
long k = 0;
k = (long) flag;
jl = jl * jl + 84 + k;
k = k * (scenario.out_width + scenario.out_width + scenario.out_height + scenario.town_data_size[0][3]);
k = k + 80;
jl = jl * jl + 84 + k;
k = k % 2443;
jl = jl * 54;
k = k * 322;
jl = jl * 2 + 1234 + k;
k = k % 2542;
jl = jl * jl + 84 + k;
k = k + 234;
return (short) k;
}
void reset_pwd() {
// now flags
scenario.flag_a = sizeof(scenario_header_flags) + sizeof(legacy::scenario_data_type) + get_ran(1,-1000,1000);
scenario.flag_b = town_s(user_given_password);
scenario.flag_c = out_s(user_given_password);
scenario.flag_e = str_size_1(user_given_password);
scenario.flag_f = str_size_2(user_given_password);
scenario.flag_h = str_size_3(user_given_password);
scenario.flag_g = 10000 + get_ran(1,0,5000);
scenario.flag_d = init_data(user_given_password);
}
//bool check_p (short pword) {
// if (scenario.flag_b != town_s(pword))
// return false;
// if (scenario.flag_c != out_s(pword))
// return false;
// if (scenario.flag_e != str_size_1(pword))
// return false;
// if (scenario.flag_f != str_size_2(pword))
// return false;
// if (scenario.flag_h != str_size_3(pword))
// return false;
// if (scenario.flag_d != init_data(pword))
// return false;
//
// return true;
//}
//
//bool check_p2 (short pword) {
// if (scenario.flag_b != town_s(pword))
// return false;
// if (scenario.flag_c != out_s(pword))
// return false;
// if (scenario.flag_e != str_size_1(pword))
// return false;
// if (scenario.flag_f != str_size_2(pword))
// return false;
// if (scenario.flag_h != str_size_3(pword))
// return false;
// if (scenario.flag_d != init_data(pword))
// return false;
//
// return true;
//}
//
//bool check_p3 (short pword) {
// if (scenario.flag_b != town_s(pword))
// return false;
// if (scenario.flag_c != out_s(pword))
// return false;
// if (scenario.flag_e != str_size_1(pword))
// return false;
// if (scenario.flag_f != str_size_2(pword))
// return false;
// if (scenario.flag_h != str_size_3(pword))
// return false;
// if (scenario.flag_d != init_data(pword))
// return false;
//
// return true;
//}
//
//bool import_check_p (short flag_d,short pword) {
//
// if (flag_d != init_data(pword))
// return false;
//
// return true;
//}
//short init_data(short flag) {
// long k = 0;
//
// k = (long) flag;
// k = k * k;
// jl = jl * jl + 84 + k;
// k = k + 51;
// jl = jl * 2 + 1234 + k;
// k = k % 3000;
// jl = jl * 54;
// jl = jl * 2 + 1234 + k;
// k = k * 82;
// k = k % 10000;
// k = k + 10000;
//
// return (short) k;
//}
//
//short town_s(short flag) {
// long k = 0;
//
// k = (long) flag;
// k = k * k * k;
// jl = jl * 54;
// jl = jl * 2 + 1234 + k;
// k = k + 51;
// k = k % 3000;
// jl = jl * 2 + 1234 + k;
// k = k * scenario.num_towns;
// k = k % 10000;
// jl = jl * jl + 84 + k;
// k = k + 10000;
//
// return (short) k;
//}
//
//short out_s(short flag) {
// long k = 0;
//
// k = (long) flag;
// k = k * k * k;
// jl = jl * jl + 84 + k;
// k = k + scenario.out_data_size[0][1];
// k = k % 3000;
// k = k * 4;
// jl = jl * 2 + 1234 + k;
// jl = jl * 54;
// jl = jl * 2 + 1234 + k;
// k = k % 10000;
// k = k + 4;
//
// return (short) k;
//}
//
//short str_size_1(short flag) {
// long k = 0;
//
// k = (long) flag;
// k = k * k;
// jl = jl * 2 + 1234 + k;
// jl = jl * jl + 84 + k;
// k = k + scenario.scen_str_len[0] + scenario.scen_str_len[1] + scenario.scen_str_len[2];
// jl = jl * 2 + 1234 + k;
// k = k % 3000;
// jl = jl * 54;
// jl = jl * jl + 84 + k;
// k = k * 4;
// k = k % 5000;
// k = k - 9099;
//
// return (short) k;
//}
//
//short str_size_2(short flag) {
// long k = 0;
//
// k = (long) flag;
// jl = jl * jl + 84 + k;
// k = k * k * k * k;
// jl = jl * 54;
// k = k + 80;
// k = k % 3000;
// jl = jl * 2 + 1234 + k;
// k = k * scenario.out_width * scenario.out_height;
// jl = jl * jl + 84 + k;
// k = k % 3124;
// k = k - 5426;
//
// return (short) k;
//}
//
//short str_size_3(short flag) {
// long k = 0;
//
// k = (long) flag;
// k = k * (scenario.town_data_size[0][0] + scenario.town_data_size[0][1] + scenario.town_data_size[0][2] + scenario.town_data_size[0][3]);
// k = k + 80;
// jl = jl * jl + 84 + k;
// k = k % 3000;
// jl = jl * 2 + 1234 + k;
// k = k * 45;
// jl = jl * 54;
// jl = jl * jl + 84 + k;
// k = k % 887;
// k = k + 9452;
//
// return (short) k;
//}
//
//short get_buf_ptr(short flag) {
// long k = 0;
//
// k = (long) flag;
// jl = jl * jl + 84 + k;
// k = k * (scenario.out_width + scenario.out_width + scenario.out_height + scenario.town_data_size[0][3]);
// k = k + 80;
// jl = jl * jl + 84 + k;
// k = k % 2443;
// jl = jl * 54;
// k = k * 322;
// jl = jl * 2 + 1234 + k;
// k = k % 2542;
// jl = jl * jl + 84 + k;
// k = k + 234;
//
// return (short) k;
//}
//
//void reset_pwd() {
// // now flags
// scenario.flag_a = sizeof(scenario_header_flags) + sizeof(legacy::scenario_data_type) + get_ran(1,-1000,1000);
// scenario.flag_b = town_s(user_given_password);
// scenario.flag_c = out_s(user_given_password);
// scenario.flag_e = str_size_1(user_given_password);
// scenario.flag_f = str_size_2(user_given_password);
// scenario.flag_h = str_size_3(user_given_password);
// scenario.flag_g = 10000 + get_ran(1,0,5000);
// scenario.flag_d = init_data(user_given_password);
//}
void start_data_dump() {
short i;

View File

@@ -10,18 +10,18 @@ void make_new_scenario(Str255 file_name,short out_width,short out_height,short m
short use_grass);
void oops_error(short error);
short init_data(short flag);
short town_s(short flag);
short out_s(short flag);
short str_size_1(short flag);
short str_size_2(short flag);
short str_size_3(short flag);
short get_buf_ptr(short flag);
bool check_p (short pword);
bool check_p2 (short pword);
bool check_p3 (short pword);
//short init_data(short flag);
//short town_s(short flag);
//short out_s(short flag);
//short str_size_1(short flag);
//short str_size_2(short flag);
//short str_size_3(short flag);
//short get_buf_ptr(short flag);
//bool check_p (short pword);
//bool check_p2 (short pword);
//bool check_p3 (short pword);
void reset_pwd();
void start_data_dump();
bool import_check_p (short pword);
//bool import_check_p (short pword);
void scen_text_dump();

View File

@@ -165,7 +165,7 @@ void init_dialogs(){
cd_register_event_filter(973,display_strings_event_filter);
cd_register_event_filter(800,edit_make_scen_1_event_filter);
cd_register_event_filter(801,edit_make_scen_2_event_filter);
cd_register_event_filter(802,user_password_filter);
//cd_register_event_filter(802,user_password_filter);
cd_register_event_filter(803,edit_scen_details_event_filter);
cd_register_event_filter(804,edit_scen_intro_event_filter);
cd_register_event_filter(805,set_starting_loc_filter);
@@ -186,7 +186,7 @@ void init_dialogs(){
cd_register_event_filter(820,choose_text_res_event_filter);
cd_register_event_filter(821,edit_basic_dlog_event_filter);
cd_register_event_filter(822,edit_spec_enc_event_filter);
cd_register_event_filter(823,give_password_filter);
//cd_register_event_filter(823,give_password_filter);
cd_register_event_filter(824,edit_item_abil_event_filter);
cd_register_event_filter(825,edit_special_num_event_filter);
cd_register_event_filter(826,edit_spec_text_event_filter);
@@ -1106,9 +1106,9 @@ void place_location() {
//EraseRect(&text_rect);
SetPort( terrain_buttons_gworld);
erase_rect.left = terrain_rects[255].left + 17;
erase_rect.left = 2;//terrain_rects[255].left + 17;
erase_rect.right = RIGHT_AREA_WIDTH - 1;
erase_rect.top = terrain_rects[255].top + 12 - 9;
erase_rect.top = terrain_rects[255].top + 26 - 9;//12 - 9;
erase_rect.bottom = erase_rect.top + 12;
FillCRect(&erase_rect,bg[17]);

View File

@@ -37,8 +37,8 @@ short mode_count = 0;
MenuHandle apple_menu;
cOutdoors current_terrain;
//cSpeech talking;
short given_password;
short user_given_password = -1;
//short given_password;
//short user_given_password = -1;
short pixel_depth,old_depth = 8;
unsigned char border1 = 90, border2 = 90; // kludgy thing ... leave right here, before borders
@@ -434,11 +434,11 @@ void handle_scenario_menu(int item_hit) {
set_starting_loc();
break;
case 6: // Change Password
if (check_p(user_given_password) == true) {
user_given_password = get_password();
given_password = true;
}
//give_error("Passwords have been disabled; they are no longer necessary.","",0);
// if (check_p(user_given_password) == true) {
// user_given_password = get_password();
// given_password = true;
// }
give_error("Passwords have been disabled; they are no longer necessary.","",0);
break;
case 9: // Edit Special Nodes
SetControlValue(right_sbar,0);

View File

@@ -12,7 +12,7 @@
#include "scen.fileio.h"
#include "mathutil.h"
extern short cen_x, cen_y, overall_mode,user_given_password;
extern short cen_x, cen_y, overall_mode;//,user_given_password;
extern bool mouse_button_held,editing_town;
extern short cur_viewing_mode;
extern cTown* town;
@@ -1638,14 +1638,14 @@ void delete_last_town() {
scenario.town_data_size[scenario.num_towns][2] = 0;
scenario.town_data_size[scenario.num_towns][3] = 0;
scenario.town_data_size[scenario.num_towns][4] = 0;
scenario.flag_a = 41942 /*sizeof(scenario_data_type)*/ + get_ran(1,-1000,1000);
scenario.flag_b = town_s(user_given_password);
scenario.flag_c = out_s(user_given_password);
scenario.flag_e = str_size_1(user_given_password);
scenario.flag_f = str_size_2(user_given_password);
scenario.flag_h = str_size_3(user_given_password);
scenario.flag_g = 10000 + get_ran(1,0,5000);
scenario.flag_d = init_data(user_given_password);
//scenario.flag_a = 41942 /*sizeof(scenario_data_type)*/ + get_ran(1,-1000,1000);
//scenario.flag_b = town_s(user_given_password);
//scenario.flag_c = out_s(user_given_password);
//scenario.flag_e = str_size_1(user_given_password);
//scenario.flag_f = str_size_2(user_given_password);
//scenario.flag_h = str_size_3(user_given_password);
//scenario.flag_g = 10000 + get_ran(1,0,5000);
//scenario.flag_d = init_data(user_given_password);
save_scenario();
}