Overview
Comment: | Implement LocateMe |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
c32d302e1549ef6c7053317c577f38e0 |
User & Date: | user on 2020-12-21 01:20:50 |
Other Links: | manifest | tags |
Context
2020-12-21
| ||
01:26 | The direction for NewX and NewY should use only the low 3-bits; correct that so that it is. check-in: f1962f879e user: user tags: trunk | |
01:20 | Implement LocateMe check-in: c32d302e15 user: user tags: trunk | |
2020-12-20
| ||
21:40 | Implement '^d' and horizontal lines in popup texts check-in: 0770ad617e user: user tags: trunk | |
Changes
Modified exec.c from [cc4f9d7707] to [00936c7cd3].
︙ | |||
1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 | 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 | + | case OP_KEYCLEARED_EC: StackReq(2,0); SetFlagOf(OF_KEYCLEARED); break; case OP_LAND: StackReq(2,1); t1=Pop(); t2=Pop(); if(v_bool(t1) && v_bool(t2)) Push(NVALUE(1)); else Push(NVALUE(0)); break; case OP_LE: StackReq(2,1); t2=Pop(); t1=Pop(); Push(NVALUE(v_unsigned_greater(t1,t2)?0:1)); break; case OP_LE_C: StackReq(2,1); t2=Pop(); t1=Pop(); Push(NVALUE(v_signed_greater(t1,t2)?0:1)); break; case OP_LEVEL: StackReq(0,1); Push(NVALUE(level_code)); break; case OP_LNOT: StackReq(1,1); if(v_bool(Pop())) Push(NVALUE(0)); else Push(NVALUE(1)); break; case OP_LOC: StackReq(0,2); Push(NVALUE(o->x)); Push(NVALUE(o->y)); break; case OP_LOCATEME: locate_me(o->x,o->y); break; case OP_LOR: StackReq(2,1); t1=Pop(); t2=Pop(); if(v_bool(t1) || v_bool(t2)) Push(NVALUE(1)); else Push(NVALUE(0)); break; case OP_LOSELEVEL: gameover=-1; Throw(0); break; case OP_LSH: StackReq(2,1); t2=Pop(); Numeric(t2); t1=Pop(); Numeric(t1); Push(NVALUE(t2.u&~31?0:t1.u<<t2.u)); break; case OP_LT: StackReq(2,1); t2=Pop(); t1=Pop(); Push(NVALUE(v_unsigned_greater(t2,t1)?1:0)); break; case OP_LT_C: StackReq(2,1); t2=Pop(); t1=Pop(); Push(NVALUE(v_signed_greater(t2,t1)?1:0)); break; case OP_LXOR: StackReq(2,1); t1=Pop(); t2=Pop(); if(v_bool(t1)?!v_bool(t2):v_bool(t2)) Push(NVALUE(1)); else Push(NVALUE(0)); break; case OP_MAXINVENTORY: StackReq(1,0); t1=Pop(); Numeric(t1); if(ninventory>t1.u) Throw("Inventory overflow"); break; |
︙ |
Modified game.c from [718011a9b2] to [9af2d99ebb].
︙ | |||
516 517 518 519 520 521 522 | 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | } redraw_game(); timerflag=0; // ensure we have not missed a timer event break; } } } void locate_me(int x,int y) { Uint8 c=7; SDL_Rect r,rh,rv; SDL_Event ev; if(!screen) return; redraw_game(); r.x=(x-1)*picture_size+left_margin; r.y=(y-1)*picture_size; r.w=r.h=picture_size; rh.x=0; rh.y=r.y+picture_size/2; rh.w=screen->w; rh.h=1; rv.x=r.x+picture_size/2; rv.y=0; rv.w=1; rv.h=screen->h; show: timerflag=0; SDL_FillRect(screen,&rh,c+45); SDL_FillRect(screen,&rv,c+67); SDL_FillRect(screen,&r,c); SDL_Flip(screen); while(SDL_WaitEvent(&ev)) switch(ev.type) { case SDL_USEREVENT: if(c>240) return; c+=15; goto show; case SDL_KEYDOWN: case SDL_QUIT: case SDL_MOUSEBUTTONDOWN: SDL_PushEvent(&ev); return; } } |
Modified heromesh.h from [70c31aabbe] to [c347f8ffc1].
︙ | |||
248 249 250 251 252 253 254 255 256 257 258 259 260 | 248 249 250 251 252 253 254 255 256 257 258 259 260 261 | + | void annihilate(void); const char*execute_turn(int key); const char*init_level(void); // == game == void run_game(void); void locate_me(int x,int y); // == edit == void run_editor(void); void write_empty_level_set(FILE*); |