//============================================================================= // File: Randomizer.cpp // Project: MUNGA Brick: Entity // Contents: //----------------------------------------------------------------------------- // Date Who Modification // -------- --- ------------------------------------------------------------- // 12/14/94 JMA Initial coding. //----------------------------------------------------------------------------- // Copyright (C) 1994-1997, FASA Interactive, Inc. // All Rights Reserved // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //============================================================================= #include "AdeptHeaders.hpp" #include "ComponentHeaders.hpp" //############################################################################# //####################### RandomizerOf ########################## //############################################################################# //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void RandomizerOf::InitializeClass() { Verify(!DefaultData); DefaultData = new ClassData( RandomizerOfScalarClassID, "Adept::RandomizerOfScalar", ChannelOf::DefaultData, 0, NULL ); Register_Object(DefaultData); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // RandomizerOf* RandomizerOf::Create( MemoryStream *stream, ComponentWeb *owning_web ) { Check_Object(stream); Check_Object(owning_web); Component *component = DoesComponentExist(stream, owning_web); RandomizerOf *randomizer; if (component) { randomizer = Cast_Object(RandomizerOf*, component); randomizer->SkipStreamData(stream); } else { randomizer = new RandomizerOf(DefaultData, stream, owning_web); Register_Object(randomizer); } return randomizer; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void RandomizerOf::Execute() { Check_Object(this); channelOutput = minValue + valueRange * Random::GetFraction(); NotifyDependantsOfChange(); } //############################################################################# //######################### RandomizerOf ########################### //############################################################################# //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void RandomizerOf::InitializeClass() { Verify(!DefaultData); DefaultData = new ClassData( RandomizerOfIntClassID, "Adept::RandomizerOfInt", ChannelOf::DefaultData, 0, NULL ); Register_Object(DefaultData); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // RandomizerOf* RandomizerOf::Create( MemoryStream *stream, ComponentWeb *owning_web ) { Check_Object(stream); Check_Object(owning_web); Component *component = DoesComponentExist(stream, owning_web); RandomizerOf *randomizer; if (component) { randomizer = Cast_Object(RandomizerOf*, component); randomizer->SkipStreamData(stream); } else { randomizer = new RandomizerOf(DefaultData, stream, owning_web); Register_Object(randomizer); } return randomizer; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void RandomizerOf::Execute() { Check_Object(this); channelOutput = minValue + Random::GetLessThan(valueRange); NotifyDependantsOfChange(); }