void P_LoadSectors(int lump) { byte *data; int i; mapsector_t *ms; sector_t *ss; numsectors = W_LumpLength(lump) / sizeof(mapsector_t); sectors = Z_Malloc(numsectors * sizeof(sector_t), PU_LEVEL, 0); D_memset(sectors, 0, numsectors * sizeof(sector_t)); data = I_TempBuffer(); W_ReadLump(lump, data); ms = (mapsector_t *)data; ss = sectors; for(i = 0; i < numsectors; i++, ss++, ms++) { ss->floorheight = LITTLESHORT(ms->floorheight) << FRACBITS; ss->ceilingheight = LITTLESHORT(ms->ceilingheight) << FRACBITS; ss->floorpic = R_FlatNumForName(ms->floorpic); if(!D_strncasecmp(ms->ceilingpic,"F_SKY1", 6)) ss->ceilingpic = -1; else { ss->ceilingpic = R_FlatNumForName(ms->ceilingpic); } ss->lightlevel = LITTLESHORT(ms->lightlevel); ss->special = LITTLESHORT(ms->special); ss->tag = LITTLESHORT(ms->tag); ss->thinglist = NULL; } }
void P_LoadSectors(int lump) { byte *data; int i; mapsector_t *ms; sector_t *ss; numsectors = W_LumpLength(lump) / sizeof(mapsector_t); sectors = Z_Malloc(numsectors * sizeof(sector_t), PU_LEVEL, 0); memset(sectors, 0, numsectors * sizeof(sector_t)); data = W_CacheLumpNum(lump, PU_STATIC); ms = (mapsector_t *) data; ss = sectors; for (i = 0; i < numsectors; i++, ss++, ms++) { ss->floorheight = SHORT(ms->floorheight) << FRACBITS; ss->ceilingheight = SHORT(ms->ceilingheight) << FRACBITS; ss->floorpic = R_FlatNumForName(ms->floorpic); ss->ceilingpic = R_FlatNumForName(ms->ceilingpic); ss->lightlevel = SHORT(ms->lightlevel); ss->special = SHORT(ms->special); ss->tag = SHORT(ms->tag); ss->thinglist = NULL; ss->seqType = SEQTYPE_STONE; // default seqType } W_ReleaseLumpNum(lump); }
static void F_DrawBackground(void) { /* erase the entire screen to a tiled background. */ OGL_SetFlat (R_FlatNumForName(finaleflat)); OGL_DrawRectTiled(0, 0, SCREENWIDTH, SCREENHEIGHT, 64, 64); }
// e6y: Added for "GRNROCK" mostly void R_SetFloorNum(patchnum_t *patchnum, const char *name) { patchnum->width = 64; patchnum->height = 64; patchnum->leftoffset = 0; patchnum->topoffset = 0; patchnum->lumpnum = R_FlatNumForName(name); }
void P_InitPicAnims (void) { int i; // Init animation lastanim = anims; for (i=0 ; animdefs[i].istexture != -1 ; i++) { char *startname, *endname; startname = DEH_String(animdefs[i].startname); endname = DEH_String(animdefs[i].endname); if (animdefs[i].istexture) { // different episode ? if (R_CheckTextureNumForName(startname) == -1) continue; lastanim->picnum = R_TextureNumForName(endname); lastanim->basepic = R_TextureNumForName(startname); } else { if (W_CheckNumForName(startname) == -1) continue; lastanim->picnum = R_FlatNumForName(endname); lastanim->basepic = R_FlatNumForName(startname); } lastanim->istexture = animdefs[i].istexture; lastanim->numpics = lastanim->picnum - lastanim->basepic + 1; if (lastanim->numpics < 2) I_Error ("P_InitPicAnims: bad cycle from %s to %s", startname, endname); lastanim->speed = animdefs[i].speed; lastanim++; } }
void F_TextWrite (void) { { // erase the entire screen to a tiled background const byte *src; // cph - const int x,y; int lump; // killough 4/17/98: src = W_CacheLumpNum(lump = firstflat + R_FlatNumForName(finaleflat)); V_DrawBlock(0, 0, 0, 64, 64, src, 0); for (y=0 ; y<SCREENHEIGHT ; y+=64) for (x=y ? 0 : 64; x<SCREENWIDTH ; x+=64) V_CopyRect(0, 0, 0, ((SCREENWIDTH-x) < 64) ? (SCREENWIDTH-x) : 64, ((SCREENHEIGHT-y) < 64) ? (SCREENHEIGHT-y) : 64, x, y, 0); W_UnlockLumpNum(lump); } V_MarkRect (0, 0, SCREENWIDTH, SCREENHEIGHT); { // draw some of the text onto the screen int cx = 10; int cy = 10; const char* ch = finaletext; // CPhipps - const int count = (finalecount - 10)/Get_TextSpeed(); // phares int w; if (count < 0) count = 0; for ( ; count ; count-- ) { int c = *ch++; if (!c) break; if (c == '\n') { cx = 10; cy += 11; continue; } c = toupper(c) - HU_FONTSTART; if (c < 0 || c> HU_FONTSIZE) { cx += 4; continue; } w = SHORT (hu_font[c]->width); if (cx+w > SCREENWIDTH) break; // CPhipps - patch drawing updated V_DrawMemPatch(cx, cy, 0, hu_font[c], NULL, VPT_STRETCH); cx+=w; } } }
void P_InitPicAnims (void) { int i; // Init animation ::g->lastanim = ::g->anims; for (i=0 ; animdefs[i].istexture != (qboolean)-1 ; i++) { if (animdefs[i].istexture) { // different episode ? if (R_CheckTextureNumForName(animdefs[i].startname) == -1) continue; ::g->lastanim->picnum = R_TextureNumForName (animdefs[i].endname); ::g->lastanim->basepic = R_TextureNumForName (animdefs[i].startname); } else { if (W_CheckNumForName(animdefs[i].startname) == -1) continue; ::g->lastanim->picnum = R_FlatNumForName (animdefs[i].endname); ::g->lastanim->basepic = R_FlatNumForName (animdefs[i].startname); } ::g->lastanim->istexture = animdefs[i].istexture; ::g->lastanim->numpics = ::g->lastanim->picnum - ::g->lastanim->basepic + 1; if (::g->lastanim->numpics < 2) I_Error ("P_InitPicAnims: bad cycle from %s to %s", animdefs[i].startname, animdefs[i].endname); ::g->lastanim->speed = animdefs[i].speed; ::g->lastanim++; } }
static int CmdChangeCeiling(void) { int tag; int flat; int sectorIndex; flat = R_FlatNumForName(ACStrings[Pop()]); tag = Pop(); sectorIndex = -1; while ((sectorIndex = P_FindSectorFromTag(tag, sectorIndex)) >= 0) { sectors[sectorIndex].ceilingpic = flat; } return SCRIPT_CONTINUE; }
void P_LoadSectors (int lump) { byte *data; int i; mapsector_t *ms; sector_t *ss; numsectors = W_LumpLength (lump) / sizeof(mapsector_t); sectors = Z_Malloc (numsectors*sizeof(sector_t),PU_LEVEL,0); memset (sectors, 0, numsectors*sizeof(sector_t)); data = W_CacheLumpNum (lump,PU_STATIC); ms = (mapsector_t *)data; ss = sectors; // Make sure primary lumps are used for flat searching W_UsePrimary(); for(i = 0; i < numsectors; i++, ss++, ms++) { ss->floorheight = SHORT(ms->floorheight)<<FRACBITS; ss->ceilingheight = SHORT(ms->ceilingheight)<<FRACBITS; ss->floorpic = R_FlatNumForName(ms->floorpic); ss->ceilingpic = R_FlatNumForName(ms->ceilingpic); ss->lightlevel = SHORT(ms->lightlevel); ss->special = SHORT(ms->special); ss->tag = SHORT(ms->tag); ss->thinglist = NULL; ss->seqType = SEQTYPE_STONE; // default seqType } if(DevMaps) { W_UseAuxiliary(); } Z_Free(data); }
void P_InitPicAnims(void) { int i; lastanim = anims; for(i = 0; animdefs[i].istexture != -1; i++) { if(animdefs[i].istexture) { // Texture animation if(R_CheckTextureNumForName(animdefs[i].startname) == -1) { // Texture doesn't exist continue; } lastanim->picnum = R_TextureNumForName(animdefs[i].endname); lastanim->basepic = R_TextureNumForName(animdefs[i].startname); } else { // Flat animation if(W_CheckNumForName(animdefs[i].startname) == -1) { // Flat doesn't exist continue; } lastanim->picnum = R_FlatNumForName(animdefs[i].endname); lastanim->basepic = R_FlatNumForName(animdefs[i].startname); } lastanim->istexture = animdefs[i].istexture; lastanim->numpics = lastanim->picnum-lastanim->basepic+1; if(lastanim->numpics < 2) { I_Error("P_InitPicAnims: bad cycle from %s to %s", animdefs[i].startname, animdefs[i].endname); } lastanim->speed = animdefs[i].speed; lastanim++; } }
static int CmdChangeCeilingDirect(void) { int tag; int flat; int sectorIndex; tag = LONG(*PCodePtr); ++PCodePtr; flat = R_FlatNumForName(ACStrings[LONG(*PCodePtr)]); ++PCodePtr; sectorIndex = -1; while ((sectorIndex = P_FindSectorFromTag(tag, sectorIndex)) >= 0) { sectors[sectorIndex].ceilingpic = flat; } return SCRIPT_CONTINUE; }
//========================================================================== // SV_GetArchiveFlat //========================================================================== int SV_GetArchiveFlat(int archivenum) { return R_FlatNumForName(flat_archive.table[archivenum].name); }
void R_InitSkyMap(void) { skyflatnum = R_FlatNumForName(DEH_String("F_SKY1")); skytexturemid = 200 * FRACUNIT; skyiscale = FRACUNIT >> crispy->hires; }
void R_InitSkyMap(void) { skyflatnum = R_FlatNumForName("F_SKY"); skytexturemid = 200 * FRACUNIT; skyiscale = FRACUNIT; }
void R_InitSkyMap(void) { int map = (gameepisode - 1) * 10 + gamemap; skyflatnum = R_FlatNumForName(SKYFLATNAME); skytexture = P_GetMapSky1Texture(map); if (!skytexture) { if (gamemode == commercial) { if (gamemap < 12) skytexture = R_TextureNumForName("SKY1"); else if (gamemap < 21) skytexture = R_TextureNumForName("SKY2"); else skytexture = R_TextureNumForName("SKY3"); } else { switch (gameepisode) { default: case 1: skytexture = R_TextureNumForName("SKY1"); break; case 2: skytexture = R_TextureNumForName("SKY2"); break; case 3: skytexture = R_TextureNumForName("SKY3"); break; case 4: skytexture = R_TextureNumForName("SKY4"); break; case 5: skytexture = R_TextureNumForName(R_CheckTextureNumForName("SKY5_ZD") != -1 ? "SKY5_ZD" : "SKY5"); break; } } } skyscrolldelta = P_GetMapSky1ScrollDelta(map); if ((canmouselook = ((mouselook || keyboardmouselook || mousemouselook != -1 || autotilt) && !nomouselook))) { int skyheight = textureheight[skytexture] >> FRACBITS; if (skyheight >= 128 && skyheight < 200) skytexturemid = -54 * FRACUNIT * skyheight / SKYSTRETCH_HEIGHT; else if (skyheight > 200) skytexturemid = (200 - skyheight) * FRACUNIT * skyheight / SKYSTRETCH_HEIGHT; else skytexturemid = 0; skyiscale = (fixed_t)(((uint64_t)FRACUNIT * SCREENWIDTH * 200) / ((uint64_t)viewwidth * SCREENHEIGHT)) * skyheight / SKYSTRETCH_HEIGHT; }
void P_InitFTAnims(void) { int base; boolean ignore; boolean done; int AnimDefCount = 0; int groupNumber, picBase; int type, index; SC_Open(ANIM_SCRIPT_NAME); while(SC_GetString()) { if(AnimDefCount == MAX_ANIM_DEFS) { Con_Error("P_InitFTAnims: too many AnimDefs."); } if(SC_Compare(SCI_FLAT)) { type = ANIM_FLAT; } else if(SC_Compare(SCI_TEXTURE)) { type = ANIM_TEXTURE; } else { SC_ScriptError(NULL); } SC_MustGetString(); // Name ignore = false; if(type == ANIM_FLAT) { if(W_CheckNumForName(sc_String) == -1) { ignore = true; } else { picBase = R_FlatNumForName(sc_String); groupNumber = R_CreateAnimGroup(DD_FLAT, AGF_SMOOTH | AGF_FIRST_ONLY); } } else { // Texture if(R_CheckTextureNumForName(sc_String) == -1) { ignore = true; } else { picBase = R_TextureNumForName(sc_String); groupNumber = R_CreateAnimGroup(DD_TEXTURE, AGF_SMOOTH | AGF_FIRST_ONLY); } } done = false; while(done == false) { if(SC_GetString()) { if(SC_Compare(SCI_PIC)) { SC_MustGetNumber(); if(ignore == false) { index = picBase + sc_Number - 1; } SC_MustGetString(); if(SC_Compare(SCI_TICS)) { SC_MustGetNumber(); if(ignore == false) { R_AddToAnimGroup(groupNumber, index, sc_Number, 0); } } else if(SC_Compare(SCI_RAND)) { SC_MustGetNumber(); base = sc_Number; SC_MustGetNumber(); if(ignore == false) { R_AddToAnimGroup(groupNumber, index, base, sc_Number - base); } } else { SC_ScriptError(NULL); } } else { SC_UnGet(); done = true; } } else { done = true; } } } SC_Close(); }
// // R_InitSkyMap // Called whenever the view size changes. // void R_InitSkyMap (void) { skyflatnum = R_FlatNumForName ( SKYFLATNAME ); skytexturemid = 100*FRACUNIT; }