Exemplo n.º 1
0
static int tolua_bindings_atlantis_read_game00(lua_State* tolua_S)
{
#ifndef TOLUA_RELEASE
 tolua_Error tolua_err;
 if (
     !tolua_isstring(tolua_S,1,0,&tolua_err) ||
     !tolua_isnoobj(tolua_S,2,&tolua_err)
 )
  goto tolua_lerror;
 else
#endif
 {
  const char* filename = ((const char*)  tolua_tostring(tolua_S,1,0));
  {
   int tolua_ret = (int)  read_game(filename);
   tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
  }
 }
 return 1;
#ifndef TOLUA_RELEASE
 tolua_lerror:
 tolua_error(tolua_S,"#ferror in function 'read_game'.",&tolua_err);
 return 0;
#endif
}
Exemplo n.º 2
0
int Ctbg::patch_baldur_gam(int fhandle)
{
  npc_header tbgnentry;
  int npccount;
  int ret;

  if(read(fhandle,&tbgnheader.unused,sizeof(tbgnheader)-4)!=sizeof(tbgnheader)-4)
  {
    return -2;
  }
  if(tbgnheader.npcoffset!=sizeof(tbgnheader))
  {
    return -2;
  }
  if(read_game("BALDUR"))
  {
    return -6; //current ie engine doesn't support npcs (only bg2/bg1)
  }
  for(npccount=0;npccount<tbgnheader.npccount;npccount++)
  {
    if(read(fhandle,&tbgnentry,sizeof(npc_header) )!=sizeof(npc_header) )
    {
      return -2;
    }
    ret=the_game.AddNpc(tbgnentry.npcname,tbgnentry.area, tbgnentry.x, tbgnentry.y);
    if(ret<0) return ret;
  }
  return write_game("BALDUR","");
}
Exemplo n.º 3
0
static void test_group_readwrite_dead_faction(CuTest *tc) {
    gamedata data;
    storage store;
    faction *f, *f2;
    unit * u;
    group *g;
    ally *al;
    int fno;

    test_cleanup();
    f = test_create_faction(0);
    fno = f->no;
    CuAssertPtrEquals(tc, f, factions);
    CuAssertPtrEquals(tc, 0, f->next);
    f2 = test_create_faction(0);
    CuAssertPtrEquals(tc, f2, factions->next);
    u = test_create_unit(f2, test_create_region(0, 0, 0));
    CuAssertPtrNotNull(tc, u);
    g = join_group(u, "group");
    CuAssertPtrNotNull(tc, g);
    al = ally_add(&g->allies, f);
    CuAssertPtrNotNull(tc, al);

    CuAssertPtrEquals(tc, f, factions);
    destroyfaction(&factions);
    CuAssertTrue(tc, !f->_alive);
    CuAssertPtrEquals(tc, f2, factions);
    mstream_init(&data.strm);
    gamedata_init(&data, &store, RELEASE_VERSION);
    write_game(&data);
    free_gamedata();
    f = f2 = NULL;
    data.strm.api->rewind(data.strm.handle);
    read_game(&data);
    mstream_done(&data.strm);
    gamedata_done(&data);
    CuAssertPtrEquals(tc, 0, findfaction(fno));
    f2 = factions;
    CuAssertPtrNotNull(tc, f2);
    u = f2->units;
    CuAssertPtrNotNull(tc, u);
    g = get_group(u);
    CuAssertPtrNotNull(tc, g);
    CuAssertPtrEquals(tc, 0, g->allies);
    test_cleanup();
}
Exemplo n.º 4
0
int main(int argc,char **argv)
{
  int n;
  int curr_arg;
  bool bDebug;
  int initial_move;
  int retval;
  struct game curr_game;

  if ((argc < 2) || (argc > 3)) {
    printf(usage);
    return 1;
  }

  bDebug = false;

  for (curr_arg = 1; curr_arg < argc; curr_arg++) {
    if (!strcmp(argv[curr_arg],"-debug"))
      bDebug = true;
    else
      break;
  }

  if (argc - curr_arg != 1) {
    printf(usage);
    return 2;
  }

  retval = read_game(argv[argc-1],&curr_game,err_msg);

  if (retval) {
    printf("read_game of %s failed: %d\n",argv[argc-1],retval);
    printf("curr_move = %d\n",curr_game.curr_move);
    return 3;
  }

  printf("%s\n",curr_game.chessfilename);
  printf("title = %s\n",curr_game.title);
  printf("orientation = %d\n",curr_game.orientation);
  printf("num_moves = %d\n",curr_game.num_moves);

  return 0;
}