1 #include <string.h> 2 #include <shadowdive/shadowdive.h> 3 #include "resources/af.h" 4 af_create(af * a,void * src)5void af_create(af *a, void *src) { 6 sd_af_file *sdaf = (sd_af_file*)src; 7 8 // Trivial stuff 9 a->id = sdaf->file_id; 10 a->endurance = sdaf->endurance; 11 a->health = sdaf->health; 12 a->forward_speed = sdaf->forward_speed; 13 a->reverse_speed = sdaf->reverse_speed; 14 a->jump_speed = sdaf->jump_speed; 15 a->fall_speed = sdaf->fall_speed; 16 17 // Sound translation table 18 memcpy(a->sound_translation_table, sdaf->soundtable, 30); 19 20 // Set defaults like master.dat 21 // TODO: These may change according to pilot and HAR... Find out how. 22 a->sound_translation_table[25] = 0; 23 a->sound_translation_table[26] = 0; 24 a->sound_translation_table[27] = 0; 25 26 // Moves 27 for(int i = 0; i < 70; i++) { 28 if(sdaf->moves[i] != NULL) { 29 af_move_create(&a->moves[i], (void*)sdaf->moves[i], i); 30 } else { 31 a->moves[i].id = -1; 32 } 33 } 34 } 35 af_get_move(af * a,int id)36af_move* af_get_move(af *a, int id) { 37 if(a->moves[id].id == -1) { 38 return NULL; 39 } 40 return &a->moves[id]; 41 } 42 af_free(af * a)43void af_free(af *a) { 44 for(int i = 0; i < 70; i++) { 45 if(a->moves[i].id != -1) { 46 af_move_free(&a->moves[i]); 47 } 48 } 49 } 50