foxygit / doom Log in
commits tags

/src/doom/r_sky.c · 1.83 KB

raw
//
// Copyright(C) 1993-1996 Id Software, Inc.
// Copyright(C) 2005-2014 Simon Howard
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// DESCRIPTION:
//  Sky rendering. The DOOM sky is a texture map like any
//  wall, wrapping around. A 1024 columns equal 360 degrees.
//  The default sky map is 256 columns and repeats 4 times
//  on a 320 screen?
//  
//



// Needed for FRACUNIT.
#include "m_fixed.h"

// Needed for Flat retrieval.
#include "r_data.h"

// Needed for ORIGHEIGHT.
#include "i_video.h"

#include "r_sky.h"

//
// sky mapping
//
int			skyflatnum;
int			skytexture;
int			skytexturemid;



//
// R_InitSkyMap
// Called whenever the view size changes.
//
void R_InitSkyMap (void)
{
  // skyflatnum = R_FlatNumForName ( SKYFLATNAME );
    // Deliberately ORIGHEIGHT, not SCREENHEIGHT (see i_video.h for why
    // they differ now): the column drawer computes
    // dc_texturemid + (dc_yl - centery) * dc_iscale, and dc_iscale is
    // already scaled down in proportion to the real view being bigger
    // (see pspriteiscale in r_main.c), which cancels out (dc_yl -
    // centery) being scaled up by that same real view size - so this
    // additive base term needs to stay in the original vanilla-sized
    // terms too, or every sky column ends up offset by the difference,
    // wrapping (and so visibly seaming/duplicating) at the wrong row.
    skytexturemid = ORIGHEIGHT/2*FRACUNIT;
}