コード例 #1
0
JNIEXPORT void JNICALL Java_com_n0n3m4_q3e_Q3EJNI_init(JNIEnv *env, jclass c, jstring LibPath, jint width, jint height, jstring GameDir, jstring Cmdline)
{
    char **argv;
    int argc=0;
    jboolean iscopy;
    const char *dir = (*env)->GetStringUTFChars(
                          env, GameDir, &iscopy);
    const char *arg = (*env)->GetStringUTFChars(
                          env, Cmdline, &iscopy);
    chdir(strdup(dir));
    (*env)->ReleaseStringUTFChars(env, GameDir, dir);
    argv = malloc(sizeof(char*) * 255);
    argc = ParseCommandLine(strdup(arg), argv);
    (*env)->ReleaseStringUTFChars(env, Cmdline, arg);

    const char *libpath = (*env)->GetStringUTFChars(
                              env, LibPath, &iscopy);
    loadLib(strdup(libpath));
    (*env)->ReleaseStringUTFChars(env, LibPath, libpath);

    setCallbacks(&initAudio,&writeAudio,&setState);
    setResolution(width, height);

    qmain(argc, argv);
    free(argv);
}
コード例 #2
0
ファイル: cjpeg.c プロジェクト: Hasimir/jedi-outcast-1
void recurse(const char *dir)
{
	char	**sysFiles, **dirFiles, *args[5];
	int		numSysFiles, i, len, numdirs;
	char	altname[MAX_OSPATH];
	char	command1[MAX_OSPATH];
	char	command2[MAX_OSPATH];

	dirFiles = Sys_ListFiles(dir, "/", &numdirs);
	if (numdirs > 2)
	{
		for (i=2;i<numdirs;i++)
		{
			sprintf(altname, "%s\\%s", dir, dirFiles[i]);
//			if (stricmp(altname,"q:\\send\\quake\\baseq3\\models\\players"))	// dont recurse this dir
			{
				recurse(altname);
			}
		}
	}
	sprintf(command1, "-targa");
	sprintf(command2, "-outfile");
	sysFiles = Sys_ListFiles( dir, ".tga", &numSysFiles );
	for(i=0; i<numSysFiles; i++) {
		char	tgain[MAX_OSPATH];
		sprintf(tgain,"%s\\%s", dir, sysFiles[i]);
		strcpy( altname, tgain );
		len = strlen( altname );
		altname[len-3] = 'j';
		altname[len-2] = 'p';
		altname[len-1] = 'g';
		args[0] = "cjpeg";
		args[1] = command2;
		args[2] = altname;
		args[3] = command1;
		args[4] = tgain;
		printf("%s", tgain);
		len = qmain(5, args);
		iNumberOf_FilesScanned++;
		if (!len) 
		{
			iNumberOf_FilesConverted++;
			iSizeOf_JPGsWritten += scGetFileLen(altname);
			iSizeOf_TGAsDeleted += scGetFileLen(tgain);

			if (!gbNoTGADelete)
			{			
				remove(tgain);
				printf(" nuked!");
			}
		}
		printf("\n");
	}
	Sys_FreeFileList( sysFiles );
	Sys_FreeFileList( dirFiles );
}