Exemple #1
0
//返回1成功,返回0失败
uint8_t read_rom(void)
{
    uint8_t i, j, rt = 0;
    
    ow_rst();
    send_cmd(CMD_READ_ROM);
    
    for(i = 0; i < 8; i ++)
    {
        rt = read_dat((rom_buf + i));
		
		if (rt == 0)
		{
			//读取失败返回0
			for (j = 0; j < 8; j ++)
			{
				rom_buf[j] = 0;
			}
			
			return 0;
		}
    }    
	
	//读取成功返回1
	return 1;
}
Exemple #2
0
//返回1成功,返回0失败
uint8_t read_mem(void) 
{
    uint8_t i, j, rt = 0;
    
//    ow_rst();
//    send_cmd(CMD_SKIP_ROM); 
    send_cmd(CMD_READ_MEM);
    send_cmd(0x00);
    send_cmd(0x00);
    
    for(i = 0; i < 133; i ++)
    {
        rt = read_dat((mem_buf + i));
		
		if (rt == 0)
		{
			//读失败则返回0
			for (j = 0; j < 133; j ++)
			{
				mem_buf[j] = 0;
			}
			
			return 0;
		}
    }
	
	//成功返回1
	return 1;
}
Exemple #3
0
int main(int argc, char *argv[]) {
    uint8_t *dat = NULL;
    uint32_t sz, ocnt, area;
    int alt, idx = 0, i, type = 0;
    const quest_dat_hdr_t *ptrs[2][18] = { { 0 } };
    const quest_dat_hdr_t *hdr;

    /* Parse the command line... */
    parse_command_line(argc, argv);

    /* See if we got a .qst file a .dat file. */
    type = is_qst(filename, version);

    if(type == 1) {
        dat = read_qst(filename, &sz, version);
    }
    else if(!type) {
        dat = read_dat(filename, &sz, compressed);
    }

    if(!dat) {
        printf("Confused by earlier errors, bailing out.\n");
        return -1;
    }

    parse_quest_objects(dat, sz, &ocnt, ptrs);
    printf("Found %d objects\n", (int)ocnt);

    for(i = 0; i < 18; ++i) {
        if((hdr = ptrs[1][i])) {
            /* XXXX: Ugly! */
            sz = LE32(hdr->size);
            area = LE32(hdr->area);
            alt = 0;

            if((episode == 3 && area > 5) || (episode == 2 && area > 15))
                alt = 1;

            if(parse_map((map_enemy_t *)(hdr->data), sz / sizeof(map_enemy_t),
                         episode, alt, &idx, (int)area)) {
                printf("Cannot parse map!\n");
                return -4;
            }
        }
    }

    return 0;
}
Exemple #4
0
int main(int argc, char **argv) {
    ac = argc;
    avp = argv;
    
    reset_element_information();
    
    if (argc < 2) {
        moldyn_usage();
    }
    
    moldyn_init_graphics(&argc, argv, argv[1]);

    
    read_dat();
    
    if (autoscale) {
        analyze();
    }
    
    read_cycle();
    
    range = fabs(zmax) + fabs(zmin);
    if (range < fabs(xmax) + fabs(xmin))
        range = fabs(xmax) + fabs(xmin);
    
    if (range < fabs(ymax) + fabs(ymin))
        range = fabs(ymax) + fabs(ymin);
    
    magnification = pow(1.2, (double) magstep);
    zeye = -2.0 * range * magnification;
    
    moldyn_update_graphics();

    if (povray <= 0) {
        start_mainloop();
    } else {
        makePov(MOLDYN_EXPORT_TO_PNG);
    }
    return 0;
}