Doom Wiki
Advertisement
Doom Wiki

Doom hace honor a su nombre en el código fuente. Aquí hay una lista de algunos códigos fuente estúpidos, inútiles y divertidos.

Código fuente de Doom[]

am_map.c[]

Una secuencia extraña que había intrigado a los dehackers durante mucho tiempo:

static fuck = 0;

// For debugging only
if ( fl->a.x < 0 || fl->a.x >= f_w
|| fl->a.y < 0 || fl->a.y >= f_h
|| fl->b.x < 0 || fl->b.x >= f_w
|| fl->b.y < 0 || fl->b.y >= f_h)
{
fprintf(stderr, "fuck %d \r", fuck++);
return;
}

doomdef.h[]

Chicos, intentemos mantener el lenguaje flamewars fuera de los archivos de encabezado principales, ¿de acuerdo?

// Defines suck. C sucks.
// C++ might sucks for OOP, but it sure is a better C.
// So there.
#define SCREENWIDTH 320

d_englsh.h[]

¿A alguien le importa?

// The following should NOT be changed unless it seems
// just AWFULLY necessary

#define HUSTR_PLRGREEN "Green: "
#define HUSTR_PLRINDIGO "Indigo: "
#define HUSTR_PLRBROWN "Brown: "
#define HUSTR_PLRRED "Red: "

d_main.c[]

¿Alguna vez se preguntó de dónde obtuvo su nombre el parámetro de línea de comando "-wart (verruga)"?

p = M_CheckParm ("-wart");
if (p)
{
myargv[p][4] = 'p'; // big hack, change to -warp

...
}

dstrings.c[]

Misteriosos mensajes "adicionales" encontrados agregados a la lista de mensajes de salida tipo "¿estás seguro de que quieres salir?":

char* endmsg[NUM_QUITMESSAGES+1]=
{
// DOOM1
QUITMSG,
"please don't leave, there's more\ndemons to toast!",
...

// QuitDOOM II messages
"you want to quit?\nthen, thou hast lost an eighth!",
...

// FinalDOOM?
"fuck you, pussy!\nget the fuck out!",
"you quit and i'll jizz\nin your cystholes!",
"if you leave, i'll make\nthe lord drink my jizz.",
"hey, ron! can we say\n'fuck' in the game?",
"i'd leave: this is just\nmore monsters and levels.\nwhat a load.",
"suck it down, asshole!\nyou're a fucking wimp!",
"don't quit now! we're \nstill spending your money!",

// Internal debug. Different style, too.
"THIS IS NO MESSAGE!\nPage intentionally left blank."
};

f_wipe.c[]

¿Alguien puede optimizar mi trasero?

// makes this wipe faster (in theory)
// to have stuff in column-major format
wipe_shittyColMajorXform((short*)wipe_scr_start, width/2, height);
wipe_shittyColMajorXform((short*)wipe_scr_end, width/2, height);

hu_stuff.c[]

if (showMessages || message_dontfuckwithme)
{
// display message if necessary
if ((plr->message && !message_nottobefuckedwith)
|| (plr->message && message_dontfuckwithme))
{
HUlib_addMessageToSText(&w_message, 0, plr->message);
plr->message = 0;
message_on = true;
message_counter = HU_MSGTIMEOUT;
message_nottobefuckedwith = message_dontfuckwithme;
message_dontfuckwithme = 0;
}
} // else message_on = false;

i_video.c[]

//
// I_StartFrame
//
void I_StartFrame (void)
{
// er? 
}
//
// I_UpdateNoBlit
//
void I_UpdateNoBlit (void)
{
// what is this?
}

p_door.c[]

// UNUSED
// Separate into p_slidoor.c?

#if 0 // ABANDONED TO THE MISTS OF TIME!!!
//
// EV_SlidingDoor : slide a door horizontally
// (animate midtexture, then set noblocking line)
//

r_defs.h[]

¿Alguien sabe?

//
// Now what is a visplane, anyway?
//
typedef struct
{
...
} visplane_t;

r_draw.c[]

Es una buena idea documentar los números mágicos antes de que olvides lo que significan.

// ?
#define MAXWIDTH=1120;
#define MAXHEIGHT=832;

r_main.c[]

Lo que piensan los codificadores de Doom sobre el uso del carácter ASCII 0x08 (cursor a la izquierda), que se usa en la barra de carga. ¿Recuerdas esta línea "R_Init: Init DOOM refresh daemon - [................................................]"

//Really complex printing shit...

r_plane.c[]

¿Qué es tan importante que solo debe ejecutarse al inicio del juego?

//
// R_InitPlanes
// Only at game startup.
//
void R_InitPlanes (void)
{
// Doh!
}

st_stuff.c[]

Alguien piensa que los trucos en el código fuente no están lo suficientemente ofuscados.

// Massive bunches of cheat shit
// to keep it from being easy to figure them out.
// Yeah, right...

Así que eso es lo que significa el código de trucos para sin recorte (idspispopd) equivalente a idclip en Doom II...

//  Smashing Pumpkins Into Samml Piles Of Putried Debris. 
unsigned charcheat_noclip_seq[] =
{
0xb2, 0x26, 0xea, 0x2a, 0xb2,// idspispopd
0xea, 0x2a, 0xf6, 0x2a, 0x26, 0xff
};

wi_stuff.c[]

for (i=0;i<a->nanims;i++)
{
// MONDO HACK!
if (wbs->epsd != 1 || j != 8) 
{
// animations
sprintf(name, "WIA%d%.2d%.2d", wbs->epsd, j, i); 
a->p[i] = W_CacheLumpName(name, PU_STATIC);
}
else
{
// HACK ALERT!
a->p[i] = anims[1][4].p[i]; 
}
}

z_zone.c[]

// Zone Memory Allocation, perhaps NeXT ObjectiveC inspired.
//Remark: this was the only stuff that, according
// to John Carmack, might have been useful for
// Quake.

Código fuente de Heretic[]

i_sound.c[]

Los codificadores de Raven Software no estaban muy contentos con la forma en que tenían que trabajar con el código de sonido:

// Why PC's Suck, Reason #8712

También objetaron la falta de consideraciones del formato MUS hacia el estándar MIDI:

//  snd_MaxVolume = 127;
//Damn you, Dave Taylor!
Advertisement