网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月04日漏签0天
沈阳化工大学吧 关注:116,228贴子:3,795,256
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1回复贴,共1页
<<返回沈阳化工大学吧
>0< 加载中...

(⊙_⊙)

  • 只看楼主
  • 收藏

  • 回复
  • 我们都很渺小
  • 水龙吟
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include "config.h"
#ifdef UNIX
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#endif
#include "cfgfile.h"
#include "options.h"
#include "hiscore.h"
#include "input/input.h"
#include "input/keyboard.h"
#include "input/joystick.h"
#include "draw/draw.h"
char cfgfilename[80] = CONFIG_FILENAME;
static const char input_keynames[12][6] = {
"left", "right", "up", "down", "a", "b", "start",
"rot", "sdrop", "rot-a", "rot-b", "hdrop"
};
static const char tcolor_keys[8] = "ijlostz";
void writehiscores(FILE *fp);
void setcfgfilename(const char *argv0)
{
#ifdef UNIX
struct passwd *pwd;
const char *s = getenv("HOME");
if (!s && (pwd = getpwuid(getuid())))
s = pwd->pw_dir;
if (s && strlen(s)+strlen(CONFIG_FILENAME) < 79) {
strcpy(cfgfilename, s);
strcat(cfgfilename, "/"CONFIG_FILENAME);
}
#else
int n = strlen(argv0);
do n--;
while (n>=0 && argv0[n] !='\\' && argv0[n] !='/');
if (n>=0 && n+strlen(CONFIG_FILENAME) < 79) {
strncpy(cfgfilename, argv0, n+1);
cfgfilename[n+1] = '\0';
strcat(cfgfilename, CONFIG_FILENAME);
}
#endif
}
static int readname(const char *line, char *dest)
{
int i, n;
if (line[0] == '[') {
line++;
n = 7;
} else
n = 11;
i = 0;
while (i < n && (i && line[i] == '-' || islower(line[i]) ||
isdigit(line[i]))) {
dest[i] = line[i];
i++;
}
if (!i || line[i-1] == '-')
return 0;
dest[i] = '\0';
if (n == 7) {
if (line[i] != ']')
return 0;
} else {
while (isspace(line[i]))
i++;
if (line[i] != '=')
return 0;
}
return 1;
}
static int readopt(const char *line, char *key, union val *val, int *tp)
{
char *p;
if (line[0] == '\n')
return 0;
if (readname(line, key)) {
if (line[0] == '[')
return 1;
if (p = strchr(line, '=')) {
*tp = strtoval(p+1, val);
return 1;
}
}
return 0;
}
#if JOYSTICK && TWOPLAYER
static void read_inputdev_player(int pl)
{
int i = 0;
if (pl != 1 && pl != 2)
return;
if (sect_hd.next->name[0] == 'j')
i = sect_hd.next->name[2]-'0'+1;
inputdevs_player[i] = pl;
}
#endif
static int nametokeypress_i(int i, int flags)
{
if (i < 6)
return MVLEFT+i | flags;
#ifdef JOYSTICK
if (i == 6)
return STARTBTN;
#endif
if (i == 12)
return 0;
return (i < 11 ? MVUP+i-7 : HARDDROP) | IN_GAME | flags;
}
static int nametokeypress(char *name)



  • 我们都很渺小
  • 水龙吟
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
{
int i = 0;
int flags;
#ifdef TWOPLAYER
if (name[0] == 'p') {
flags = (name[1]=='1') ? PLAYER_1 : PLAYER_2;
memmove(name, name+2, strlen(name+2)+1);
} else
#endif
flags = 0;
while (strcmp(name, input_keynames[i]) && i < 12)
i++;
return nametokeypress_i(i, flags);
}
static int test_input_chr9(const char *s)
{
int i = 0;
while (i < 9) {
if (!strcmp(s, input_chr9[i]))
return i+1;
i++;
}
return 0;
}
static unsigned char *stdin_convertval(union val *val, int tp)
{
unsigned char bs[2] = "";
if (!tp) {
if (val->integ < 0)
;
else if (val->integ < 10)
bs[0] = val->integ+'0';
else if (val->integ > ' ') {
#ifdef CURSES
bs[0] = val->integ & 0xFF;
bs[1] = val->integ >> 8;
#else
return NULL;
#endif
} else
bs[0] = val->integ;
} else {
if (tp == 2)
strncpy(val->str, val->p, 4);
if (!val->str[1])
return (unsigned char *) val->str;
#if !CURSES
if (val->str[0] == ESC)
return (unsigned char *) val->str;
else if (!val->str[3] && sscanf(val->str, "0%X", &tp) == 1)
bs[1] = tp;
#endif
else {
bs[0] = test_input_chr9(val->str);
if (!bs[0])
return NULL;
}
}
memcpy(val->str, bs, 2);
return (unsigned char *) val->str;
}
static int readkeymapping(char *key, union val val, int tp)
{
int keypress = nametokeypress(key);
unsigned char *input;
if (!keypress)
return 0;
#ifdef JOYSTICK
if (sect_hd.next->name[0] == 'j') {
if (!tp)
val.integ += '0';
else if (tp != 1 || !(val.integ = test_input_chr9(val.str)))
return 0;
keypress &= 63 | IN_GAME;
js_setmapping(sect_hd.next->name[2]=='1', val.integ, keypress);
} else
#endif
if ((keypress & 63) == STARTBTN)
;
else if (input = stdin_convertval(&val, tp)) {
if (input[0] | input[1])
kb_setmapping(input, keypress);
} else
return 0;
return 1;
}
static void read_tetrom_color(const char *key, int val)
{
char *p;
if (strlen(key) > 1 || val < 1 || val > 7)
return;
if (p = strchr(tcolor_keys, key[0]))
tetrom_colors[p-tcolor_keys] = val;
}
static int is_inputconf(const char *key)
{
return !strcmp(key, "stdin")
#ifdef JOYSTICK
|| !strcmp(key, "js0") || !strcmp(key, "js1")
#endif
;
}
void readoptions()
{
FILE *fp;
char line[80];
char key[12];
union val val;
int tp;
char inputconf = 0;
char tcolors = 0;
if (sect_hd.opts || sect_hd.next)
return;
fp = fopen(cfgfilename, "r");
if (!fp)
return;
while (fgets(line, 80, fp)) {
if (!readopt(line, key, &val, &tp))
continue;
if (line[0] == '[') {
if (!strcmp(key, "hiscore"))
break;
inputconf = is_inputconf(key);
tcolors = !strcmp(key, "tcolors");
if (!tcolors)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回沈阳化工大学吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示