コード例 #1
0
void MoM_Partition::ExtendPartition()
{
	for (int i=0; i<Geo->Buffer_Layers/**2+1*/; i++)
	{
		for (std::set<int>::iterator it=BoundarySet.begin(); it!=BoundarySet.end(); it++)
		{
			if (PatchSet.find(Geo->Edge(*it)[2]) == PatchSet.end())
			{
				PatchSet.insert(Geo->Edge(*it)[2]);
				Patch.push_back(Geo->Edge(*it)[2]);
			}
			if (PatchSet.find(Geo->Edge(*it)[3]) == PatchSet.end()) 
			{
				PatchSet.insert(Geo->Edge(*it)[3]);
				Patch.push_back(Geo->Edge(*it)[3]);
			}
		}
		for (int i=Patch_Num; i<Patch.size(); i++)
		{
			AddPatch(Patch[i]);
		}
		Patch_Num = Patch.size();
	}

	for (int i=0; i<Geo->Edge_Num; i++)
	{
		if (EdgeSet.find(i) == EdgeSet.end())
		{
			OutEdge.push_back(i);
		}
	}
}
コード例 #2
0
void DynamicPatchClass::Load( char *filename )
{
	FILE	*file;
	char	line[256];
	char	name[256];
	int		vnum;
	int		argCnt;

	ShiAssert( PatchList == NULL );

	// Open the named patch file
	file = fopen( filename, "r" );
	if (!file) {
		printf( "Failed to open alpha patch file %s\n", filename );
		return;
	}

	// Read each line
	while (fgets( line, sizeof(line), file )) {

		argCnt = sscanf( line, "%d %s", &vnum, name );
		if (argCnt == 2) {
//			printf("  OLD STYLE VERTEX SPECIFICIATION:  %0d %s ==>", vnum, name );
			sprintf(name, "%s/v%0d", name, vnum+1);
//			printf("  NEW:  %s\n", name );
			AddPatch( name );
		} else {
			argCnt = sscanf( line, "%s", name );
			if (argCnt == 1) {
//				printf("  PATCH:  %s\n", name );
				AddPatch( name );
			}
		}

	}

	// Close the patch file
	fclose( file );
}
コード例 #3
0
void MoM_Partition::ReadPartition()
{
	for (int i=0; i<Geo->Patch_Num; i++)
	{
		if ((Geo->Patch_Ctr(i)[0]>=Low_X && Geo->Patch_Ctr(i)[0]<=Up_X) 
			&& (Geo->Patch_Ctr(i)[1]>=Low_Y && Geo->Patch_Ctr(i)[1]<=Up_Y)
			&& (Geo->Patch_Ctr(i)[2]>=Low_Z && Geo->Patch_Ctr(i)[2]<=Up_Z))
		{
			PatchSet.insert(i);
			Patch.push_back(i);
			AddPatch(i);
		}
	}
	Patch_Num = PatchSet.size();
	Edge_Num = EdgeSet.size() + BoundarySet.size();
}
コード例 #4
0
ファイル: cheats.cpp プロジェクト: mauzus/progenitor
BOOL CALLBACK AddCheatProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	int wmId,wmEvent,i,mresults;
	static HWND hParent;
	UINT state;
	u64 value;
	static int Selected;

	switch(uMsg)
	{

		case WM_PAINT:
			INIT_CHECK(IDC_UNSIGNED,Unsigned);
			return FALSE;
		case WM_INITDIALOG:
			hParent=(HWND)lParam;

			mresults=ListView_GetItemCount(GetDlgItem(hParent,IDC_RESULTS));
			for(i=0;i<mresults;i++)
			{
				state=ListView_GetItemState(GetDlgItem(hParent,IDC_RESULTS),i,LVIS_SELECTED);
				if(state==LVIS_SELECTED)
				{
					Selected=i;
					ListView_GetItemText(GetDlgItem(hParent,IDC_RESULTS),i,0,tn,100);
					ListView_GetItemText(GetDlgItem(hParent,IDC_RESULTS),i,0,tv,100);

					sprintf(to,"patch=0,%s,%s,%s,<value>",
						Source?"IOP":"EE",
						tn,
						sizenames[Size]);

					SetWindowText(GetDlgItem(hWnd,IDC_ADDR),tn);
					SetWindowText(GetDlgItem(hWnd,IDC_VALUE),tv);
					SetWindowText(GetDlgItem(hWnd,IDC_NAME),to);

					break;
				}
			}


			break;
		case WM_COMMAND:
			wmId    = LOWORD(wParam);
			wmEvent = HIWORD(wParam);
			// Parse the menu selections:
			switch (wmId)
			{
				case IDCANCEL:
					EndDialog(hWnd,1);
					break;

				case IDOK:
					GetWindowText(GetDlgItem(hWnd,IDC_VALUE),tv,100);
					value=_atoi64(tv);
					AddPatch(1,Source+1,results[Selected].address,Size+1,value);

					EndDialog(hWnd,1);
					break;


				default:
					return FALSE;
			}
			break;
		default:
			return FALSE;
	}
	return TRUE;
}