Overview
Comment: | A few minor corrections, including displaying width/height of level in editor and allowing loading levels by index. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
01830be55a81229a6c94cde6de4da0fd |
User & Date: | user on 2018-10-26 06:47:14 |
Other Links: | manifest | tags |
Context
2018-10-26
| ||
08:12 | Implement scrollbars check-in: 633696a6f5 user: user tags: trunk | |
06:47 | A few minor corrections, including displaying width/height of level in editor and allowing loading levels by index. check-in: 01830be55a user: user tags: trunk | |
2018-10-23
| ||
03:31 | Add implementation of loading level index check-in: 17b9aedf92 user: user tags: trunk | |
Changes
Modified bindings.c from [7677516cfd] to [21ad796e4d].
︙ | ︙ | |||
199 200 201 202 203 204 205 | if(!name) return 0; sqlite3_bind_text(cmd->stmt,i,name,-1,SQLITE_TRANSIENT); } } } while((i=sqlite3_step(cmd->stmt))==SQLITE_ROW) { if(i=sqlite3_data_count(cmd->stmt)) { | | | 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | if(!name) return 0; sqlite3_bind_text(cmd->stmt,i,name,-1,SQLITE_TRANSIENT); } } } while((i=sqlite3_step(cmd->stmt))==SQLITE_ROW) { if(i=sqlite3_data_count(cmd->stmt)) { j=(i>1&&sqlite3_column_type(cmd->stmt,1)!=SQLITE_NULL)?sqlite3_column_int(cmd->stmt,1):y*64+x; if((name=sqlite3_column_text(cmd->stmt,0)) && *name) { k=name[0]*'\1\0'+name[1]*'\0\1'; while(i && sqlite3_column_type(cmd->stmt,i-1)==SQLITE_NULL) i--; prev=cb(prev,k,j,i,cmd->stmt,aux); if(prev<0) { i=SQLITE_DONE; break; |
︙ | ︙ |
Modified edit.c from [e979aee854] to [ce143bd0c0].
︙ | ︙ | |||
52 53 54 55 56 57 58 59 60 61 62 | snprintf(buf,32,"%5d",level_version); draw_text(0,16,"V",0xF0,0xF7); draw_text(16,16,buf,0xF0,0xFF); snprintf(buf,32,"%5d",level_code); draw_text(0,24,"C",0xF0,0xF7); draw_text(16,24,buf,0xF0,0xFF); } 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," "); | > > > | | | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | snprintf(buf,32,"%5d",level_version); draw_text(0,16,"V",0xF0,0xF7); draw_text(16,16,buf,0xF0,0xFF); snprintf(buf,32,"%5d",level_code); draw_text(0,24,"C",0xF0,0xF7); draw_text(16,24,buf,0xF0,0xFF); } snprintf(buf,8,"%2dx%2d",pfwidth,pfheight); 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,0xF3); SDL_UnlockSurface(screen); SDL_Flip(screen); } static void show_mouse_xy(SDL_Event*ev) { char buf[32]; int x,y; x=(ev->motion.x-left_margin)/picture_size+1; y=ev->motion.y/picture_size+1; if(ev->motion.x<left_margin) x=0; if(x>0 && y>0 && x<=pfwidth && y<=pfheight) snprintf(buf,8,"(%2d,%2d)",x,y); else strcpy(buf," "); SDL_LockSurface(screen); draw_text(0,40,buf,0xF0,0xF3); SDL_UnlockSurface(screen); SDL_Flip(screen); } static void set_caption(void) { const char*r; char*s; |
︙ | ︙ | |||
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | break; case SDL_MOUSEMOTION: set_cursor(ev.motion.x<left_margin?XC_arrow:XC_tcross); show_mouse_xy(&ev); break; case SDL_MOUSEBUTTONDOWN: // fallthrough case SDL_KEYDOWN: i=exec_key_binding(&ev,1,0,0,editor_command,0); if(i==-1) exit(0); if(i==-2) { main_options['e']=0; return; } redraw_editor(); break; } } } | > | 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | break; case SDL_MOUSEMOTION: set_cursor(ev.motion.x<left_margin?XC_arrow:XC_tcross); show_mouse_xy(&ev); break; case SDL_MOUSEBUTTONDOWN: if(ev.button.x<left_margin) break; // fallthrough case SDL_KEYDOWN: i=exec_key_binding(&ev,1,0,0,editor_command,0); if(i==-1) exit(0); if(i==-2) { main_options['e']=0; return; } redraw_editor(); break; } } } |
Modified main.c from [d47c90633f] to [fed1a85264].
︙ | ︙ | |||
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 | const char*load_level(int lvl) { // Load level by ID. Returns null pointer if successful, or an error message if it failed. long sz=0; unsigned char*buf=lvl>=0?read_lump(FIL_LEVEL,lvl,&sz,0):0; unsigned char*p=buf; unsigned char*end=buf+sz; int i,n,x,y,z; Uint32 o; Uint32 mru[2]; if(lvl<0) return "Invalid level ID"; if(!buf) return "Cannot find level"; free(level_title); level_title=0; annihilate(); generation_number=TY_MAXTYPE+1; level_version=p[0]|(p[1]<<8); | > > > > > | 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 | const char*load_level(int lvl) { // Load level by ID. Returns null pointer if successful, or an error message if it failed. long sz=0; unsigned char*buf=lvl>=0?read_lump(FIL_LEVEL,lvl,&sz,0):0; unsigned char*p=buf; unsigned char*end=buf+sz; int i,n,x,y,z; Uint16 lo=0; Uint32 o; Uint32 mru[2]; if(lvl<0 && level_index && -lvl<=level_nindex) { lo=-lvl; lvl=level_index[~lvl]; } if(lvl<0) return "Invalid level ID"; if(!buf) return "Cannot find level"; free(level_title); level_title=0; annihilate(); generation_number=TY_MAXTYPE+1; level_version=p[0]|(p[1]<<8); |
︙ | ︙ | |||
306 307 308 309 310 311 312 | } } } // skip level strings for now if(p>end) goto bad1; free(buf); level_id=lvl; | | | | 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 | } } } // skip level strings for now if(p>end) goto bad1; free(buf); level_id=lvl; level_ord=lo; if(level_index && !lo) { for(i=0;i<level_nindex;i++) if(level_index[i]==lvl) { level_ord=i+1; break; } } return 0; bad1: |
︙ | ︙ |