⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 endtxt.c

📁 The source code of Doom legacy for windows
💻 C
字号:
/* * Function to write the Doom end message text * * Copyright (C) 1998 by Udo Munk <udo@umserver.umnet.de> * * This code is provided AS IS and there are no guarantees, none. * Feel free to share and modify. */#include <stdio.h>#include <stdlib.h>// need this 19990118 by Kin#include "doomdef.h"#include "w_wad.h"#include "z_zone.h"#include "m_argv.h"#include "endtxt.h"void ShowEndTxt(){	int i, j;	int att = 0;	int nlflag = 0;	unsigned short *text;	char *col;	/* if option -noendtxt is set, don't print the text */	if (M_CheckParm("-noendtxt"))		return;	/* if the xterm has more then 80 columns we need to add nl's */	col = getenv("COLUMNS");	if (col) {		if (atoi(col) > 80)			nlflag++;	}	/* get the lump with the text */	text = W_CacheLumpNum(W_GetNumForName("ENDOOM"), PU_CACHE);	/* print 80x25 text and deal with the attributes too */	for (i=1; i<=80*25; i++) {		/* attribute first */		/* attribute changed? */		if ((j = *text >> 8) != att) {			/* save current attribute */			att = j;			/* set new attribute, forground color first */			printf("\033[");			switch (j & 0x0f) {			case 0:		/* black */				printf("30");				break;			case 1:		/* blue */				printf("34");				break;			case 2:		/* green */				printf("32");				break;			case 3:		/* cyan */				printf("36");				break;			case 4:		/* red */				printf("31");				break;			case 5:		/* magenta */				printf("35");				break;			case 6:		/* brown */				printf("33");				break;			case 7:		/* bright grey */				printf("37");				break;			case 8:		/* dark grey */				printf("1;30");				break;			case 9:		/* bright blue */				printf("1;34");				break;			case 10:	/* bright green */				printf("1;32");				break;			case 11:	/* bright cyan */				printf("1;36");				break;			case 12:	/* bright red */				printf("1;31");				break;			case 13:	/* bright magenta */				printf("1;35");				break;			case 14:	/* yellow */				printf("1;33");				break;			case 15:	/* white */				printf("1;37");				break;			}			printf("m");			/* now background color */			printf("\033[");			switch((j >> 4) & 0x0f) {			case 0:		/* black */				printf("40");				break;			case 1:		/* blue */				printf("44");				break;			case 2:		/* green */				printf("42");				break;			case 3:		/* cyan */				printf("46");				break;			case 4:		/* red */				printf("41");				break;			case 5:		/* magenta */				printf("45");				break;			case 6:		/* brown */				printf("43");				break;			case 7:		/* bright grey */				printf("47");				break;			case 8:		/* dark grey */				printf("1;40");				break;			case 9:		/* bright blue */				printf("1;44");				break;			case 10:	/* bright green */				printf("1;42");				break;			case 11:	/* bright cyan */				printf("1;46");				break;			case 12:	/* bright red */				printf("1;41");				break;			case 13:	/* bright magenta */				printf("1;45");				break;			case 14:	/* yellow */				printf("1;43");				break;			case 15:	/* white */				printf("1;47");				break;			}			printf("m");		}		/* now the text */		putchar(*text++ & 0xff);		/* do we need a nl? */		if (nlflag) {			if (!(i % 80)) {				printf("\033[0m");				att = 0;				printf("\n");			}		}	}	/* all attributes off */	printf("\033[0m");	if (nlflag)		printf("\n");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -