|
|
1.1 ! root 1: /* w_sound.c ! 2: * ! 3: * Micropolis, Unix Version. This game was released for the Unix platform ! 4: * in or about 1990 and has been modified for inclusion in the One Laptop ! 5: * Per Child program. Copyright (C) 1989 - 2007 Electronic Arts Inc. If ! 6: * you need assistance with this program, you may contact: ! 7: * http://wiki.laptop.org/go/Micropolis or email [email protected]. ! 8: * ! 9: * This program is free software: you can redistribute it and/or modify ! 10: * it under the terms of the GNU General Public License as published by ! 11: * the Free Software Foundation, either version 3 of the License, or (at ! 12: * your option) any later version. ! 13: * ! 14: * This program is distributed in the hope that it will be useful, but ! 15: * WITHOUT ANY WARRANTY; without even the implied warranty of ! 16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! 17: * General Public License for more details. You should have received a ! 18: * copy of the GNU General Public License along with this program. If ! 19: * not, see <http://www.gnu.org/licenses/>. ! 20: * ! 21: * ADDITIONAL TERMS per GNU GPL Section 7 ! 22: * ! 23: * No trademark or publicity rights are granted. This license does NOT ! 24: * give you any right, title or interest in the trademark SimCity or any ! 25: * other Electronic Arts trademark. You may not distribute any ! 26: * modification of this program using the trademark SimCity or claim any ! 27: * affliation or association with Electronic Arts Inc. or its employees. ! 28: * ! 29: * Any propagation or conveyance of this program must include this ! 30: * copyright notice and these terms. ! 31: * ! 32: * If you convey this program (or any modifications of it) and assume ! 33: * contractual liability for the program to recipients of it, you agree ! 34: * to indemnify Electronic Arts for any liability that those contractual ! 35: * assumptions impose on Electronic Arts. ! 36: * ! 37: * You may not misrepresent the origins of this program; modified ! 38: * versions of the program must be marked as such and not identified as ! 39: * the original program. ! 40: * ! 41: * This disclaimer supplements the one included in the General Public ! 42: * License. TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, THIS ! 43: * PROGRAM IS PROVIDED TO YOU "AS IS," WITH ALL FAULTS, WITHOUT WARRANTY ! 44: * OF ANY KIND, AND YOUR USE IS AT YOUR SOLE RISK. THE ENTIRE RISK OF ! 45: * SATISFACTORY QUALITY AND PERFORMANCE RESIDES WITH YOU. ELECTRONIC ARTS ! 46: * DISCLAIMS ANY AND ALL EXPRESS, IMPLIED OR STATUTORY WARRANTIES, ! 47: * INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, ! 48: * FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OF THIRD PARTY ! 49: * RIGHTS, AND WARRANTIES (IF ANY) ARISING FROM A COURSE OF DEALING, ! 50: * USAGE, OR TRADE PRACTICE. ELECTRONIC ARTS DOES NOT WARRANT AGAINST ! 51: * INTERFERENCE WITH YOUR ENJOYMENT OF THE PROGRAM; THAT THE PROGRAM WILL ! 52: * MEET YOUR REQUIREMENTS; THAT OPERATION OF THE PROGRAM WILL BE ! 53: * UNINTERRUPTED OR ERROR-FREE, OR THAT THE PROGRAM WILL BE COMPATIBLE ! 54: * WITH THIRD PARTY SOFTWARE OR THAT ANY ERRORS IN THE PROGRAM WILL BE ! 55: * CORRECTED. NO ORAL OR WRITTEN ADVICE PROVIDED BY ELECTRONIC ARTS OR ! 56: * ANY AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY. SOME ! 57: * JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF OR LIMITATIONS ON IMPLIED ! 58: * WARRANTIES OR THE LIMITATIONS ON THE APPLICABLE STATUTORY RIGHTS OF A ! 59: * CONSUMER, SO SOME OR ALL OF THE ABOVE EXCLUSIONS AND LIMITATIONS MAY ! 60: * NOT APPLY TO YOU. ! 61: */ ! 62: #include "sim.h" ! 63: ! 64: ! 65: /* Sound routines */ ! 66: ! 67: ! 68: int SoundInitialized = 0; ! 69: short Dozing; ! 70: ! 71: ! 72: InitializeSound() ! 73: { ! 74: char cmd[256]; ! 75: ! 76: SoundInitialized = 1; ! 77: ! 78: if (!UserSoundOn) return; ! 79: ! 80: Eval("UIInitializeSound"); ! 81: } ! 82: ! 83: ! 84: ShutDownSound() ! 85: { ! 86: if (SoundInitialized) { ! 87: SoundInitialized = 0; ! 88: Eval("UIShutDownSound"); ! 89: } ! 90: } ! 91: ! 92: ! 93: MakeSound(char *channel, char *id) ! 94: { ! 95: char buf[256]; ! 96: ! 97: if (!UserSoundOn) return; ! 98: if (!SoundInitialized) InitializeSound(); ! 99: ! 100: sprintf(buf, "UIMakeSound \"%s\" \"%s\"", channel, id); ! 101: Eval(buf); ! 102: } ! 103: ! 104: ! 105: MakeSoundOn(SimView *view, char *channel, char *id) ! 106: { ! 107: char buf[256]; ! 108: ! 109: if (!UserSoundOn) return; ! 110: if (!SoundInitialized) InitializeSound(); ! 111: ! 112: sprintf(buf, "UIMakeSoundOn %s \"%s\" \"%s\"", ! 113: Tk_PathName(view->tkwin), channel, id); ! 114: Eval(buf); ! 115: } ! 116: ! 117: ! 118: StartBulldozer(void) ! 119: { ! 120: if (!UserSoundOn) return; ! 121: if (!SoundInitialized) InitializeSound(); ! 122: if (!Dozing) { ! 123: DoStartSound("edit", "1"); ! 124: Dozing = 1; ! 125: } ! 126: } ! 127: ! 128: ! 129: StopBulldozer(void) ! 130: { ! 131: if ((!UserSoundOn) || (!SoundInitialized)) return; ! 132: DoStopSound("1"); ! 133: Dozing = 0; ! 134: } ! 135: ! 136: ! 137: /* comefrom: doKeyEvent */ ! 138: SoundOff(void) ! 139: { ! 140: if (!SoundInitialized) InitializeSound(); ! 141: Eval("UISoundOff"); ! 142: Dozing = 0; ! 143: } ! 144: ! 145: ! 146: DoStartSound(char *channel, char *id) ! 147: { ! 148: char buf[256]; ! 149: ! 150: sprintf(buf, "UIStartSound %s %s", channel, id); ! 151: Eval(buf); ! 152: } ! 153: ! 154: ! 155: DoStopSound(char *id) ! 156: { ! 157: char buf[256]; ! 158: ! 159: sprintf(buf, "UIStopSound %s", id); ! 160: Eval(buf); ! 161: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.