コード例 #1
0
ファイル: acebot_nodes.c プロジェクト: PBrookfield/vrgamex86
///////////////////////////////////////////////////////////////////////
// Save to disk file
//
// Since my compression routines are one thing I did not want to
// release, I took out the compressed format option. Most levels will
// save out to a node file around 50-200k, so compression is not really
// a big deal.
///////////////////////////////////////////////////////////////////////
void ACEND_SaveNodes()
{
	FILE *pOut;
	char tempname[MAX_QPATH] = "";
	char filename[MAX_QPATH] = "";
//	char filename[60];
	int i,j;
	int version = 1;
	
	// Resolve paths
	ACEND_ResolveAllPaths();

	safe_bprintf(PRINT_MEDIUM,"Saving node table...");

	// Knightmare- rewote this
	GameDirRelativePath ("nav", filename); // create nav dir if needed
	_mkdir (filename);
	sprintf (tempname, "nav/%s.nod", level.mapname);
	GameDirRelativePath (tempname, filename);
	//strcpy(filename,"ace\\nav\\");
	//strcat(filename,level.mapname);
	//strcat(filename,".nod");

	if((pOut = fopen(filename, "wb" )) == NULL)
		return; // bail
	
	fwrite(&version,sizeof(int),1,pOut); // write version
	fwrite(&numnodes,sizeof(int),1,pOut); // write count
	fwrite(&num_items,sizeof(int),1,pOut); // write facts count
	
	fwrite(nodes,sizeof(node_t),numnodes,pOut); // write nodes
	
	for(i=0;i<numnodes;i++)
		for(j=0;j<numnodes;j++)
			fwrite(&path_table[i][j],sizeof(int16_t),1,pOut); // write count
		
	fwrite(item_table,sizeof(item_table_t),num_items,pOut); 		// write out the fact table

	fclose(pOut);
	
	safe_bprintf(PRINT_MEDIUM,"done.\n");
}
コード例 #2
0
ファイル: acebot_nodes.c プロジェクト: ZwS/qudos
///////////////////////////////////////////////////////////////////////
// Save to disk file
//
// Since my compression routines are one thing I did not want to
// release, I took out the compressed format option. Most levels will
// save out to a node file around 50-200k, so compression is not really
// a big deal.
///////////////////////////////////////////////////////////////////////
void ACEND_SaveNodes()
{
	FILE *pOut;
	char filename[60];
	int i,j;
	int version = 1;
	
	// Resolve paths
	ACEND_ResolveAllPaths();

	safe_bprintf(PRINT_MEDIUM,"Saving node table...");
	

	strcpy(filename,"ace_botroutes/");
	mkdir(filename, 0777);
	strcat(filename,level.mapname);
	strcat(filename,".nod");

	if((pOut = fopen(filename, "wb" )) == NULL)
		return; // bail
	
	fwrite(&version,sizeof(int),1,pOut); // write version
	fwrite(&numnodes,sizeof(int),1,pOut); // write count
	fwrite(&num_items,sizeof(int),1,pOut); // write facts count
	
	fwrite(nodes,sizeof(node_t),numnodes,pOut); // write nodes
	
	for(i=0;i<numnodes;i++)
		for(j=0;j<numnodes;j++)
			fwrite(&path_table[i][j],sizeof(short int),1,pOut); // write count
		
	fwrite(item_table,sizeof(item_table_t),num_items,pOut); 		// write out the fact table

	fclose(pOut);
	
	safe_bprintf(PRINT_MEDIUM,"done.\n");
}
コード例 #3
0
ファイル: acebot_nodes.c プロジェクト: otty/cake3
// Save to disk file
//
// Since my compression routines are one thing I did not want to
// release, I took out the compressed format option. Most levels will
// save out to a node file around 50-200k, so compression is not really
// a big deal.
void ACEND_SaveNodes()
{
	fileHandle_t    file;
	char            filename[MAX_QPATH];
	int             i, j;
	int             version = 1;
	char            mapname[MAX_QPATH];

	ACEND_ResolveAllPaths();

	trap_Cvar_VariableStringBuffer("mapname", mapname, sizeof(mapname));
	Com_sprintf(filename, sizeof(filename), "nav/%s.nod", mapname);

	trap_FS_FOpenFile(filename, &file, FS_WRITE);
	if(!file)
	{
		G_Printf("WARNING: Couldn't write node table: %s\n", filename);
		return;
	}
	else
		G_Printf("ACE: Saving node table '%s'...", filename);

	trap_FS_Write(&version, sizeof(int), file);
	trap_FS_Write(&numNodes, sizeof(int), file);
	trap_FS_Write(nodes, sizeof(node_t) * numNodes, file);

	for(i = 0; i < numNodes; i++)
		for(j = 0; j < numNodes; j++)
			trap_FS_Write(&path_table[i][j], sizeof(short int), file);	// write count

	trap_FS_FCloseFile(file);

	G_Printf("done.\n");

	G_Printf("%i nodes saved\n", numNodes);
}