| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- FindAnimations(result[], result_size, search[], offset, &max_offset) {
- new rows_added;
- if( isempty(search) ) {
- for(new animid = MIN_ANIM_ID + offset; animid <= MAX_ANIM_ID; animid ++) {
- if( rows_added >= result_size ) {
- break;
- }
- result[rows_added ++] = animid;
- }
- max_offset = MAX_ANIMS - 1;
- } else {
- format(g_QueryString, sizeof g_QueryString, "\
- SELECT animidx, \
- (SELECT COUNT(*) FROM anim_data WHERE animidx LIKE '%%%q%%' OR lib LIKE '%%%q%%' OR name LIKE '%%%q%%') AS max_rowcount \
- FROM anim_data \
- WHERE animidx LIKE '%%%q%%' OR lib LIKE '%%%q%%' OR name LIKE '%%%q%%' \
- LIMIT %i OFFSET %i",
- search, search, search,
- search, search, search,
- result_size, offset
- );
- g_DBResult = db_query(g_ResourceDB, g_QueryString);
- new result_rows = db_num_rows(g_DBResult);
- if( result_rows > 0 ) {
- max_offset = db_get_field_assoc_int(g_DBResult, "max_rowcount") - 1;
- if( max_offset < 0 ) {
- max_offset = 0;
- }
- }
- for(new row; row < result_rows; row ++) {
- if( rows_added >= result_size ) {
- break;
- }
- result[rows_added ++] = db_get_field_assoc_int(g_DBResult, "animidx");
- db_next_row(g_DBResult);
- }
- db_free_result(g_DBResult);
- }
- return rows_added;
- }
- GetAnimationIndex(lib[], name[]) {
- new index = INVALID_ANIM_INDEX;
- if( isempty(lib) || isempty(name) ) {
- return index;
- }
- format(g_QueryString, sizeof g_QueryString, "\
- SELECT animidx FROM anim_data WHERE lib = '%q' AND name = '%q' LIMIT 1", lib, name
- );
- g_DBResult = db_query(g_ResourceDB, g_QueryString);
- if( db_num_rows(g_DBResult) > 0 ) {
- index = db_get_field_int(g_DBResult);
- }
- db_free_result(g_DBResult);
- return index;
- }
|