Beispiel #1
0
void testVerticalContenerSdl(void)
{
  GameConfig cfg;
  Entity *ret;
  YWidgetState *wid;
  int t = ydJsonInit();
  void *jsonManager;

  /* Init libs */
  g_assert(!ygInitGameConfig(&cfg, NULL, SDL2));
  g_assert(!ygInit(&cfg));

  /* Parsing json */
  jsonManager = ydNewManager(t);
  ret = ydFromFile(jsonManager, TESTS_PATH"/widget.json");
  ret = yeGet(ret, "ContenerTest");
  g_assert(ret);
  ywinAddCallback(ywinCreateNativeCallback("menuTest", testMenuEnter));

  wid = ywidNewWidget(ret, NULL);
  g_assert(wid);

  do {
    g_assert(ywidRend(wid) != -1);
  } while(ywidDoTurn(wid) != ACTION);

  YE_DESTROY(ret);
  ygEnd();
}
Beispiel #2
0
int ygInit(GameConfig *cfg)
{
  static int t;

  /* Init parseurs */
  CHECK_AND_RET(t = ydJsonInit(), -1, -1,
		    "json init failed");
  CHECK_AND_RET(jsonManager = ydNewManager(t), NULL, -1,
		    "json init failed");
  parsers[t] = jsonManager;

  /* Init scripting */
  /* TODO init internal lua function */
  CHECK_AND_RET(t = ysLuaInit(), -1, -1, "lua init failed");
  CHECK_AND_RET(luaManager = ysNewManager(NULL, t), NULL, -1,
		    "lua init failed");

  CHECK_AND_RET(yesLuaRegister(luaManager), -1, -1, "lua init failed");

  /* Init widgets */
  CHECK_AND_RET(ywidInitCallback(), -1, -1, "can not init callback");
  CHECK_AND_RET(ywinAddCallback(ywinCreateNativeCallback("FinishGame",
							 ygTerminateCallback)),
		-1, -1, "can not add game's callback");
  CHECK_AND_RET(ywMenuInit(), -1, -1, "Menu init failed");
  CHECK_AND_RET(ywMapInit(), -1, -1, "Map init failed");
  CHECK_AND_RET(ywTextScreenInit(), -1, -1, "Text Screen init failed");
  CHECK_AND_RET(ywContenerInit(), -1, -1, "Contener init failed");

  /* Init sound */
  sound_init(LIB_VLC);

  for (GList *tmp = cfg->rConf; tmp; tmp = tmp->next) {
    //TODO check which render to use :)
    if (yuiStrEqual(TO_RC(tmp->data)->name, "curses")) {
#ifdef WITH_CURSES
      ycursInit();
      CHECK_AND_RET(ycursRegistreMenu(), -1, -1, "Menu init failed");
      CHECK_AND_RET(ycursRegistreTextScreen(), -1, -1,
			"Text Screen init failed");
      CHECK_AND_RET(ycursRegistreMap(), -1, -1, "Map init failed");
#else
      /* print error */
#endif
    } else if (yuiStrEqual(TO_RC(tmp->data)->name, "sdl2")) {
#ifdef WITH_SDL
      ysdl2Init();
      CHECK_AND_RET(ysdl2RegistreTextScreen(), -1, -1,
			"Text Screen init failed");
      CHECK_AND_RET(ysdl2RegistreMenu(), -1, -1, "Menu init failed");
      CHECK_AND_RET(ysdl2RegistreMap(), -1, -1, "Map init failed");
#else
      /* print error */
#endif
    }
  }
  init = 1;
  return 0;
}
Beispiel #3
0
void testEntityPatch(void)
{
  yeInitMem();
  int t = ydJsonInit();
  void *jsonManager;
  Entity *ret;
  Entity *mn;
  Entity *mn2;
  Entity *entries;
  Entity *patch;

  jsonManager = ydNewManager(t);
  ret = ydFromFile(jsonManager, TESTS_PATH"/widget.json", NULL);
  mn = yeGet(ret, "MenuTest");
  mn2 = yeCreateArray(NULL, NULL);

  yeCopy(mn, mn2);
  entries = yeGet(mn2, "entries");

  yeRemoveChild(entries, 2);
  g_assert(yeLen(entries) == 2);

  patch = yePatchCreate(mn, mn2, NULL, NULL);
  g_assert(patch);
  yePatchAply(mn, patch);
  yeDestroy(patch);

  g_assert(yeLen(yeGet(mn, "entries")) == 2);

  /* Manu rentre chez toi c'est a moi qu'tu fait d'la peine... */
  yeReCreateString("manu", mn2, "<type>");
  yeCreateString("ayoyoyo", mn2, "wololo");
  yeRemoveChild(mn2, "background");
  yeReCreateInt(1337, mn2, "button_background");
  yeSetAt(yeGet(entries, 0), "text", "new text");
  yeCreateFloat(3.14, entries, NULL);

  patch = yePatchCreate(mn, mn2, NULL, NULL);
  g_assert(patch);

  yePatchAply(mn, patch);

  g_assert(!yeStrCmpAt(mn, "ayoyoyo", "wololo"));
  /* une gonsesse de perdu c'est 10 copains qui reviennes */
  g_assert(!yeStrCmpAt(mn, "manu", "<type>"));
  g_assert(yeGetIntAt(mn, "button_background") == 1337);
  g_assert(!yeGet(mn, "background"));
  entries = yeGet(mn, "entries");
  g_assert(yeGetFloatAt(entries, 2) == 3.14);
  g_assert(!yeStrCmpAt(yeGet(entries, 0), "new text", "text"));
  ydJsonEnd();
  ydDestroyManager(jsonManager);
  yeEnd();
}
Beispiel #4
0
void testPanelMenuSdl2(void)
{
  yeInitMem();
  int t = ydJsonInit();
  void *jsonManager;
  Entity *oret, *ret;
  YWidgetState *wid;

  ysRegistreFunc(ysNativeManager(), "menuTest", testMenuEnter);

  /* load files */
  g_assert(t != -1);
  g_assert(ydJsonGetType() == t);
  jsonManager = ydNewManager(t);
  g_assert(jsonManager != NULL);
  oret = ydFromFile(jsonManager, TESTS_PATH"/widget.json", NULL);
  ret = yeGet(oret, "MenuTest");
  g_assert(ret);
  g_assert(!ydJsonEnd());
  g_assert(!ydDestroyManager(jsonManager));

  t = ywMenuInit();
  g_assert(t == 0);

  g_assert(ysdl2Init() != -1);
  g_assert(ysdl2Type() == 0);

  yeCreateString("panel", ret, "mn-type");
  g_assert(ysdl2RegistreMenu() == 0);

  wid = ywidNewWidget(ret, NULL);
  g_assert(wid);

  do {
    g_assert(ywidRend(wid) != -1);
  } while(ywidDoTurn(wid) != ACTION);

  g_assert(!ywMenuEnd());
  YWidDestroy(wid);
  ysdl2Destroy();
  /* end libs */
  YE_DESTROY(oret);
  yeEnd();
}