Batch #1633 by eAthena: 0 byte-identical, 1 confirmed by peer review. - fn_02116 RendererDX7Operations::SetTextureMode: logic confirmed by peer review Reviewed-by: ragnarok-clanker
203 lines
13 KiB
C++
203 lines
13 KiB
C++
#include "Render/DX7/RendererDX7Operations.h"
|
|
|
|
// OFFSET: 0x0055ED50
|
|
// FUNCTION: fn_02116
|
|
void RendererDX7Operations::SetTextureMode(int mode) {
|
|
switch (mode) {
|
|
case 0:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
|
break;
|
|
case 1:
|
|
case 2:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
|
break;
|
|
case 3:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
|
break;
|
|
case 4:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_BLENDTEXTUREALPHA);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
|
break;
|
|
case 5:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 6:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_COMPLEMENT);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_COMPLEMENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 7:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_ALPHAREPLICATE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 8:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 9:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_BLENDTEXTUREALPHA);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 10:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_BLENDDIFFUSEALPHA);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 11:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 12:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_COMPLEMENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 13:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 14:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE2X);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 15:
|
|
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADDSIGNED);
|
|
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
}
|
|
}
|