Esempio n. 1
0
ScummDebugger::ScummDebugger(ScummEngine *s)
	: GUI::Debugger() {
	_vm = s;

	// Register variables
	registerVar("scumm_speed", &_vm->_fastMode);
	registerVar("scumm_room", &_vm->_currentRoom);
	registerVar("scumm_roomresource", &_vm->_roomResource);
	registerVar("scumm_vars", &_vm->_scummVars, _vm->_numVariables);

	// Register commands
	registerCmd("continue",  WRAP_METHOD(ScummDebugger, cmdExit));
	registerCmd("restart",   WRAP_METHOD(ScummDebugger, Cmd_Restart));

	registerCmd("actor",     WRAP_METHOD(ScummDebugger, Cmd_Actor));
	registerCmd("actors",    WRAP_METHOD(ScummDebugger, Cmd_PrintActor));
	registerCmd("box",       WRAP_METHOD(ScummDebugger, Cmd_PrintBox));
	registerCmd("matrix",    WRAP_METHOD(ScummDebugger, Cmd_PrintBoxMatrix));
	registerCmd("camera",    WRAP_METHOD(ScummDebugger, Cmd_Camera));
	registerCmd("room",      WRAP_METHOD(ScummDebugger, Cmd_Room));
	registerCmd("objects",   WRAP_METHOD(ScummDebugger, Cmd_PrintObjects));
	registerCmd("object",    WRAP_METHOD(ScummDebugger, Cmd_Object));
	registerCmd("script",    WRAP_METHOD(ScummDebugger, Cmd_Script));
	registerCmd("scr",       WRAP_METHOD(ScummDebugger, Cmd_Script));
	registerCmd("scripts",   WRAP_METHOD(ScummDebugger, Cmd_PrintScript));
	registerCmd("importres", WRAP_METHOD(ScummDebugger, Cmd_ImportRes));

	if (_vm->_game.id == GID_LOOM)
		registerCmd("drafts",  WRAP_METHOD(ScummDebugger, Cmd_PrintDraft));

	if (_vm->_game.id == GID_MONKEY && _vm->_game.platform == Common::kPlatformSegaCD)
		registerCmd("passcode",  WRAP_METHOD(ScummDebugger, Cmd_Passcode));

	registerCmd("loadgame",  WRAP_METHOD(ScummDebugger, Cmd_LoadGame));
	registerCmd("savegame",  WRAP_METHOD(ScummDebugger, Cmd_SaveGame));

	registerCmd("debug",     WRAP_METHOD(ScummDebugger, Cmd_Debug));

	registerCmd("show",      WRAP_METHOD(ScummDebugger, Cmd_Show));
	registerCmd("hide",      WRAP_METHOD(ScummDebugger, Cmd_Hide));

	registerCmd("imuse",     WRAP_METHOD(ScummDebugger, Cmd_IMuse));

	registerCmd("resetcursors",    WRAP_METHOD(ScummDebugger, Cmd_ResetCursors));
}
Esempio n. 2
0
MystConsole::MystConsole(MohawkEngine_Myst *vm) : GUI::Debugger(), _vm(vm) {
	registerCmd("changeCard",			WRAP_METHOD(MystConsole, Cmd_ChangeCard));
	registerCmd("curCard",			WRAP_METHOD(MystConsole, Cmd_CurCard));
	registerCmd("var",				WRAP_METHOD(MystConsole, Cmd_Var));
	registerCmd("curStack",			WRAP_METHOD(MystConsole, Cmd_CurStack));
	registerCmd("changeStack",		WRAP_METHOD(MystConsole, Cmd_ChangeStack));
	registerCmd("drawImage",			WRAP_METHOD(MystConsole, Cmd_DrawImage));
	registerCmd("drawRect",			WRAP_METHOD(MystConsole, Cmd_DrawRect));
	registerCmd("setResourceEnable",	WRAP_METHOD(MystConsole, Cmd_SetResourceEnable));
	registerCmd("playSound",			WRAP_METHOD(MystConsole, Cmd_PlaySound));
	registerCmd("stopSound",			WRAP_METHOD(MystConsole, Cmd_StopSound));
	registerCmd("playMovie",			WRAP_METHOD(MystConsole, Cmd_PlayMovie));
	registerCmd("disableInitOpcodes",	WRAP_METHOD(MystConsole, Cmd_DisableInitOpcodes));
	registerCmd("cache",				WRAP_METHOD(MystConsole, Cmd_Cache));
	registerCmd("resources",			WRAP_METHOD(MystConsole, Cmd_Resources));
	registerCmd("quickTest",            WRAP_METHOD(MystConsole, Cmd_QuickTest));
	registerVar("show_resource_rects",  &_vm->_showResourceRects);
}
Esempio n. 3
0
RivenConsole::RivenConsole(MohawkEngine_Riven *vm) : GUI::Debugger(), _vm(vm) {
	registerCmd("changeCard",		WRAP_METHOD(RivenConsole, Cmd_ChangeCard));
	registerCmd("curCard",		WRAP_METHOD(RivenConsole, Cmd_CurCard));
	registerCmd("dumpCard",		WRAP_METHOD(RivenConsole, Cmd_DumpCard));
	registerCmd("var",			WRAP_METHOD(RivenConsole, Cmd_Var));
	registerCmd("playSound",		WRAP_METHOD(RivenConsole, Cmd_PlaySound));
	registerCmd("playSLST",       WRAP_METHOD(RivenConsole, Cmd_PlaySLST));
	registerCmd("stopSound",		WRAP_METHOD(RivenConsole, Cmd_StopSound));
	registerCmd("curStack",		WRAP_METHOD(RivenConsole, Cmd_CurStack));
	registerCmd("dumpStack",		WRAP_METHOD(RivenConsole, Cmd_DumpStack));
	registerCmd("changeStack",	WRAP_METHOD(RivenConsole, Cmd_ChangeStack));
	registerCmd("hotspots",		WRAP_METHOD(RivenConsole, Cmd_Hotspots));
	registerCmd("zipMode",		WRAP_METHOD(RivenConsole, Cmd_ZipMode));
	registerCmd("dumpScript",     WRAP_METHOD(RivenConsole, Cmd_DumpScript));
	registerCmd("listZipCards",   WRAP_METHOD(RivenConsole, Cmd_ListZipCards));
	registerCmd("getRMAP",		WRAP_METHOD(RivenConsole, Cmd_GetRMAP));
	registerCmd("combos",         WRAP_METHOD(RivenConsole, Cmd_Combos));
	registerCmd("sliderState",    WRAP_METHOD(RivenConsole, Cmd_SliderState));
	registerVar("show_hotspots",  &_vm->_showHotspots);
}
Esempio n. 4
0
int C_THISCLASS::render(char visdata[2][2][576], int isBeat, int *framebuffer, int *fbout, int w, int h)
{
  //pow(sin(d),dpos)*1.7
  if (need_recompile)
  {
    int err=0;
    int x;
    EnterCriticalSection(&rcs);
    if (!var_b || g_reset_vars_on_recompile)
    {
      clearVars();
      var_x = registerVar("x");
      var_y = registerVar("y");
      var_w = registerVar("w");
      var_h = registerVar("h");
      var_b = registerVar("b");
      var_alpha = registerVar("alpha");
      inited=0;
    }
    need_recompile=0;
    for (x = 0; x < 3; x ++) 
    {
      freeCode(codehandle[x]);
      codehandle[x]=compileCode(effect_exp[x].get());
    }
    LeaveCriticalSection(&rcs);
  }
  *var_w=w;
  *var_h=h;
  *var_b=isBeat?1.0:0.0;

  if (isBeat&0x80000000) return 0;

  if (codehandle[0] && (!inited || m_lasth != h || m_lastw != w)) 
  { 
    m_lastw=w;
    m_lasth=h;
    *var_x=0; *var_y=0; *var_alpha=0.5; 
    executeCode(codehandle[0],visdata); 
    inited=1; 
  }

  executeCode(codehandle[1],visdata);
  if (isBeat) executeCode(codehandle[2],visdata);

  int doblend=blend;
  int ialpha=127;
  if (doblend)
  {
    ialpha=(int)(*var_alpha*255.0);
    if (ialpha <= 0) return 0;
    if (ialpha >= 255) doblend=0;
  }
  int *inptr=framebuffer;
  int *blendptr=framebuffer;
  int *outptr=fbout;
  int xa=(int)*var_x;
  int ya=(int)*var_y;
  
  // var_x, var_y at this point tell us how to shift, and blend also tell us what to do.
  if (!subpixel) 
  {
    int endy=h+ya;
    int endx=w+xa;
    int x,y;
    if (endx > w) endx=w;
    if (endy > h) endy=h;
    if (ya < 0) inptr += -ya*w;
    if (ya > h) ya=h;
    if (xa > w) xa=w;
    for (y = 0; y < ya; y ++)
    {
      x=w; 
      if (!doblend) while (x--) *outptr++ = 0;
      else while (x--) *outptr++ = BLEND_ADJ(0,*blendptr++,ialpha);
    }
    for (; y < endy; y ++)
    {
      int *ip=inptr;
      if (xa < 0) inptr += -xa;
      if (!doblend)
      {
        for (x = 0; x < xa; x ++) *outptr++=0;
        for (; x < endx; x ++) *outptr++=*inptr++;
        for (; x < w; x ++) *outptr++=0;
      }
      else
      {
        for (x = 0; x < xa; x ++) *outptr++ = BLEND_ADJ(0,*blendptr++,ialpha);
        for (; x < endx; x ++) *outptr++ = BLEND_ADJ(*inptr++,*blendptr++,ialpha);
        for (; x < w; x ++) *outptr++ = BLEND_ADJ(0,*blendptr++,ialpha);
      }
      inptr=ip+w;
    }
    for (; y < h; y ++)
    {   
      x=w; 
      if (!doblend) while (x--) *outptr++ = 0;
      else while (x--) *outptr++ = BLEND_ADJ(0,*blendptr++,ialpha);
    }
  }
  else // bilinear filtering version
  {
    
    int xpart,ypart;

    {
      double vx=*var_x;
      double vy=*var_y;
      xpart=(int) ((vx - (int)vx)*255.0);
      if (xpart < 0) xpart=-xpart;
      else { xa++; xpart=255-xpart; }
      if (xpart < 0) xpart=0;
      if (xpart > 255) xpart=255;

      ypart=(int) ((vy - (int)vy)*255.0);
      if (ypart < 0) ypart=-ypart;
      else { ya++; ypart=255-ypart; }
      if (ypart < 0) ypart=0;
      if (ypart > 255) ypart=255;
    }

    int x,y;
    if (ya < 1-h) ya=1-h;
    if (xa < 1-w) xa=1-w;
    if (ya > h-1) ya=h-1;
    if (xa > w-1) xa=w-1;
    if (ya < 0) inptr += -ya*w;
    int endy=h-1+ya;
    int endx=w-1+xa;
    if (endx > w-1) endx=w-1;
    if (endy > h-1) endy=h-1;
    if (endx < 0) endx=0;
    if (endy < 0) endy=0;
    for (y = 0; y < ya; y ++)
    {
      x=w; 
      if (!doblend) while (x--) *outptr++ = 0;
      else while (x--) *outptr++ = BLEND_ADJ(0,*blendptr++,ialpha);
    }
    for (; y < endy; y ++)
    {
      int *ip=inptr;
      if (xa < 0) inptr += -xa;
      if (!doblend)
      {
        for (x = 0; x < xa; x ++) *outptr++=0;
        for (; x < endx; x ++) *outptr++=BLEND4((unsigned int *)inptr++,w,xpart,ypart);
        for (; x < w; x ++) *outptr++=0;
      }
      else
      {
        for (x = 0; x < xa; x ++) *outptr++ = BLEND_ADJ(0,*blendptr++,ialpha);
        for (; x < endx; x ++) *outptr++ = BLEND_ADJ(BLEND4((unsigned int *)inptr++,w,xpart,ypart),*blendptr++,ialpha);
        for (; x < w; x ++) *outptr++ = BLEND_ADJ(0,*blendptr++,ialpha);
      }
      inptr=ip+w;
    }
    for (; y < h; y ++)
    {   
      x=w; 
      if (!doblend) while (x--) *outptr++ = 0;
      else while (x--) *outptr++ = BLEND_ADJ(0,*blendptr++,ialpha);
    }
  }
  #ifndef NO_MMX
    __asm emms;
  #endif

  return 1;
}
Esempio n. 5
0
reShader::reShader()
{
	program = 0;
	registerVar(new reShaderVar("viewMatrix", viewMatrix));
	registerVar(new reShaderVar("projMatrix", projMatrix));
	registerVar(new reShaderVar("worldMatrix", worldMatrix));
	registerVar(new reShaderVar("diffuseTexture", diffuseTexture, reShaderVar::sampler));
	registerVar(new reShaderVar("diffuseColor",	diffuseColor));
	registerVar(new reShaderVar("cellSize",	cellSize));
	registerVar(new reShaderVar("boneMatrices",	boneMatrices));
	registerVar(new reShaderVar("lightMatrices", lightMatrices));

	registerVar(new reShaderVar("lightMatrix",	lightMatrix));
	registerVar(new reShaderVar("lightViewMatrix", lightViewMatrix));
	registerVar(new reShaderVar("lightProjMatrix", lightProjMatrix));
	registerVar(new reShaderVar("biasMatrix", biasMatrix));

	registerVar(new reShaderVar("splatTextures", splatTextures, reShaderVar::sampler, 4));
	registerVar(new reShaderVar("shadowMap", shadowMap, reShaderVar::sampler));
	registerVar(new reShaderVar("lightNearDistance", lightNearDistance));
	registerVar(new reShaderVar("lightFarDistance", lightFarDistance));
	registerVar(new reShaderVar("nearDistance", nearDistance));
	registerVar(new reShaderVar("farDistance", farDistance));
	registerVar(new reShaderVar("position",	position, reShaderVar::attribute));
	registerVar(new reShaderVar("normal", normal, reShaderVar::attribute));
	registerVar(new reShaderVar("uv)", uv, reShaderVar::attribute));
	registerVar(new reShaderVar("boneWeights", boneWeights, reShaderVar::attribute));
	registerVar(new reShaderVar("boneIds", boneIds, reShaderVar::attribute));
}