示例#1
0
void bk_set_key(sd_bk_file *bk, const char **key, int kcount, const char *value) {
    int tmp = 0;
    switch(bk_key_get_id(key[0])) {
        case 0: bk->file_id = conv_udword(value); break;
        case 1: break; // TODO
        case 2: bk->unknown_a = conv_ubyte(value); break;
        case 3: 
            if(kcount == 2) {
                tmp = conv_ubyte(key[1]);
                if(tmp < 30) {
                    bk->soundtable[tmp] = conv_ubyte(value);
                } else {
                    printf("Soundtable index %d does not exist!\n", tmp);
                    return;
                }
            } else {
                printf("Soundtable value requires index parameter (eg. --key soundtable --key 3).\n");
                return;
            }
        break;
        default:
            printf("Unknown key!\n");
            return;
    }
    printf("Value set!\n");
}
示例#2
0
void anim_get_key(sd_animation *ani, int kn, const char **key, int kcount, int pcount) {
    int tmp = 0;
    switch(kn) {
        case 7:
            printf("%d\n", ani->null);
            break;
        case 8:
            if(kcount == 2) {
                tmp = conv_ubyte(key[1]);
                if(tmp < ani->coord_count) {
                    printf("x,y = (%d,%d), null = %d, frame_id = %d\n",
                            ani->coord_table[tmp].x,
                            ani->coord_table[tmp].y,
                            ani->coord_table[tmp].null,
                            ani->coord_table[tmp].frame_id);
                } else {
                    printf("Collision table index %d does not exist!\n", tmp);
                    return;
                }
            } else {
                for(int i = 0; i < ani->coord_count; i++) {
                    printf("x,y = (%d,%d), null = %d, frame_id = %d\n",
                            ani->coord_table[i].x,
                            ani->coord_table[i].y,
                            ani->coord_table[i].null,
                            ani->coord_table[i].frame_id);
                }
                printf("\n");
            }
            break;
        case 9:
            printf("%s\n", ani->anim_string);
            break;
        case 11:
            if(kcount == 2) {
                tmp = conv_ubyte(key[1]);
                if(tmp < ani->extra_string_count) {
                    printf("%s\n", ani->extra_strings[tmp]);
                } else {
                    printf("Extra string table index %d does not exist!\n", tmp);
                    return;
                }
            } else {
                for(int i = 0; i < ani->extra_string_count; i++) {
                    printf("%s ", ani->extra_strings[i]);
                }
                printf("\n");
            }
            break;
        case 12: printf("%d\n", ani->start_x); break;
        case 13: printf("%d\n", ani->start_y); break;
        default:
            printf("Unknown key!\n");
    }
}
示例#3
0
void sprite_set_key(sd_sprite *s, const char **key, int kcount, const char *value) {
    switch(sprite_key_get_id(key[0])) {
        case 0: s->pos_x = conv_word(value); break;
        case 1: s->pos_y = conv_word(value); break;
        case 2: s->index = conv_ubyte(value); break;
        case 3: s->missing = conv_ubyte(value); break;
        case 4: printf("Value setting not supported for this key.\n"); break;
        default:
            printf("Unknown key!\n");
            return;
    }
    printf("Value set!\n");
}
示例#4
0
void anim_strip_key(sd_animation *ani, int kn, const char **key, int kcount, const char *tag) {
    int tmp = 0;
    switch(kn) {
        case 9: 
            string_strip(ani->anim_string, tag);
            break;
        case 11:
            if(kcount == 2) {
                tmp = conv_ubyte(key[1]);
                if(tmp < ani->extra_string_count) {
                    string_strip(ani->extra_strings[tmp], tag);
                } else {
                    printf("Extra string table index %d does not exist!\n", tmp);
                    return;
                }
            } else {
                printf("Key extra_str requires 1 parameter!\n");
                return;
            }
            break;
        default:
            printf("Unknown key!\n");
            return;
    }
    printf("Tag stripped!\n");
}
示例#5
0
void bkanim_set_key(sd_bk_anim *bka, sd_animation *ani, const char **key, int kcount, const char *value) {
    int kn = bkanim_key_get_id(key[0]);
    switch(kn) {
        case 0:  bka->null = conv_ubyte(value); break;
        case 1:  bka->chain_hit = conv_ubyte(value); break;
        case 2:  bka->chain_no_hit = conv_ubyte(value); break;
        case 3:  bka->load_on_start = conv_ubyte(value); break;
        case 4:  bka->probability = conv_uword(value); break;
        case 5:  bka->hazard_damage = conv_ubyte(value); break;
        case 6:  set_bk_anim_string(bka, value); break;
        default:
            anim_set_key(ani, kn, key, kcount, value);
            return;
    }
    printf("Value set!\n");
}
示例#6
0
void anim_set_key(sd_animation *ani, int kn, const char **key, int kcount, const char *value) {
    int tmp = 0;
    switch(kn) {
        case 7:
            ani->null = conv_dword(value); break;
        case 8:
            /*if(kcount == 2) {
                tmp = conv_ubyte(key[1]);
                if(tmp < ani->col_coord_count) {
                    ani->col_coord_table[tmp] = conv_udword(value);
                } else {
                    printf("Overlay index %d does not exist!\n", tmp);
                    return;
                }
            } else {
                printf("Key overlay requires 1 parameter!\n");
                return;
            }*/
            printf("Coord value setting not supported yet!\n");
            break;
        case 9:  sd_animation_set_anim_string(ani, value); break;
        case 11:
            if(kcount == 2) {
                tmp = conv_ubyte(key[1]);
                if(tmp < ani->extra_string_count) {
                    sd_animation_set_extra_string(ani, tmp, value);
                } else {
                    printf("Extra string table index %d does not exist!\n", tmp);
                    return;
                }
            } else {
                printf("Key extra_str requires 1 parameter!\n");
                return;
            }
            break;
        case 12:  ani->start_x = conv_word(value); break;
        case 13:  ani->start_y = conv_word(value); break;
        default:
            printf("Unknown key!\n");
            return;
    }
    printf("Value set!\n");
}
示例#7
0
void bk_get_key(sd_bk_file *bk, const char **key, int kcount) {
    int tmp = 0;
    switch(bk_key_get_id(key[0])) {
        case 0: printf("%d\n", bk->file_id); break;
        case 1: printf("\n"); break; // TODO
        case 2: printf("%d\n", bk->unknown_a); break;
        case 3: 
            if(kcount == 2) {
                tmp = conv_ubyte(key[1]);
                if(tmp < 30) {
                    printf("%d\n", bk->soundtable[tmp]);
                } else {
                    printf("Soundtable index %d does not exist!\n", tmp);
                }
            } else {
                for(int i = 0; i < 30; i++) { printf("%d ", bk->soundtable[i]); } printf("\n"); 
            }
            break;
        default:
            printf("Unknown key!\n");
    }
}