Made to Order Software Corporation Logo

effect

DefineSound

Tag Info
Tag Number: 
14
Tag Type: 
Define
Tag Flash Version: 
2
Brief Description: 

Declare a sound effect. This tag defines sound samples that can later be played back using either a StartSound or a DefineButtonSound. Note that the same DefineSound block can actually include multiple sound files and only part of the entire sound can be played back as required.

Tag Structure: 
struct swf_definesound {
	swf_tag			f_tag;		/* 14 */
	unsigned short		f_sound_id;
	unsigned		f_sound_format : 4;
	unsigned		f_sound_rate : 2;
	unsigned		f_sound_is_16bits : 1;
	unsigned		f_sound_is_stereo : 1;
	unsigned long		f_sound_samples_count;
	unsigned char		f_sound_data[<variable size>];
};

A DefineSound tag declares a set of samples of a sound effect or a music.

The sound samples can be compressed or not, stereo or not and 8 or 16 bits. The different modes are not all available in version 2, although the same tag is used in newer versions with additional capabilities.

The f_sound_is_16bits is always set to 1 (16bits samples) if the samples are compressed (neither Rawnor Uncompressed).

The f_sound_rate represents the rate at which the samples are defined. The rate at which it will be played on the target computers may differ. The following equation can be used to determine the ...

DefineShape

Tag Info
Tag Number: 
2
Tag Type: 
Define
Tag Flash Version: 
1
Brief Description: 

Define a simple geometric shape.

Tag Structure: 
struct swf_defineshape {
	swf_tag				f_tag;		/* 2, 22, 32, 46, 83, or 84 */
	unsigned short			f_shape_id;
	swf_rect			f_rect;
	is_morph = f_tag == DefineMorphShape || f_tag == DefineMorphShape2;
	has_strokes = f_tag == DefineShape4 || f_tag == DefineMorphShape2;
	if(is_morph) {
		swf_rect			f_rect_morph;
	}
	if(has_strokes) {
		swf_rect			f_stroke_rect;
		if(is_morph) {
			swf_rect			f_stroke_rect_morph;
		}
		unsigned			f_define_shape_reserved : 6;
		unsigned			f_define_shape_non_scaling_strokes : 1;
		unsigned			f_define_shape_scaling_strokes : 1;
	}
	if(is_morph) {
		unsigned long			f_offset_morph;
		swf_morph_shape_with_style	f_morph_shape_with_style;
	}
	else {
		swf_shape_with_style		f_shape_with_style;
	}
};

These are probably the most important tags in this reference. They are used to define a shape using Bezier curves and lines with different styles. The DefineShape of V1.0 is usually enough unless you need a large number of styles or you want to specify colors with an alpha channel (RGBA).

The DefineMorphShape and DefineMorphShape2 can be used to render an intermediate shape between two defined shapes. All the points and control points of both shapes must match. This is because the rendering of the morphing shapes is just an interpolation between both shapes points and control points ...

Terms & Conditions

Made to Order Software Corporation
Terms and Conditions for the Online Services
offered by Made to Order Software Corporation

This Agreement ("Agreement") is by and between Made to Order Software Corporation ("m2osw") a Californian Corporation and You, your heirs, your agents, successors and assigns ("You" and "Your"), and is made effective as of the date of electronic execution, which is when you register for an electronic account to use the Web site of m2osw. This Agreement sets forth the terms and conditions of Your use of the Online Services ...

One or two of the taxonomy columns are too wide

It happens that a column in your main display look too wide. Say you use three columns, one may be real large and two are the normal size (1/3rd of the screen.)

In general this happens because you have a URL in one of your description. (If the URL is in the title, I strongly advice that you move it to the description.) Then the description shows up as wide as that URL. Long URLs will have a real bad effect making the column much wider.

There are two ways to solve the problem:

  1. Create a tiny URL, although tiny URLs may still be too big, it may help
  2. Change the settings of the ...

LinuxWorld Conference & Expo 2008

This year, 2008, I decided to register and go to LinuxWorld. It is in August and my kids are not at school so it was easy to manage. Also, I had to go to the French consulate to get a birth certificate for my daughter. In other words, I had the chance to do two things at once!

I found it quite interesting to hear that many people were not too excited about the event. Many of the people walking around are like me: they themselves sell their own Linux solution. In other words, they are not going to be customers. I had the chance to talk with Roger Levi, the Vice President of the Open Platform ...

The assert() macro in C/C++

 

This is a subject that comes back all the time in C/C++ boards.

Should you use assertions?

The answer is clearly yes. But the C/C++ assert() function is usually defined using a macro. Macros have several problems. The most common ones are: they offer no type checking, they do not warn you about weird side effects, they have a different syntax than the C/C++ language itself.

One good thing: for a fast program, the debug code used to check parameters, results, etc. is gone.

One really bad thing: if the expression in the macro has a side effect, the release program is different from ...

Turn Watcher 1.2 is out!

Made to Order Software Corporation is proud to announce the 1.2 release of Turn Watcher, an Initiative and Effects Tracker...and more!

Version 1.2 now supports spell and other effect tracking. A optional new window appears at the bottom of the main window that allows you to add, edit and remove effects for the currently highlighted combatant. When an effect expires on the current combatant's turn, you are alerted and asked if you wish to delete the expired effect.

You may also add effects to multiple characters at once by highlighting them, then clicking the "A" button. ...

Creating Turn Watcher — An Adventure Unto Itself

I think I'm like just about everyone else. I have the work 'me' and the play 'me'. Only difference is, the two once merged, and what was born was Turn Watcher.

I have played in D&D campaigns for many years, but never thought of running my own campaign until I got a very unusual present for my 40th birthday — the Dungeon Master's Guide. I started reading the book and was hooked. How fun I thought it would be to create encounters and intriguing situations and worlds for my players. It wasn't until I ran my first game that I realized that it would take more ...