the cutting room mirror

Shrek: Smash n' Crash Racing (Nintendo DS)

This article has a talk page!This article has a talk page!
view on tcrf.net

Shrek: Smash n' Crash Racing is... pretty much just a Mario Kart game, except with more Shrek.

Test Levels#

Testlevel17#

Shreksncr-Testmap17.png

A track in the shape of a small oval. It is possible to jump off the edge, though falling off teleports you back to the top. The only notable thing in this map is that there are untextured speed strips on each half of the map, which launch you forward when you run over one. It has no minimap data.

"ds_test" and "ds_test2"#

While track data exists for these two maps, texture data seems to be missing. This means that although there is collision data, you can't see what you're running into.

It's worth noting that ds_test2 has item barrels present on the track, while ds_test does not.

dsdaytona#

Unloadable. If forced to load, crashes the game. The name may indicate it likely has something to do with Daytona USA.

Unused Music#

The main theme music from Mario Kart 64, listed as MARIOKART.SSEQ in the directory. This song is one of the samples from the Nintendo DS' development kit.

To do:
There are many more development txt files, probably wouldn't hurt to make a subpage

Material Attributes#

matattr.txt allows the editing of material attributes. Present at the top of the text are instructions for which each attribute means:

//--------------------------------------------------------------------------------------
// Note:
//  * Friction affects sideways drift of vehicle plus acceleration & braking - default 1.0
//  * Restitution describes how "bouncy" a surface is - default 0.5
//  * Resistance slows down the vehicle when on this surface (eg. increase for deep mud to slow vehicle) - default 0.0
//--------------------------------------------------------------------------------------

BuildAudioAssets#

Found in the audio directory, BuildAudioAssets.bat is a basic batch script that probably combined the split audio files into a .sdat file. This was probably left in on accident, considering MakeSound.bat is nowhere to be found ..

pushd ..\..\raw\audio
call MakeSound.bat
popd

LibContent Template#

Located in the lcdata directory, lctemplate.txt is ... some sort of inhouse Torus engine template file.

//--------------------------------------------------------------------------------------
// File:        template.txt
// Description: Defines the entities in LibContent
// Author:      mabbott
// Platform:    
//
// Copyright (c) 2004 Torus Games Pty. Ltd.
//--------------------------------------------------------------------------------------
// History:
//  2/3/2006        MA      Initial Revision
//--------------------------------------------------------------------------------------

TEMPLATE EntityAccumulator
{
    FIELDS
    {
        TSEBool m_bAllowValueWrap = 0
        TSEBool m_bResetAfterEqual = 1
        TSEBool m_bSingleShot = 0
        u32     m_uLoop = 0
        s32     m_nInitialValue = 0
        s32     m_nMaxValue = 2147483647
        s32     m_nMinValue = -2147483648
        s32     m_nValue = 0
    }

    INPUTS
    {
        EntityAccumulator_Input_Reset           // Resets the current value to m_nInitialValue and the loop count will be reset back to m_uLoop
        EntityAccumulator_Input_Increment
        EntityAccumulator_Input_Decrement
    }

    OUTPUTS
    {
        EntityAccumulator_Output_Changed
        EntityAccumulator_Output_Equals
        EntityAccumulator_Output_GreaterThan
        EntityAccumulator_Output_LessThan
        EntityAccumulator_Output_Overflow
        EntityAccumulator_Output_Underflow
    }
}

TEMPLATE EntityAreaTrigger
{
    FIELDS
    {
        TSEBool m_bActive = 1
        TSEBool m_bInsideOutputEnabled = 0  {"Will the Inside message output get fired?"}
        u32     m_uLoop = 0
        TSEVec4 m_v4Extent = 1 1 1 0
        Entity  m_pEntity = 0
    }
    
    INTERNALFIELDS
    {
        // NOTE!!!!!!!!!!!!!!!!!!!!!!
        // This tells the AreaTrigger what class to test against.  For example, if you want to
        // test overlap against the player you override this in your template.txt to
        // "EntityPlayer"
        text    m_szOverlapTestClassName = 0
    }

    INPUTS
    {
        EntityAreaTrigger_Input_Activate
        EntityAreaTrigger_Input_Deactivate
        EntityAreaTrigger_Input_Destroy
    }

    OUTPUTS
    {
        EntityAreaTrigger_Output_Enter
        EntityAreaTrigger_Output_Exit
        EntityAreaTrigger_Output_Inside
    }
}

TEMPLATE EntityClientAreaTrigger
{
    FIELDS
    {
        TSEBool m_bActive = 1
        TSEBool m_bInsideOutputEnabled = 0  {"Will the Inside message output get fired?"}
        u32     m_uLoop = 0
        TSEVec4 m_v4Extent = 1 1 1 0
        Entity  m_pEntity = 0
    }
    
    INTERNALFIELDS
    {
        // NOTE!!!!!!!!!!!!!!!!!!!!!!
        // This tells the AreaTrigger what class to test against.  For example, if you want to
        // test overlap against the player you override this in your template.txt to
        // "EntityPlayer"
        text    m_szOverlapTestClassName = 0
    }

    INPUTS
    {
        EntityClientAreaTrigger_Input_ClientActivate
        EntityClientAreaTrigger_Input_ClientDeactivate
    }

    OUTPUTS
    {
        EntityClientAreaTrigger_Output_ClientEnter
        EntityClientAreaTrigger_Output_ClientExit
        EntityClientAreaTrigger_Output_ClientInside
    }
}

TEMPLATE EntityTimer
{
    FIELDS
    {
        TSEBool m_bSingleShot = 0   // If true the timer will DELETE itself once the timer has triggerd m_uLoop times or once if m_uLoop equals 0.
                                    // If false the timer will only DEACTIVATE itself if m_uLoop is not 0 and the timer has triggerd m_uLoop times.
        u32     m_uLoop = 1         // The number of times the timer will time out and reset itself. NOTE: 0 means the timer will do this indefinitely 
        fp32    m_fMinTime = 5      // The minimum time to wait before triggering. If m_fpMaxTime < m_fpMinTime then the time will always be m_fpMinTime
        fp32    m_fMaxTime = 0      // The maximum time to wait before triggering
        fp32    m_fInitialDelay = 0 // The initial time to wait before starting the timer. Only happens once in a looping timer.
    }
    
    INPUTS 
    {
        EntityTimer_Input_Start
        EntityTimer_Input_Stop
        EntityTimer_Input_Reset     // Resets the current time to m_fpMinTime (or a random time if m_fpMaxTime > m_fpMinTime) and the loop count will be reset back to m_uLoop
    }
        
    OUTPUTS 
    {
        EntityTimer_Output_Trigger
    }
}

References#


  1. GameFAQs↩︎