diff options
author | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-09-27 01:31:16 +0000 |
---|---|---|
committer | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-09-27 01:31:16 +0000 |
commit | 56ac0e19a27da8a0d1531e5c96a6c6b0d6845642 (patch) | |
tree | 302fe5e7d1c7252b50d2c3965d3f4dae84dfa3fd /crawl-ref/source/tile2.cc | |
parent | 064219342d20ef7091691bf387b7c29c31f603c8 (diff) | |
download | crawl-ref-56ac0e19a27da8a0d1531e5c96a6c6b0d6845642.tar.gz crawl-ref-56ac0e19a27da8a0d1531e5c96a6c6b0d6845642.zip |
Removing code and documentation for player doll editing screen. It might come back at a later point (post-0.5?), but there are more important bugs and features to consider in the meantime rather than just blindly trying for parity with 0.4.x's features.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7030 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/tile2.cc')
-rw-r--r-- | crawl-ref/source/tile2.cc | 582 |
1 files changed, 2 insertions, 580 deletions
diff --git a/crawl-ref/source/tile2.cc b/crawl-ref/source/tile2.cc index 3e6b3bed3f..3105716c2d 100644 --- a/crawl-ref/source/tile2.cc +++ b/crawl-ref/source/tile2.cc @@ -378,586 +378,8 @@ void TileLoadWall(bool wizard) } } -#define DOLLS_MAX 11 -#define PARTS_DISP_MAX 11 -#define PARTS_ITEMS 12 -#define TILEP_SELECT_DOLL 20 - -static dolls_data current_doll; -#if 0 -static int current_gender = 0; - -static void _load_doll_data(const char *fn, dolls_data *dolls, int max, - int *mode, int *cur) -{ - char fbuf[1024]; - int cur0 = 0; - int mode0 = TILEP_M_DEFAULT; - FILE *fp = NULL; - - std::string dollsTxtString = datafile_path(fn, false, true); - const char *dollsTxt = (dollsTxtString.c_str()[0] == 0) ? - "dolls.txt" : dollsTxtString.c_str(); - - if ( (fp = fopen(dollsTxt, "r")) == NULL ) - { - // File doesn't exist. By default, use show equipment defaults. - // This will be saved out (if possible.) - - for (int i = 0; i < max; i++) - { - // Don't take gender too seriously. -- Enne - tilep_race_default(you.species, coinflip() ? 1 : 0, - you.experience_level, dolls[i].parts); - - dolls[i].parts[TILEP_PART_SHADOW] = TILEP_SHADOW_SHADOW; - dolls[i].parts[TILEP_PART_CLOAK] = TILEP_SHOW_EQUIP; - dolls[i].parts[TILEP_PART_BOOTS] = TILEP_SHOW_EQUIP; - dolls[i].parts[TILEP_PART_LEG] = TILEP_SHOW_EQUIP; - dolls[i].parts[TILEP_PART_BODY] = TILEP_SHOW_EQUIP; - dolls[i].parts[TILEP_PART_ARM] = TILEP_SHOW_EQUIP; - dolls[i].parts[TILEP_PART_HAND1] = TILEP_SHOW_EQUIP; - dolls[i].parts[TILEP_PART_HAND2] = TILEP_SHOW_EQUIP; - dolls[i].parts[TILEP_PART_HAIR] = TILEP_SHOW_EQUIP; - dolls[i].parts[TILEP_PART_BEARD] = TILEP_SHOW_EQUIP; - dolls[i].parts[TILEP_PART_HELM] = TILEP_SHOW_EQUIP; - } - - } - else - { - memset(fbuf, 0, sizeof(fbuf)); - if (fscanf(fp, "%s", fbuf) != EOF) - { - if (strcmp(fbuf, "MODE=LOADING") == 0) - mode0 = TILEP_M_LOADING; - } - if (fscanf(fp, "%s", fbuf) != EOF) - { - if (strncmp(fbuf, "NUM=", 4) == 0) - { - sscanf(fbuf, "NUM=%d",&cur0); - if ( (cur0 < 0)||(cur0 > 10) ) - cur0 = 0; - } - } - if (max == 1) - { - for (int j = 0; j <= cur0; j++) - { - if (fscanf(fp, "%s", fbuf) != EOF) - tilep_scan_parts(fbuf, dolls[0].parts); - else - break; - } - } - else - { - for (int j = 0; j < max; j++) - { - if (fscanf(fp, "%s", fbuf) != EOF) - tilep_scan_parts(fbuf, dolls[j].parts); - else - break; - } - } - - fclose(fp); - } - *mode = mode0; - *cur = cur0; - - current_gender = dolls[cur0].parts[TILEP_PART_BASE] % 2; -} -#endif - -void TilePlayerEdit() -{ -#if 0 - const int p_lines[PARTS_ITEMS] = - { - TILEP_SELECT_DOLL, - TILEP_PART_BASE, - TILEP_PART_HELM, - TILEP_PART_HAIR, - TILEP_PART_BEARD, - TILEP_PART_HAND1, - TILEP_PART_HAND2, - TILEP_PART_ARM, - TILEP_PART_BODY, - TILEP_PART_LEG, - TILEP_PART_BOOTS, - TILEP_PART_CLOAK - }; - - const char *p_names[PARTS_ITEMS] = - { - " Index:", - " Gendr:", - " Helm :", - " Hair :", - " Beard:", - " Weapn:", - " Shild:", - " Glove:", - " Armor:", - " Legs :", - " Boots:", - " Cloak:" - }; - - const char *gender_name[2] = { - "Male", - "Fem " - }; - -#define display_parts_idx(part) \ -{ \ - cgotoxy(10 , part + 1, GOTO_STAT); \ - tilep_part_to_str(dolls[cur_doll].parts[ p_lines[part] ], ibuf);\ - cprintf(ibuf);\ -} - - dolls_data dolls[DOLLS_MAX], undo_dolls[DOLLS_MAX]; - int copy_doll[TILEP_PART_MAX]; - - //int parts[TILEP_PART_MAX]; - int i, j, x, y, kin, done = 0; - int cur_doll = 0; - int pre_part = 0; - int cur_part = 0; - int mode = TILEP_M_DEFAULT; - int d = 0; - FILE *fp; - char fbuf[80], ibuf[8]; - int tile_str, sx, sy; - - img_type PartsImg = ImgCreateSimple(TILE_X * PARTS_DISP_MAX, TILE_Y * 1); - - img_type DollsListImg = ImgCreateSimple( TILE_X * DOLLS_MAX, TILE_Y * 1); - - ImgClear(ScrBufImg); - - memset( copy_doll, 0, sizeof(dolls_data) ); - tilep_race_default(you.species, current_gender, - you.experience_level, copy_doll); - - for (j = 0; j < DOLLS_MAX; j++) - { - memset( dolls[j].parts, 0, sizeof(dolls_data) ); - memset( undo_dolls[j].parts, 0, sizeof(dolls_data) ); - tilep_race_default(you.species, current_gender, you.experience_level, - dolls[j].parts); - tilep_race_default(you.species, current_gender, you.experience_level, - undo_dolls[j].parts); - } - - // load settings - _load_doll_data("dolls.txt", dolls, DOLLS_MAX, &mode, &cur_doll); - for (j = 0; j < DOLLS_MAX; j++) - undo_dolls[j] = dolls[j]; - - clrscr(); - cgotoxy(1,1, GOTO_MSG); - mpr("Select Part : [j][k]or[up][down]"); - mpr("Change Part/Page : [h][l]or[left][right]/[H][L]"); - mpr("Class-Default : [CTRL]+[D]"); - mpr("Toggle Equipment Mode : [*]"); - mpr("Take off/Take off All : [t]/[CTRL]+[T]"); - mpr("Copy/Paste/Undo : [CTRL]+[C]/[CTRL]+[V]/[CTRL]+[Z]"); - mpr("Randomize : [CTRL]+[R]"); - - cgotoxy(1, 8, GOTO_MSG); - cprintf("Toggle Startup mode : [m] (Current mode:%s)", - (mode == TILEP_M_LOADING ? "Load User's Settings" - : "Class Default" )); - for (j = 0; j < PARTS_ITEMS; j++) - { - cgotoxy(1, 1+j, GOTO_STAT); - cprintf(p_names[j]); - } - -#define PARTS_Y (TILE_Y*11) - -// draw strings "Dolls/Parts" into backbuffer - tile_str = TILE_TEXT_PARTS_E; - sx = (tile_str % TILE_PER_ROW) * TILE_X; - sy = (tile_str / TILE_PER_ROW) * TILE_Y; - - ImgCopy(TileImg, sx, sy, TILE_X, TILE_Y/2, - ScrBufImg, (TILE_X * 3) - 8,(TILE_Y * 4) - 8-24, 0); - ImgCopy(TileImg, sx, sy+ TILE_Y/2, TILE_X, TILE_Y/2, - ScrBufImg, (TILE_X * 4) - 8,(TILE_Y * 4) - 8-24, 0); - - tile_str = TILE_TEXT_DOLLS_E; - sx = (tile_str % TILE_PER_ROW) * TILE_X; - sy = (tile_str / TILE_PER_ROW) * TILE_Y; - - ImgCopy(TileImg, sx, sy, TILE_X, TILE_Y/2, - ScrBufImg, (TILE_X * 3) - 8,PARTS_Y - 8 -24, 0); - ImgCopy(TileImg, sx, sy+ TILE_Y/2, TILE_X, TILE_Y/2, - ScrBufImg, (TILE_X * 4) - 8,PARTS_Y - 8 -24, 0); - - ImgClear(DollsListImg); - for (j = 0; j < DOLLS_MAX; j++) - { - _draw_doll(DollCacheImg, &dolls[j], true); - ImgCopy(DollCacheImg, 0, 0, - ImgWidth(DollCacheImg), ImgHeight(DollCacheImg), - DollsListImg, j * TILE_X, 0, 1); - } - - done = 0; - while (!done) - { - static int inc = 1; - static int cur_inc = 1; - - ImgClear(PartsImg); - - region_tile->DrawPanel((TILE_X * 3) - 8, (TILE_Y * 4) - 8, - ImgWidth(PartsImg) + 16, ImgHeight(PartsImg) + 16); - region_tile->DrawPanel((TILE_X * 3) - 8, PARTS_Y - 8, - ImgWidth(DollsListImg) + 16, ImgHeight(DollsListImg) + 16); - region_tile->DrawPanel(8*TILE_X - 8, 8*TILE_Y - 8, - TILE_X + 16, TILE_Y + 16); - - if (cur_part == 0) - { - // now selecting doll index - cgotoxy(10 , 1, GOTO_STAT); - cprintf("%02d", cur_doll); - cgotoxy(10 , 2, GOTO_STAT); - current_gender = dolls[cur_doll].parts[TILEP_PART_BASE] % 2; - cprintf("%s", gender_name[ current_gender ]); - - for (i = 2; i < PARTS_ITEMS; i++) - { - cgotoxy(10 , i + 1, GOTO_STAT); - tilep_part_to_str(dolls[cur_doll].parts[ p_lines[i] ], ibuf); - cprintf("%s / %03d", ibuf, tilep_parts_total[ p_lines[i] ]); - } - } - else - { - for (i = 0; i < PARTS_DISP_MAX; i++) - { - int index; - if (dolls[cur_doll].parts[ p_lines[cur_part] ] - == TILEP_SHOW_EQUIP) - { - index = 0; - } - else - { - index = i + dolls[cur_doll].parts[ p_lines[cur_part] ] - - (PARTS_DISP_MAX / 2); - } - if (index < 0) - index = index + tilep_parts_total[ p_lines[cur_part] ] + 1; - if (index > tilep_parts_total[ p_lines[cur_part] ]) - index = index - tilep_parts_total[ p_lines[cur_part] ] - 1; - - _tcache_overlay_player(PartsImg, i * TILE_X, 0, - p_lines[cur_part], index, TILE_Y, &d); - } - ImgCopy(PartsImg, 0, 0, ImgWidth(PartsImg), ImgHeight(PartsImg), - ScrBufImg, 3 * TILE_X, 4 * TILE_Y, 0); - _ImgCopyFromTileImg( TILE_CURSOR, ScrBufImg, - (3 + PARTS_DISP_MAX / 2) * TILE_X, - 4 * TILE_Y, 0); - } - _draw_doll(DollCacheImg, &dolls[cur_doll], true); - - ImgCopy(DollCacheImg, 0, 0, TILE_X, TILE_Y, - DollsListImg, cur_doll*TILE_X, 0, 1); - - _ImgCopyToTileImg(TILEP_PLAYER, DollCacheImg, 0, 0, 1); - _ImgCopyFromTileImg(TILEP_PLAYER, ScrBufImg, 8*TILE_X, 8*TILE_Y, 0); - ImgCopy(DollsListImg, 0, 0, - ImgWidth(DollsListImg), ImgHeight(DollsListImg), - ScrBufImg, 3 * TILE_X, PARTS_Y, 0); - _ImgCopyFromTileImg( TILE_CURSOR, ScrBufImg, - (3 + cur_doll) * TILE_X, PARTS_Y, 0); - region_tile->redraw(); - - cgotoxy(10 , cur_part + 1, GOTO_STAT); - - if (cur_part == 1) - { - current_gender = dolls[cur_doll].parts[p_lines[cur_part] ]%2; - cprintf("%s", gender_name[ current_gender ]); - } - else if (cur_part != 0) - { - tilep_part_to_str(dolls[cur_doll].parts[ p_lines[cur_part] ], ibuf); - cprintf("%s", ibuf); - } - - cgotoxy(1, pre_part + 1, GOTO_STAT);cprintf(" "); - cgotoxy(1, cur_part + 1, GOTO_STAT);cprintf("->"); - pre_part = cur_part; - - /* Get a key */ - kin = getch(); - - inc = cur_inc = 0; - - /* Analyze the key */ - switch (kin) - { - case 0x1B: //ESC - done = 1; - break; - - case 'h': - inc = -1; - break; - - case 'l': - inc = +1; - break; - - case 'H': - inc = -PARTS_DISP_MAX; - break; - - case 'L': - inc = +PARTS_DISP_MAX; - break; - - case 'j': - if (cur_part < (PARTS_ITEMS-1) ) - cur_part += 1; - else - cur_part = 0; - break; - - case 'k': - if (cur_part > 0) - cur_part -= 1; - else - cur_part = (PARTS_ITEMS-1); - break; - - case 'm': - if (mode == TILEP_M_LOADING) - mode = TILEP_M_DEFAULT; - else - mode = TILEP_M_LOADING; - - cgotoxy(1, 8, GOTO_MSG); - cprintf("Toggle Startup mode : [m] (Current mode:%s)", - ( mode == TILEP_M_LOADING ? "Load User's Settings" - : "Class Default" )); - break; - - case 't': - if (cur_part >= 2) - { - dolls[cur_doll].parts[ p_lines[cur_part] ] = 0; - display_parts_idx(cur_part); - } - break; - - case CONTROL('D'): - tilep_job_default(you.char_class, current_gender, - dolls[cur_doll].parts); - - for (i = 2; i < PARTS_ITEMS; i++) - display_parts_idx(i); - break; - - case CONTROL('T'): - for (i = 2; i < PARTS_ITEMS; i++) - { - undo_dolls[cur_doll].parts[ p_lines[i] ] - = dolls[cur_doll].parts[ p_lines[i] ]; - dolls[cur_doll].parts[ p_lines[i] ] = 0; - display_parts_idx(i); - } - break; - - case CONTROL('C'): - for (i = 2; i < PARTS_ITEMS; i++) - { - copy_doll[ p_lines[i] ] - = dolls[cur_doll].parts[ p_lines[i] ]; - } - break; - - case CONTROL('V'): - for (i = 2; i < PARTS_ITEMS; i++) - { - undo_dolls[cur_doll].parts[ p_lines[i] ] - = dolls[cur_doll].parts[ p_lines[i] ]; - dolls[cur_doll].parts[ p_lines[i] ] - = copy_doll[ p_lines[i] ]; - display_parts_idx(i); - } - break; - - case CONTROL('Z'): - for (i = 2; i < PARTS_ITEMS; i++) - { - dolls[cur_doll].parts[ p_lines[i] ] - = undo_dolls[cur_doll].parts[ p_lines[i] ]; - display_parts_idx(i); - } - break; - - case CONTROL('R'): - for (i = 2; i < PARTS_ITEMS; i++) - { - undo_dolls[cur_doll].parts[ p_lines[i] ] - = dolls[cur_doll].parts[ p_lines[i] ]; - } - dolls[cur_doll].parts[TILEP_PART_CLOAK] - = coinflip() * (random2(tilep_parts_total[ TILEP_PART_CLOAK ]) + 1); - dolls[cur_doll].parts[TILEP_PART_BOOTS] - = random2(tilep_parts_total[ TILEP_PART_BOOTS ] + 1); - dolls[cur_doll].parts[TILEP_PART_LEG] - = random2(tilep_parts_total[ TILEP_PART_LEG ] + 1); - dolls[cur_doll].parts[TILEP_PART_BODY] - = random2(tilep_parts_total[ TILEP_PART_BODY ] + 1); - dolls[cur_doll].parts[TILEP_PART_ARM] - = coinflip() * ( random2(tilep_parts_total[ TILEP_PART_ARM ]) + 1); - dolls[cur_doll].parts[TILEP_PART_HAND1] - = random2(tilep_parts_total[ TILEP_PART_HAND1 ] + 1); - dolls[cur_doll].parts[TILEP_PART_HAND2] - = coinflip() * ( random2(tilep_parts_total[ TILEP_PART_HAND2 ]) + 1); - dolls[cur_doll].parts[TILEP_PART_HAIR] - = random2(tilep_parts_total[ TILEP_PART_HAIR ] + 1); - dolls[cur_doll].parts[TILEP_PART_BEARD] - = ((dolls[cur_doll].parts[TILEP_PART_BASE] + 1) % 2) - * one_chance_in(4) - * ( random2(tilep_parts_total[ TILEP_PART_BEARD ]) + 1 ); - dolls[cur_doll].parts[TILEP_PART_HELM] - = coinflip() * ( random2(tilep_parts_total[ TILEP_PART_HELM ]) + 1 ); - - for (i = 2; i < PARTS_ITEMS; i++) - display_parts_idx(i); - - break; - - case '*': - { - int part = p_lines[cur_part]; - int *target = &dolls[cur_doll].parts[part]; - - if (part == TILEP_PART_BASE) - continue; - if (*target == TILEP_SHOW_EQUIP) - *target = 0; - else - *target = TILEP_SHOW_EQUIP; - - display_parts_idx(cur_part); - break; - } -#ifdef WIZARD - case '1': - dolls[cur_doll].parts[TILEP_PART_DRCHEAD]++; - dolls[cur_doll].parts[TILEP_PART_DRCHEAD] - %= tilep_parts_total[TILEP_PART_DRCHEAD] - 1; - break; - - case '2': - dolls[cur_doll].parts[TILEP_PART_DRCWING]++; - dolls[cur_doll].parts[TILEP_PART_DRCWING] - %= tilep_parts_total[TILEP_PART_DRCWING] - 1; - break; -#endif - default: - break; - } - - if (inc != 0) - { - int *target = &dolls[cur_doll].parts[ p_lines[cur_part] ]; - - if (cur_part == 0) - { - if (inc > 0) - cur_doll++; - else - cur_doll--; - - if (cur_doll < 0) - cur_doll = DOLLS_MAX - 1; - else if (cur_doll == DOLLS_MAX) - cur_doll = 0; - } - else if (cur_part == 1) - { - if (*target % 2) - (*target)++; - else - (*target)--; - } - else - { - if (*target == TILEP_SHOW_EQUIP) - continue; - - (*target) += inc; - (*target) += tilep_parts_total[ p_lines[cur_part] ] + 1; - (*target) %= tilep_parts_total[ p_lines[cur_part] ] + 1; - } - } - - delay(20); - } - - current_doll = dolls[cur_doll]; - _draw_doll(DollCacheImg, ¤t_doll); - _ImgCopyToTileImg(TILEP_PLAYER, DollCacheImg, 0, 0, 1); - - std::string dollsTxtString = datafile_path("dolls.txt", false, true); - const char *dollsTxt = (dollsTxtString.c_str()[0] == 0) ? - "dolls.txt" : dollsTxtString.c_str(); - - if ( (fp = fopen(dollsTxt, "w+")) != NULL ) - { - fprintf(fp, "MODE=%s\n", (mode == TILEP_M_LOADING) ? "LOADING" - : "DEFAULT" ); - fprintf(fp, "NUM=%02d\n", cur_doll); - for (j = 0; j < DOLLS_MAX; j++) - { - tilep_print_parts(fbuf, dolls[j].parts); - fprintf(fp, "%s\n", fbuf); - } - fclose(fp); - } - - ImgDestroy(PartsImg); - ImgDestroy(DollsListImg); - - ImgClear(ScrBufImg); - _redraw_spx_tcache(TILEP_PLAYER); - - for (x = 0; x < TILE_DAT_XMAX + 2; x++) - { - for (y = 0; y < TILE_DAT_YMAX + 2; y++) - { - t1buf[x][y] = 0; -#if 0 - t2buf[x][y] = TILE_DNGN_UNSEEN | TILE_FLAG_UNSEEN; -#endif - } - } - - for (x = 0; x < tile_xmax * tile_ymax; x++) - screen_tcache_idx[x] = -1; - - clrscr(); - redraw_screen(); -#endif -} - int get_clean_map_idx(int tile_idx) { - // TODO enne - need to separate TILEP from non-TILEP... int idx = tile_idx & TILE_FLAG_MASK; if (idx >= TILE_CLOUD_FIRE_0 && idx <= TILE_CLOUD_PURP_SMOKE || idx >= TILEP_MONS_SHADOW && idx <= TILEP_MONS_WATER_ELEMENTAL || @@ -965,8 +387,8 @@ int get_clean_map_idx(int tile_idx) { return 0; } - else - return tile_idx; + + return tile_idx; } void TileDrawTitle() |