Quake Video Code Rant
Moderator: InsideQC Admins
34 posts
• Page 3 of 3 • 1, 2, 3
Dual screens can also be set up vertically, there's always funny modes such as 320x480 (or 640x240, on the Dreamcast), and there's also the possibility of the user creating custom video modes with weird resolutions (I do this all the time), so simply using a (CenterX > CenterY*2) to guess whether the engine is running in a dual screen setup is flawed, and risky at best.
There must be better ways to find it out.
There must be better ways to find it out.
-

mankrip - Posts: 915
- Joined: Fri Jul 04, 2008 3:02 am
mk wrote:there's always funny modes such as 320x480 (or 640x240, on the Dreamcast)
am i doing this rite?
wow the particles look stupid in weird modes like these
I tried to do dynamic aspect before and it always ended up looking too fat. :/
Last edited by leileilol on Thu Mar 10, 2011 3:15 am, edited 1 time in total.
i should not be here
- leileilol
- Posts: 2783
- Joined: Fri Oct 15, 2004 3:23 am
Take a look at these:
The second struct is used by the engine, but the first one is only used by the BSP tools, and the fact that both structs have the same name makes the code prone to confusion.
- Code: Select all
typedef struct
{
vec3_t origin;
int firstbrush;
int numbrushes;
epair_t *epairs;
} entity_t;
- Code: Select all
typedef struct entity_s
{
qboolean forcelink; // model changed
int update_type;
entity_state_t baseline; // to fill in defaults in updates
double msgtime; // time of last update
vec3_t msg_origins[2]; // last two updates (0 is newest)
vec3_t origin;
vec3_t msg_angles[2]; // last two updates (0 is newest)
vec3_t angles;
struct model_s *model; // NULL = no model
struct efrag_s *efrag; // linked list of efrags
int frame;
float syncbase; // for client-side animations
byte *colormap;
int effects; // light, particals, etc
int skinnum; // for Alias models
int visframe; // last frame this entity was
// found in an active leaf
int dlightframe; // dynamic lighting
int dlightbits;
// FIXME: could turn these into a union
int trivial_accept;
struct mnode_s *topnode; // for bmodels, first world node
// that splits bmodel, or NULL if
// not split
// mankrip - model interpolation - begin
struct model_s
* lastmodel
;
qboolean
reset_frame_interpolation // mankrip
;
float
frame_start_time
, frame_interval // mankrip - QC frame_interval
;
struct maliasgroup_s
* framegroup1 // mankrip
;
int
pose1
;
struct maliasgroup_s
* framegroup2 // mankrip - renamed
;
int
pose2
;
float
translate_start_time
;
vec3_t
origin1
, origin2
;
float
rotate_start_time
;
vec3_t
angles1
, angles2
;
// mankrip - model interpolation - end
// Tomaz - QC Alpha Scale Glow Begin
float
alpha
, scale_start_time
// , scale1
, scale2
;
vec3_t
scalev
;
float
glow_size
// , glow_red
// , glow_green
// , glow_blue
// Tomaz - QC Alpha Scale Glow End
, distance // mankrip - depth sorting
;
void
// MDL
(* D_PolysetDrawSpans) (void)
, (* R_Outline) (void)
// SPR
, (* D_SpriteDrawSpans) (void)
// BSP
, (* D_DrawSpans) (void)
, (* D_DrawTurbulent) (void)
;
byte
* colorblendingmap
// , * colorshadingmap // *colormap
;
} entity_t;
The second struct is used by the engine, but the first one is only used by the BSP tools, and the fact that both structs have the same name makes the code prone to confusion.
-

mankrip - Posts: 915
- Joined: Fri Jul 04, 2008 3:02 am
34 posts
• Page 3 of 3 • 1, 2, 3
Who is online
Users browsing this forum: No registered users and 1 guest