bool Cursor::ReadBin(ResourceData *rd) { Point pt; pt.x = rd->GetByte(); pt.y = rd->GetByte(); SetColors(rd->GetByte()); rd->GetByte(); Point pt1; pt1.x = rd->GetWord(); pt1.y = rd->GetWord(); SetHotspot(pt1); int bytes = rd->GetDWord(); int offset = rd->GetDWord(); if (!pt.x) pt.x = 32; if (!pt.y) pt.y = (bytes - 0x30) / ((pt.x / 8) *2); SetSize(pt); data = new ResourceData(rd->GetData() + offset, bytes); if (rd->PastEnd() || offset + bytes > rd->GetLen()) throw new std::runtime_error("Cursor file too short"); return true; }
void plRTSpotLight::IBuildMeshes( BOOL isnew ) { float val = fLightPB->GetFloat( kHotSpot, TimeValue(0) ); //Init val of HotSpot if( isnew ) { val = fLightPB->GetFloat(kHotSpot, TimeValue(0)); SetHotspot( TimeValue(0), val); //val = 45.0; val = fLightPB->GetFloat(kFallOff, TimeValue(0)); SetFallsize( TimeValue(0), val); val = fLightPB->GetFloat(kAttenMaxFalloffEdit, TimeValue(0)); //fLightPB->GetFloat(kTargetDist, TimeValue(0)); if(val < 1.0f) SetTDist( TimeValue(0), DEF_TDIST); else SetTDist( TimeValue(0), val); val = fLightPB->GetFloat(kHotSpot, TimeValue(0)); } BuildSpotMesh( val ); fMesh = spotMesh; }