LumpOpen: Difference between revisions

From Zandronum Wiki
(Add example)
(Clarify some behavior.)
 
(One intermediate revision by one other user not shown)
Line 9: Line 9:
===Parameters===
===Parameters===
*''name'': The name of the lump to find.
*''name'': The name of the lump to find.
*''start'': The lump index to start searching for this lump after.
*''start'': The lump index to start searching for this lump after. If not specified, the last lump loaded with the name will be returned.
*''flags'': Can be a combination of the following values:
*''flags'': Can be a combination of the following values:
**<code>LUMP_OPEN_FULLPATH</code>: When specified, ''name'' represents the full path of the lump. For example, <code>sounds/mysound.ogg</code>.
**<code>LUMP_OPEN_FULLPATH</code>: When specified, ''name'' represents the full path of the lump. For example, <code>sounds/mysound.ogg</code>. ''start'' does nothing with this flag enabled.


===Return value===
===Return value===
Line 49: Line 49:
*[[LumpReadString]]
*[[LumpReadString]]
*[[LumpGetInfo]]
*[[LumpGetInfo]]
*[[LumpRead]]
*[[LumpClose]]
*[[LumpClose]]


[[Category:ACS functions]]
[[Category:ACS functions]]

Latest revision as of 00:17, 8 April 2024

This article documents a Zandronum-specific ACS feature which may not be supported by ZDoom and its other child ports.
This article documents an ACS function which is only available in development builds of Zandronum 3.2 and newer.

int LumpOpen (str name[, int start, int flags]) (development version 3.2-alpha and above only)

Usage

Returns the index of the given lump, starting the search after start.

Parameters

  • name: The name of the lump to find.
  • start: The lump index to start searching for this lump after. If not specified, the last lump loaded with the name will be returned.
  • flags: Can be a combination of the following values:
    • LUMP_OPEN_FULLPATH: When specified, name represents the full path of the lump. For example, sounds/mysound.ogg. start does nothing with this flag enabled.

Return value

Returns the index of the lump, or -1 if the lump was not found.

Examples

// This script prints the lump index of all the `MAPINFO` lumps that can be found.
// `CLIENTSIDE` is optional.
Script 1 OPEN CLIENTSIDE
{
	int startIndex = -1;
	Log(s:"Collecting MAPINFO lumps.");
	
	while(true)
	{
		startIndex = LumpOpen("MAPINFO", startIndex + 1);
		if (startIndex == -1)
		{
			Log(s:"No more MAPINFO lumps found.");
			break;
		}
		
		Log(s:"Next MAPINFO lump was found at index ", d:startIndex, s:".");

		// At this point you can read its contents with either `LumpRead` or `LumpReadString`.

		// Make sure to close the lump again to free the handle.
		LumpClose(startIndex);
	}
}

See also