View difference between Paste ID: pirMqGTu and qLyWafe0
SHOW: | | - or go back to the newest paste.
1
void CVisibilityPlugins__RenderAlphaAtomics(CLinkList<AlphaObjectInfo> &list)
2
{
3
	char *nodeName;
4
5
	for(CLink<AlphaObjectInfo> *entry = list.m_tail.m_pNext; entry != &list.m_head; entry = entry->m_pNext)
6
	{
7
		nodeName = GetFrameNodeName(entry->m_info.m_pAtomic->object.object.parent);
8
9
		if(!strncmp(nodeName, "moving_rotor", 11))
10
		{
11
			// Here is the trick.
12
			{
13
				RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTION, rwALPHATESTFUNCTIONEQUAL);
14
				RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTIONREF, 255);
15
16
				//AtomicDefaultRenderCallBack(entry->m_info.m_pAtomic);
17
				entry->m_info.m_pCallback(entry->m_info.m_pAtomic, entry->m_info.depth);
18
19
				RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, false);
20
				RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, true);
21
				RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTION, rwALPHATESTFUNCTIONLESS);
22
23
				//AtomicDefaultRenderCallBack(entry->m_info.m_pAtomic);
24
				entry->m_info.m_pCallback(entry->m_info.m_pAtomic, entry->m_info.depth);
25
			}
26
27
			// Restore renderstates.
28
			RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, true);
29
			RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, false);
30
			RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTION, rwALPHATESTFUNCTIONGREATER);
31
			RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTIONREF, 100);
32
		}
33
		else
34
		{
35
			//AtomicDefaultRenderCallBack(entry->m_info.m_pAtomic);
36
			entry->m_info.m_pCallback(entry->m_info.m_pAtomic, entry->m_info.depth);
37
		}
38
	}
39
}