Overview
Comment: | Implement the inventory display |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
0ba0570c8c4fe38aa60f89bcea38374e |
User & Date: | user on 2021-01-04 07:15:18 |
Other Links: | manifest | tags |
Context
2021-01-05
| ||
04:36 | Start making the key code icons check-in: 2d56b51997 user: user tags: trunk | |
2021-01-04
| ||
07:15 | Implement the inventory display check-in: 0ba0570c8c user: user tags: trunk | |
06:29 | Improvement of comments in heromesh.h check-in: 7b83e02ee7 user: user tags: trunk | |
Changes
Modified bindings.doc from [6ef576a661] to [2eb92fb80c].
︙ | |||
61 62 63 64 65 66 67 68 69 70 71 72 73 74 | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | + + + | '^<' Rewind to mark. '^>' Replay to mark. '^I' Toggle the inventory/move-list display. '^M' Set the replay mark position. '^T' Display the level title popup. '^d' <location> |
︙ |
Modified class.c from [33b921b461] to [a9810d154f].
︙ | |||
40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | + | Value initglobals[0x800]; Class*classes[0x4000]; const char*messages[0x4000]; Uint16 functions[0x4000]; int max_animation=32; Sint32 max_volume=10000; Uint8 back_color=1; Uint8 inv_back_color=9; char**stringpool; AnimationSlot anim_slot[8]; #define HASH_SIZE 8888 #define LOCAL_HASH_SIZE 5555 typedef struct { Uint16 id; |
︙ | |||
1611 1612 1613 1614 1615 1616 1617 | 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 | + + + + - - + + + | nxttok(); if(tokent!=TF_CLOSE) ParseError("Expected close parenthesis\n"); break; case OP_BACKGROUND: nxttok(); if(tokent!=TF_INT) ParseError("Number expected\n"); if(tokenv&~255) ParseError("Background color out of range\n"); back_color=inv_back_color=tokenv; nxttok(); if(tokent==TF_INT) { if(tokenv&~255) ParseError("Background color out of range\n"); |
︙ |
Modified class.doc from [f0b38ad4c2] to [3662bf9dd0].
︙ | |||
190 191 192 193 194 195 196 | 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 | - - + + + + | === Global definitions === These are the global definitions in the class definition file. (Animate <limit>) Set the limit for logical animations, from 1 to 255. The default is 32. |
︙ |
Modified game.c from [ba2cd038c4] to [271271dcf7].
︙ | |||
21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | + + + + + + + + | Uint8*replay_list; Uint16 replay_size,replay_count,replay_pos,replay_mark; static volatile Uint8 timerflag; static int exam_scroll; static Uint8*inputs; static int inputs_size,inputs_count; static Uint8 side_mode=255; static void setup_game(void) { const char*v; optionquery[1]=Q_showInventory; v=xrm_get_resource(resourcedb,optionquery,optionquery,2)?:""; side_mode=boolxrm(v,1); } static void redraw_game(void) { char buf[32]; SDL_Rect r; int x,y; r.x=r.y=0; r.h=screen->h; |
︙ | |||
73 74 75 76 77 78 79 | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | + + + + + + + + + + - + + + + + + + + + + + + + + | draw_text(8,32,buf,0xF0,0xFD); draw_text(24,32,"x",0xF0,0xF5); x=x>=left_margin?(x-left_margin)/picture_size+1:0; y=y/picture_size+1; if(x>0 && y>0 && x<=pfwidth && y<=pfheight) snprintf(buf,8,"(%2d,%2d)",x,y); else strcpy(buf," "); draw_text(0,40,buf,0xF0,0xF1); if(side_mode) { // Inventory x=20-(left_margin-picture_size)/8; if(x>19) x=19; if(x<0) x=0; for(y=0;y<ninventory;y++) { if(y*picture_size+60>=screen->h) break; snprintf(buf,22,"%20d",inventory[y].value); draw_text(picture_size,y*picture_size+52,buf+x,0xF8,0xFE); } |
︙ | |||
440 441 442 443 444 445 446 447 448 449 450 451 452 453 | 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 | + + + | goto restart; case '^>': // Replay to mark inputs_count=0; number=replay_mark-replay_pos; goto replay; case '^E': // Edit return -2; case '^I': // Toggle inventory display side_mode^=1; return prev; case '^M': // Mark replay position replay_mark=replay_pos+inputs_count; return prev; case '^Q': // Quit return -1; case '^T': // Show title modal_draw_popup(level_title); |
︙ | |||
512 513 514 515 516 517 518 519 520 521 522 523 524 525 | 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 | + | } } void run_game(void) { int i; SDL_Event ev; set_caption(); if(side_mode==255) setup_game(); begin_level(level_id); redraw_game(); timerflag=0; SDL_SetTimer(10,timer_callback); while(SDL_WaitEvent(&ev)) { switch(ev.type) { case SDL_VIDEOEXPOSE: |
︙ |
Modified heromesh.h from [512c09304e] to [4bcb7663f0].
︙ | |||
148 149 150 151 152 153 154 | 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | - + | extern Value initglobals[0x800]; extern Class*classes[0x4000]; // 0 isn't a real class extern const char*messages[0x4000]; // index is 256 less than message number extern Uint16 functions[0x4000]; extern int max_animation; // max steps in animation queue (default 32) extern Sint32 max_volume; // max total volume to allow moving diagonally (default 10000) |
︙ |
Modified quarks from [3b8f040017] to [1be78c1f08].
︙ | |||
211 212 213 214 215 216 217 218 | 211 212 213 214 215 216 217 218 219 | + | ! Miscellaneous level tracePrefix stackProtection maxObjects traceAll traceObject showInventory |
Modified quarks.h from [1834c51d24] to [eb6ffb657a].
︙ | |||
176 177 178 179 180 181 182 183 184 185 186 187 188 189 | 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | + | #define Q_sqlPowerSafe 177 #define Q_level 178 #define Q_tracePrefix 179 #define Q_stackProtection 180 #define Q_maxObjects 181 #define Q_traceAll 182 #define Q_traceObject 183 #define Q_showInventory 184 static const char*const global_quarks[]={ "screenWidth", "screenHeight", "margin", "palette", "popupColors", "imageSize", |
︙ | |||
359 360 361 362 363 364 365 366 367 368 369 370 371 372 | 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 | + | "sqlPowerSafe", "level", "tracePrefix", "stackProtection", "maxObjects", "traceAll", "traceObject", "showInventory", 0}; #ifdef HEROMESH_BINDINGS static const SDLKey quark_to_key[Q_undo+1-Q_backspace]={ SDLK_BACKSPACE, SDLK_TAB, SDLK_CLEAR, SDLK_RETURN, |
︙ |