/* * AUTOGENERATED - DO NOT MODIFY * Please edit test_script and re-run script_compiler.py to make changes */ // ====================== inlined C lines ======================== #include #include unsigned int _health; unsigned int _ammo; char _name[500]; void shoot_player(); unsigned int test_script_ai_simple_health; unsigned int test_script_ai_simple_ammo; // ====================== compatibility hacks ==================== #ifndef bool #define bool unsigned int #endif #ifndef false #define false 0 #endif #ifndef true #define true 1 #endif // ====================== forward declarations =================== bool test_script_ai_simple_act_heal(); bool test_script_ai_simple_act_reload(); unsigned int test_script_player_ammo(); char* test_script_player_name(); bool test_script_enemy_alive(); bool test_script_ai_simple_goal_stayloaded(); bool test_script_ai_simple_goal_killplayer(); bool test_script_player_alive(); bool test_script_ai_simple_goal_keephealthy(); bool test_script_ai_simple_act_pass(); unsigned int test_script_player_health(); bool test_script_ai_simple_act_fire(); bool test_script_playing(); unsigned int test_script_random_hit(); void test_script_proc_hooks(); // ====================== inlined C blocks ======================= void test_script_init_ai_simple() { test_script_ai_simple_health = 100; test_script_ai_simple_ammo = 20; } void shoot_player() { unsigned int _e_shot; test_script_ai_simple_ammo = test_script_ai_simple_ammo - 1; _e_shot = test_script_random_hit(); if (_health<_e_shot) { _health = 0; } else { _health = _health - _e_shot; } printf("Player lost %d health!\n",_e_shot); } char player_choice; int main() { unsigned int _shot; player_choice = 1; test_script_init_ai_simple(); printf("What is your name? "); if(gets(_name) == NULL) { printf("This should not happen!\n"); abort(); } _health = 100; _ammo = 20; printf("Ok %s, let's fight.....\n", _name); while(test_script_playing()) { if (player_choice != NULL) { printf("\n\n%s - %d health, %d ammo\nenemy - %d health, %d ammo\n",_name,_health,_ammo,test_script_ai_simple_health,test_script_ai_simple_ammo); printf("F)ire H)eal P)ass R)eload Q)uit\n"); } player_choice = NULL; player_choice = (char)getchar(); switch(player_choice) { case 'f': _shot = test_script_random_hit(); if(test_script_ai_simple_health < _shot) { test_script_ai_simple_health = 0; } else { test_script_ai_simple_health = test_script_ai_simple_health - _shot; } _ammo = _ammo - 1; break; case 'h': _health = _health + test_script_random_hit(); break; case 'p': printf("Doing nothing!\n"); break; case 'r': _ammo = _ammo + test_script_random_hit(); break; case 'q': exit(0); break; default: player_choice = NULL; break; } if (player_choice != NULL) test_script_proc_hooks(); } } void do_ai_simple_fire() { shoot_player(); } void do_ai_simple_reload() { test_script_ai_simple_ammo = test_script_ai_simple_ammo + test_script_random_hit(); } void do_ai_simple_heal() { test_script_ai_simple_health = test_script_ai_simple_health + test_script_random_hit(); } void do_ai_simple_pass() { printf(""); } // ====================== generated functions ==================== bool test_script_ai_simple_act_heal() { return (test_script_ai_simple_health<50) && (test_script_ai_simple_health>0); } bool test_script_ai_simple_act_reload() { return test_script_ai_simple_ammo < 5; } unsigned int test_script_player_ammo() { return _ammo; } char* test_script_player_name() { return _name; } bool test_script_enemy_alive() { return test_script_ai_simple_health>0; } bool test_script_ai_simple_goal_stayloaded() { return (test_script_ai_simple_ammo)==(20); } bool test_script_ai_simple_goal_killplayer() { return (test_script_player_alive())==(false); } bool test_script_player_alive() { return _health>0; } bool test_script_ai_simple_goal_keephealthy() { return (test_script_ai_simple_health)==(100); } bool test_script_ai_simple_act_pass() { return test_script_random_hit()>15; } unsigned int test_script_player_health() { return _health; } bool test_script_ai_simple_act_fire() { return (test_script_ai_simple_ammo>0); } bool test_script_playing() { return (test_script_player_alive()==true) && (test_script_enemy_alive()==true); } unsigned int test_script_random_hit() { return rand() % 20; } // ====================== hook stuff ============================= void test_script_proc_hooks() { if(test_script_ai_simple_act_pass()) { do_ai_simple_pass(); } if(test_script_ai_simple_act_heal()) { do_ai_simple_heal(); } if(test_script_ai_simple_act_reload()) { do_ai_simple_reload(); } if(test_script_ai_simple_act_fire()) { do_ai_simple_fire(); } }