PTF Snow Error

So I’m making a game for the now closed game Toontown Online, and I’m trying to make snow based on the source code but it doesn’t seem to work.
Here’s the traceback:

Traceback (most recent call last):
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 61, in eventLoop
Task
    self.doEvents()
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 55, in doEvents
    processFunc(self.eventQueue.dequeueEvent())
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 122, in processE
vent
    messenger.send(eventName, paramList)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 397, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 482, in __dispatch
    method (*(extraArgs + sentArgs))
  File "C:\Panda3D-1.8.1\direct\gui\DirectButton.py", line 103, in commandFunc
    apply(self['command'], self['extraArgs'])
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\book\MapPage.py",
 line 210, in __buttonCallback
    messenger.send("MapPageTeleport",[hood])
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 397, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 482, in __dispatch
    method (*(extraArgs + sentArgs))
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\book\MapPageTelep
ort.py", line 21, in __MapPageTeleport
    ZoneManager().ZoneRequest(hood)
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\hood\HoodManager.
py", line 36, in ZoneRequest
    self.__unloadZoneAI()
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\hood\HoodManager.
py", line 95, in __unloadZoneAI
    BRPlayground().unload()
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\hood\BRPlayground
.py", line 14, in __init__
    self.snow.loadConfig('phase_8/etc/snowdisk.ptf')
  File "C:\Panda3D-1.8.1\direct\particles\ParticleEffect.py", line 201, in loadC
onfig
    data = vfs.readFile(filename, 1)
AssertionError: okflag at line 939 of c:\buildslave\release_sdk_win32\build\pand
a3d\panda\src\express\virtualFileSystem.cxx
Traceback (most recent call last):
  File "main.py", line 490, in <module>
    run()
  File "C:\Panda3D-1.8.1\direct\showbase\ShowBase.py", line 2921, in run
    self.taskMgr.run()
  File "C:\Panda3D-1.8.1\direct\task\Task.py", line 502, in run
    self.step()
  File "C:\Panda3D-1.8.1\direct\task\Task.py", line 460, in step
    self.mgr.poll()
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 61, in eventLoop
Task
    self.doEvents()
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 55, in doEvents
    processFunc(self.eventQueue.dequeueEvent())
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 122, in processE
vent
    messenger.send(eventName, paramList)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 397, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 482, in __dispatch
    method (*(extraArgs + sentArgs))
  File "C:\Panda3D-1.8.1\direct\gui\DirectButton.py", line 103, in commandFunc
    apply(self['command'], self['extraArgs'])
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\book\MapPage.py",
 line 210, in __buttonCallback
    messenger.send("MapPageTeleport",[hood])
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 397, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 482, in __dispatch
    method (*(extraArgs + sentArgs))
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\book\MapPageTelep
ort.py", line 21, in __MapPageTeleport
    ZoneManager().ZoneRequest(hood)
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\hood\HoodManager.
py", line 36, in ZoneRequest
    self.__unloadZoneAI()
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\hood\HoodManager.
py", line 95, in __unloadZoneAI
    BRPlayground().unload()
  File "C:\Users\anony_000\Desktop\Toontown101\myToontown\mytt\hood\BRPlayground
.py", line 14, in __init__
    self.snow.loadConfig('phase_8/etc/snowdisk.ptf')
  File "C:\Panda3D-1.8.1\direct\particles\ParticleEffect.py", line 201, in loadC
onfig
    data = vfs.readFile(filename, 1)
AssertionError: okflag at line 939 of c:\buildslave\release_sdk_win32\build\pand
a3d\panda\src\express\virtualFileSystem.cxx
:TaskManager: TaskManager.destroy()
Press any key to continue . . .

Here’s BRPlayground.py (the file with the snow in it):

from pandac.PandaModules import *
from direct.task.Task import Task
import random
from direct.interval.IntervalGlobal import *
from direct.particles.ParticleEffect import ParticleEffect

class BRPlayground():

	
	def __init__(self):
		self.windSound = map(base.loadSfx, ['phase_8/audio/sfx/SZ_TB_wind_1.mp3', 'phase_8/audio/sfx/SZ_TB_wind_2.mp3', 'phase_8/audio/sfx/SZ_TB_wind_3.mp3'])
		self.snowFade = None
		self.snow = ParticleEffect()
		self.snow.loadConfig('phase_8/etc/snowdisk.ptf')
		self.snowRender = base.terrain.attachNewNode('snowRender')
		return
	
	def load(self):
		taskMgr.doMethodLater(1, self.__windTask, 'br-wind')
		self.snow.setPos(0, 0, 5)
		self.snowRender.setDepthWrite(0)
		self.snowRender.setBin('fixed', 1)
		self.snow.start(camera, self.snowRender)
		return
	
	def unload(self):
		taskMgr.remove('br-wind')
		self.resetSnowLerp()
		self.snow.cleanup()
		del self.snow
		del self.snowRender
		return
	
	def __windTask(self, task):
		base.playSfx(random.choice(self.windSound))
		t = random.random() * 8
		taskMgr.doMethodLater(t, self.__windTask, 'br-wind')
		return Task.done
		

	def resetSnowLerp(self):
		#if self.snowFade != None:
		#	self.snowFade.stop()
		#	self.snowFade = None
		return

	def fadeInSnow(self):
		self.resetSnowLerp()
		currentScale = self.snowRender.getColorScale()[3]
		ivals = [LerpFunctionInterval(self.snowRender.setAlphaScale, fromData=currentScale, toData=1.0, duration=self.SnowFadeLerpTime), FunctionInterval(self.snowRender.clearColorScale)]
		self.snowFade = Track(ivals, 'snow-fade')
		self.snowFade.play()

	def fadeOutSnow(self):
		self.resetSnowLerp()
		currentScale = self.snowRender.getColorScale()[3]
		ivals = [LerpFunctionInterval(self.snowRender.setAlphaScale, fromData=currentScale, toData=0.0, duration=self.SnowFadeLerpTime)]
		self.snowFade = Track(ivals, 'snow-fade')
		self.snowFade.play()

And here’s Snowdisk.ptf incase you need it for some reason:


self.reset()
self.setPos(0.000, 0.000, 0.000)
self.setHpr(0.000, 0.000, 0.000)
self.setScale(1.000, 1.000, 1.000)
p0 = Particles.Particles('particles-1')
# Particles parameters
p0.setFactory("ZSpinParticleFactory")
p0.setRenderer("SpriteParticleRenderer")
p0.setEmitter("DiscEmitter")
p0.setPoolSize(1024)
p0.setBirthRate(0.0200)
p0.setLitterSize(1)
p0.setLitterSpread(0)
p0.setSystemLifespan(0.0000)
p0.setLocalVelocityFlag(1)
p0.setSystemGrowsOlderFlag(0)
# Factory parameters
p0.factory.setLifespanBase(4.5000)
p0.factory.setLifespanSpread(0.0000)
p0.factory.setMassBase(1.0000)
p0.factory.setMassSpread(0.0000)
p0.factory.setTerminalVelocityBase(400.0000)
p0.factory.setTerminalVelocitySpread(0.0000)
# Z Spin factory parameters
p0.factory.setInitialAngle(0.0000)
p0.factory.setInitialAngleSpread(10.0000)
p0.factory.enableAngularVelocity(1)
p0.factory.setAngularVelocity(0.0000)
p0.factory.setAngularVelocitySpread(500.0000)
# Renderer parameters
p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAIN)
p0.renderer.setUserAlpha(1.00)
# Sprite parameters
p0.renderer.setIgnoreScale(1)
p0.renderer.setTextureFromNode("phase_8/models/props/snowflake_particle", "**/p1_2")
p0.renderer.setColor(Vec4(1.00, 1.00, 1.00, 1.00))
p0.renderer.setXScaleFlag(0)
p0.renderer.setYScaleFlag(0)
p0.renderer.setAnimAngleFlag(1)
p0.renderer.setInitialXScale(0.03125)
p0.renderer.setFinalXScale(0.50)
p0.renderer.setInitialYScale(0.03125)
p0.renderer.setFinalYScale(0.50)
p0.renderer.setNonanimatedTheta(0.0000)
p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR)
p0.renderer.setAlphaDisable(0)
# Emitter parameters
p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
p0.emitter.setAmplitude(0.1000)
p0.emitter.setAmplitudeSpread(0.0000)
p0.emitter.setOffsetForce(Vec3(0.0000, 0.0000, 0.0000))
p0.emitter.setExplicitLaunchVector(Vec3(1.0000, 0.0000, 0.0000))
p0.emitter.setRadiateOrigin(Point3(0.0000, 0.0000, 0.0000))
# Disc parameters
p0.emitter.setRadius(50.0000)
self.addParticles(p0)
f0 = ForceGroup.ForceGroup('gravity')
# Force parameters
force0 = LinearVectorForce(Vec3(0.0000, 0.0000, -1.0000), 1.5000, 0)
force0.setActive(1)
f0.addForce(force0)
force1 = LinearJitterForce(10.0000, 0)
force1.setActive(1)
f0.addForce(force1)
self.addForceGroup(f0)

That just means it can’t find the file you are referencing. You indicate you have a file called “Snowdisk.ptf” but you are trying to load “snowdisk.ptf”. This could be a problem.