ARES-SDK/ARES/api/interface.h.lsl

89 lines
3.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/* =========================================================================
*
* Nanite Systems Advanced Research Encapsulation System
*
* Copyright (c) 20222024 Nanite Systems Corporation
*
* =========================================================================
*
* INTERFACE.H.LSL Header Component
*
* This program is covered under the terms of the ARES Software Copyright
* License, Section 3 (ASCL-iii). It may be redistributed or used as the
* basis of commercial, closed-source products so long as steps are taken
* to ensure proper attribution as defined in the text of the license.
*
* To see the full text of the ASCL, type 'help license' on any standard
* ARES distribution, or visit http://nanite-systems.com/ASCL for the
* current version.
*
* DISCLAIMER
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS
* IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE ARE DISCLAIMED.
*
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* DAMAGES HOWEVER CAUSED ON ANY THEORY OF LIABILITY ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* =========================================================================
*
*/
#ifndef _ARES_INTERFACE_H_
#define _ARES_INTERFACE_H_
// **** interface daemon ****
// interface_sound(): play a system sound effect to the unit only (must be named in LSD:interface.sound)
#define interface_sound(_name) e_call(C_INTERFACE, E_SIGNAL_CALL, \
(string)avatar + " " + (string)avatar + " interface sound " + _name)
// fixed_warning(slot, msg): display a fixed warning message on the UI (see values in interface.consts.h.lsl)
#define fixed_warning(_slot, _msg) \
system(SIGNAL_TRIGGER_EVENT, (string)EVENT_WARNING + " " + (string)(_slot) + " " + (string)(_msg))
// **** variatype daemon ****
/* alert(): create an alert message on the HUD
_message: the text to show (must fit in 12 variatype cells, approx. 96 chars)
_icon: 0-4 (icon 0 does not play sound)
_color: 0 for normal (color d), 1 for bad (color c)
_buttons: 0 for consent prompt, 1 for menu prompt, 2 for OK/details, 3 for OK only, 4 for ignore/help/run/delete
then: a list of actions to be invoked, one for each button
every alert acknowledgement will always clear the message
provide "!clear" as an action for just closing the prompt
any _buttons other than 0 will cause the alert to time out after a few seconds
example: alert("hi", 0, 0, 3, ["!clear"]) simply shows "hi" with dismissal option
the constants below can help make your alerts easier to read in code
*/
#define ALERT_ICON_INFO 0
#define ALERT_ICON_PERMISSION 1
#define ALERT_ICON_DATA 2
#define ALERT_ICON_HARDWARE 3
#define ALERT_ICON_ERROR 4
#define ALERT_COLOR_NORMAL 0
#define ALERT_COLOR_BAD 1
#define ALERT_BUTTONS_CONSENT 0
#define ALERT_BUTTONS_MENU 1
#define ALERT_BUTTONS_DETAILS 2
#define ALERT_BUTTONS_DISMISS 3
#define ALERT_BUTTONS_AUTOEXEC 6
#define alert(_message, _icon, _color, _buttons, ...) e_call(C_VARIATYPE, E_SIGNAL_CALL, NULL_KEY + " " + NULL_KEY + " variatype alert " + _message + "\n" + (string)(_icon) + "\n" + (string)(_color) + "\n" + (string)(_buttons) + "\n" + jsarray(__VA_ARGS__))
// send a HUD alert message from a daemon:
#define daemon_alert(_message, _icon, _color, _buttons, ...) daemon_to_daemon(E_VARIATYPE, E_SIGNAL_CALL, NULL_KEY + " " + NULL_KEY + " variatype alert " + _message + "\n" + (string)(_icon) + "\n" + (string)(_color) + "\n" + (string)(_buttons) + "\n" + jsarray(__VA_ARGS__))
#endif // _ARES_INTERFACE_H_